{
Lisp_Opaque *p = (Lisp_Opaque *)
alloc_lcrecord(aligned_sizeof_opaque(size), &lrecord_opaque);
- p->size = size;
- if (data == OPAQUE_CLEAR)
- memset(p->data, '\0', size);
- else if (data == OPAQUE_UNINIT)
- DO_NOTHING;
- else
- memcpy(p->data, data, size);
-
- {
- Lisp_Object val;
- XSETOPAQUE(val, p);
- return val;
+ assert(p!=NULL);
+ if(p != NULL) {
+ p->size = size;
+
+ if (data == OPAQUE_CLEAR)
+ memset(p->data, '\0', size);
+ else if (data == OPAQUE_UNINIT)
+ DO_NOTHING;
+ else
+ memcpy(p->data, data, size);
+
+ {
+ Lisp_Object val;
+ XSETOPAQUE(val, p);
+ return val;
+ }
}
+ return Qnil;
}
/* This will not work correctly for opaques with subobjects! */