diff options
Diffstat (limited to 'src/data.c')
| -rw-r--r-- | src/data.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/data.c b/src/data.c index 4678ac1208c..5d7f036b70d 100644 --- a/src/data.c +++ b/src/data.c | |||
| @@ -948,8 +948,10 @@ store_symval_forwarding (union Lisp_Fwd *valcontents, register Lisp_Object newva | |||
| 948 | } | 948 | } |
| 949 | } | 949 | } |
| 950 | 950 | ||
| 951 | /* Set up SYMBOL to refer to its global binding. | 951 | /* Set up SYMBOL to refer to its global binding. This makes it safe |
| 952 | This makes it safe to alter the status of other bindings. */ | 952 | to alter the status of other bindings. BEWARE: this may be called |
| 953 | during the mark phase of GC, where we assume that Lisp_Object slots | ||
| 954 | of BLV are marked after this function has changed them. */ | ||
| 953 | 955 | ||
| 954 | void | 956 | void |
| 955 | swap_in_global_binding (struct Lisp_Symbol *symbol) | 957 | swap_in_global_binding (struct Lisp_Symbol *symbol) |
| @@ -1008,7 +1010,7 @@ swap_in_symval_forwarding (struct Lisp_Symbol *symbol, struct Lisp_Buffer_Local_ | |||
| 1008 | else | 1010 | else |
| 1009 | { | 1011 | { |
| 1010 | tem1 = assq_no_quit (var, BVAR (current_buffer, local_var_alist)); | 1012 | tem1 = assq_no_quit (var, BVAR (current_buffer, local_var_alist)); |
| 1011 | XSETBUFFER (blv->where, current_buffer); | 1013 | set_blv_where (blv, Fcurrent_buffer ()); |
| 1012 | } | 1014 | } |
| 1013 | } | 1015 | } |
| 1014 | if (!(blv->found = !NILP (tem1))) | 1016 | if (!(blv->found = !NILP (tem1))) |
| @@ -1162,7 +1164,7 @@ set_internal (Lisp_Object symbol, Lisp_Object newval, Lisp_Object where, | |||
| 1162 | the default binding is loaded, the loaded binding may be the | 1164 | the default binding is loaded, the loaded binding may be the |
| 1163 | wrong one. */ | 1165 | wrong one. */ |
| 1164 | if (!EQ (blv->where, where) | 1166 | if (!EQ (blv->where, where) |
| 1165 | /* Also unload a global binding (if the var is local_if_set). */ | 1167 | /* Also unload a global binding (if the var is local_if_set). */ |
| 1166 | || (EQ (blv->valcell, blv->defcell))) | 1168 | || (EQ (blv->valcell, blv->defcell))) |
| 1167 | { | 1169 | { |
| 1168 | /* The currently loaded binding is not necessarily valid. | 1170 | /* The currently loaded binding is not necessarily valid. |