struct Lisp_Subr *subr = XSUBR (obj);
mark_object (subr->native_comp_u);
}
- break;
- case PVEC_NATIVE_COMP_UNIT:
- set_vector_marked (ptr);
- /* FIXME see comp.h. */
- mark_object (XNATIVE_COMP_UNIT (obj)->data_vec);
#endif
break;
+
case PVEC_FREE:
emacs_abort ();
struct Lisp_Native_Comp_Unit
{
union vectorlike_header header;
+ /* Analogous to the constant vector but per compilation unit. */
+ Lisp_Object data_vec;
/* Compilation unit file descriptor and handle. */
int fd;
dynlib_handle_ptr handle;
- Lisp_Object data_vec; /* FIXME this should be in the normal lisp slot. */
};
INLINE bool
make_native_comp_u (int fd, dynlib_handle_ptr handle)
{
struct Lisp_Native_Comp_Unit *x =
- (struct Lisp_Native_Comp_Unit *) allocate_pseudovector (
- VECSIZE (struct Lisp_Native_Comp_Unit),
- 0, VECSIZE (struct Lisp_Native_Comp_Unit),
- PVEC_NATIVE_COMP_UNIT);
+ ALLOCATE_ZEROED_PSEUDOVECTOR (struct Lisp_Native_Comp_Unit, data_vec,
+ PVEC_NATIVE_COMP_UNIT);
x->fd = fd;
x->handle = handle;
Lisp_Object cu;