diff options
| author | Po Lu | 2021-12-03 14:07:40 +0800 |
|---|---|---|
| committer | Po Lu | 2021-12-03 14:07:40 +0800 |
| commit | 57a9bf8d4186878a59750e2f0bef3ca3b526e8ef (patch) | |
| tree | e728bd25939ba8866b3a5c76db9a464cee359a34 /src/alloc.c | |
| parent | f17d0dfb3e61b2b271e012b9b17aac657f6ee09f (diff) | |
| parent | 1afa295aed81357fddf9694bfe68ed0e6d159a2d (diff) | |
| download | emacs-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.c | 20 |
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: |