Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
emacs
emacs
Commits
d0ebe33a
Commit
d0ebe33a
authored
Apr 08, 2006
by
Stefan Monnier
Browse files
(OFFSETOF, PSEUDOVECSIZE): New macros.
parent
1d79e521
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
14 additions
and
0 deletions
+14
-0
src/lisp.h
src/lisp.h
+14
-0
No files found.
src/lisp.h
View file @
d0ebe33a
...
...
@@ -702,6 +702,13 @@ struct Lisp_String
unsigned
char
*
data
;
};
#ifdef offsetof
#define OFFSETOF(type,field) offsetof(type,field)
#else
#define OFFSETOF(type,field) \
((int)((char*)&((type*)0)->field - (char*)0))
#endif
/* If a struct is made to look like a vector, this macro returns the length
of the shortest vector that would hold that struct. */
#define VECSIZE(type) ((sizeof (type) - (sizeof (struct Lisp_Vector) \
...
...
@@ -709,6 +716,13 @@ struct Lisp_String
+ sizeof(Lisp_Object) - 1)
/* round up */
\
/ sizeof (Lisp_Object))
/* Like VECSIZE, but used when the pseudo-vector has non-Lisp_Object fields
at the end and we need to compute the number of Lisp_Object fields (the
ones that the GC needs to trace). */
#define PSEUDOVECSIZE(type, nonlispfield) \
((offsetof(type, nonlispfield) - offsetof(struct Lisp_Vector, contents[0])) \
/ sizeof (Lisp_Object))
struct
Lisp_Vector
{
EMACS_INT
size
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment