aboutsummaryrefslogtreecommitdiffstats
path: root/src/alloc.c
diff options
context:
space:
mode:
authorPo Lu2021-12-03 14:07:40 +0800
committerPo Lu2021-12-03 14:07:40 +0800
commit57a9bf8d4186878a59750e2f0bef3ca3b526e8ef (patch)
treee728bd25939ba8866b3a5c76db9a464cee359a34 /src/alloc.c
parentf17d0dfb3e61b2b271e012b9b17aac657f6ee09f (diff)
parent1afa295aed81357fddf9694bfe68ed0e6d159a2d (diff)
downloademacs-57a9bf8d4186878a59750e2f0bef3ca3b526e8ef.tar.gz
emacs-57a9bf8d4186878a59750e2f0bef3ca3b526e8ef.zip
Merge remote-tracking branch 'origin/master' into feature/pgtk
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 24dc07b3696..ff845989264 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. */
@@ -6788,15 +6788,17 @@ mark_object (Lisp_Object arg)
6788 break; 6788 break;
6789 6789
6790 case PVEC_SUBR: 6790 case PVEC_SUBR:
6791#ifdef HAVE_NATIVE_COMP
6791 if (SUBR_NATIVE_COMPILEDP (obj)) 6792 if (SUBR_NATIVE_COMPILEDP (obj))
6792 { 6793 {
6793 set_vector_marked (ptr); 6794 set_vector_marked (ptr);
6794 struct Lisp_Subr *subr = XSUBR (obj); 6795 struct Lisp_Subr *subr = XSUBR (obj);
6795 mark_object (subr->native_intspec); 6796 mark_object (subr->native_intspec);
6796 mark_object (subr->native_comp_u[0]); 6797 mark_object (subr->native_comp_u);
6797 mark_object (subr->lambda_list[0]); 6798 mark_object (subr->lambda_list);
6798 mark_object (subr->type[0]); 6799 mark_object (subr->type);
6799 } 6800 }
6801#endif
6800 break; 6802 break;
6801 6803
6802 case PVEC_FREE: 6804 case PVEC_FREE: