aboutsummaryrefslogtreecommitdiffstats
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)
3160 module_finalize_function (function); 3160 module_finalize_function (function);
3161 } 3161 }
3162#endif 3162#endif
3163 else if (NATIVE_COMP_FLAG 3163#ifdef HAVE_NATIVE_COMP
3164 && PSEUDOVECTOR_TYPEP (&vector->header, PVEC_NATIVE_COMP_UNIT)) 3164 else if (PSEUDOVECTOR_TYPEP (&vector->header, PVEC_NATIVE_COMP_UNIT))
3165 { 3165 {
3166 struct Lisp_Native_Comp_Unit *cu = 3166 struct Lisp_Native_Comp_Unit *cu =
3167 PSEUDOVEC_STRUCT (vector, Lisp_Native_Comp_Unit); 3167 PSEUDOVEC_STRUCT (vector, Lisp_Native_Comp_Unit);
3168 unload_comp_unit (cu); 3168 unload_comp_unit (cu);
3169 } 3169 }
3170 else if (NATIVE_COMP_FLAG 3170 else if (PSEUDOVECTOR_TYPEP (&vector->header, PVEC_SUBR))
3171 && PSEUDOVECTOR_TYPEP (&vector->header, PVEC_SUBR))
3172 { 3171 {
3173 struct Lisp_Subr *subr = 3172 struct Lisp_Subr *subr =
3174 PSEUDOVEC_STRUCT (vector, Lisp_Subr); 3173 PSEUDOVEC_STRUCT (vector, Lisp_Subr);
3175 if (!NILP (subr->native_comp_u[0])) 3174 if (!NILP (subr->native_comp_u))
3176 { 3175 {
3177 /* FIXME Alternative and non invasive solution to this 3176 /* FIXME Alternative and non invasive solution to this
3178 cast? */ 3177 cast? */
3179 xfree ((char *)subr->symbol_name); 3178 xfree ((char *)subr->symbol_name);
3180 xfree (subr->native_c_name[0]); 3179 xfree (subr->native_c_name);
3181 } 3180 }
3182 } 3181 }
3182#endif
3183} 3183}
3184 3184
3185/* Reclaim space used by unmarked vectors. */ 3185/* Reclaim space used by unmarked vectors. */
@@ -6785,15 +6785,17 @@ mark_object (Lisp_Object arg)
6785 break; 6785 break;
6786 6786
6787 case PVEC_SUBR: 6787 case PVEC_SUBR:
6788#ifdef HAVE_NATIVE_COMP
6788 if (SUBR_NATIVE_COMPILEDP (obj)) 6789 if (SUBR_NATIVE_COMPILEDP (obj))
6789 { 6790 {
6790 set_vector_marked (ptr); 6791 set_vector_marked (ptr);
6791 struct Lisp_Subr *subr = XSUBR (obj); 6792 struct Lisp_Subr *subr = XSUBR (obj);
6792 mark_object (subr->native_intspec); 6793 mark_object (subr->native_intspec);
6793 mark_object (subr->native_comp_u[0]); 6794 mark_object (subr->native_comp_u);
6794 mark_object (subr->lambda_list[0]); 6795 mark_object (subr->lambda_list);
6795 mark_object (subr->type[0]); 6796 mark_object (subr->type);
6796 } 6797 }
6798#endif
6797 break; 6799 break;
6798 6800
6799 case PVEC_FREE: 6801 case PVEC_FREE: