projects
/
chise
/
xemacs-chise.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
update.
[chise/xemacs-chise.git]
/
src
/
opaque.c
diff --git
a/src/opaque.c
b/src/opaque.c
index
2fb6dec
..
976ecd7
100644
(file)
--- a/
src/opaque.c
+++ b/
src/opaque.c
@@
-52,11
+52,17
@@
print_opaque (Lisp_Object obj, Lisp_Object printcharfun, int escapeflag)
write_c_string (buf, printcharfun);
}
write_c_string (buf, printcharfun);
}
+inline static size_t
+aligned_sizeof_opaque (size_t opaque_size)
+{
+ return ALIGN_SIZE (offsetof (Lisp_Opaque, data) + opaque_size,
+ ALIGNOF (max_align_t));
+}
+
static size_t
sizeof_opaque (const void *header)
{
static size_t
sizeof_opaque (const void *header)
{
- const Lisp_Opaque *p = (const Lisp_Opaque *) header;
- return offsetof (Lisp_Opaque, data) + p->size;
+ return aligned_sizeof_opaque (((const Lisp_Opaque *) header)->size);
}
/* Return an opaque object of size SIZE.
}
/* Return an opaque object of size SIZE.
@@
-67,7
+73,7
@@
Lisp_Object
make_opaque (const void *data, size_t size)
{
Lisp_Opaque *p = (Lisp_Opaque *)
make_opaque (const void *data, size_t size)
{
Lisp_Opaque *p = (Lisp_Opaque *)
- alloc_lcrecord (offsetof (Lisp_Opaque, data) + size, &lrecord_opaque);
+ alloc_lcrecord (aligned_sizeof_opaque (size), &lrecord_opaque);
p->size = size;
if (data == OPAQUE_CLEAR)
p->size = size;
if (data == OPAQUE_CLEAR)