summaryrefslogtreecommitdiff
path: root/src/alloc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/alloc.c')
-rw-r--r--src/alloc.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/src/alloc.c b/src/alloc.c
index f8908c91dba..55c30847bbf 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -3160,26 +3160,26 @@ cleanup_vector (struct Lisp_Vector *vector)
module_finalize_function (function);
}
#endif
- else if (NATIVE_COMP_FLAG
- && PSEUDOVECTOR_TYPEP (&vector->header, PVEC_NATIVE_COMP_UNIT))
+#ifdef HAVE_NATIVE_COMP
+ else if (PSEUDOVECTOR_TYPEP (&vector->header, PVEC_NATIVE_COMP_UNIT))
{
struct Lisp_Native_Comp_Unit *cu =
PSEUDOVEC_STRUCT (vector, Lisp_Native_Comp_Unit);
unload_comp_unit (cu);
}
- else if (NATIVE_COMP_FLAG
- && PSEUDOVECTOR_TYPEP (&vector->header, PVEC_SUBR))
+ else if (PSEUDOVECTOR_TYPEP (&vector->header, PVEC_SUBR))
{
struct Lisp_Subr *subr =
PSEUDOVEC_STRUCT (vector, Lisp_Subr);
- if (!NILP (subr->native_comp_u[0]))
+ if (!NILP (subr->native_comp_u))
{
/* FIXME Alternative and non invasive solution to this
cast? */
xfree ((char *)subr->symbol_name);
- xfree (subr->native_c_name[0]);
+ xfree (subr->native_c_name);
}
}
+#endif
}
/* Reclaim space used by unmarked vectors. */
@@ -6785,15 +6785,17 @@ mark_object (Lisp_Object arg)
break;
case PVEC_SUBR:
+#ifdef HAVE_NATIVE_COMP
if (SUBR_NATIVE_COMPILEDP (obj))
{
set_vector_marked (ptr);
struct Lisp_Subr *subr = XSUBR (obj);
mark_object (subr->native_intspec);
- mark_object (subr->native_comp_u[0]);
- mark_object (subr->lambda_list[0]);
- mark_object (subr->type[0]);
+ mark_object (subr->native_comp_u);
+ mark_object (subr->lambda_list);
+ mark_object (subr->type);
}
+#endif
break;
case PVEC_FREE: