Mercurial > emacs
comparison src/bytecode.c @ 108308:ee0a08d8887e
Try and fix unbind_to when localness of binding has changed
* eval.c (unbind_to): Don't unbind a local binding into the global
binding when the local binding disappeared. Inversely, don't unbind
a global binding into a newly created local binding.
* data.c (set_internal): Make its `buf' arg into a `where' arg so we
can specify the frame to use, when applicable. Adjust callers.
| author | Stefan Monnier <monnier@iro.umontreal.ca> |
|---|---|
| date | Fri, 07 May 2010 16:33:00 -0400 |
| parents | bef5d1738c0b |
| children | aec1143e8d85 |
comparison
equal
deleted
inserted
replaced
| 108307:767894eefe6c | 108308:ee0a08d8887e |
|---|---|
| 602 && !SYMBOL_CONSTANT_P (sym)) | 602 && !SYMBOL_CONSTANT_P (sym)) |
| 603 XSYMBOL (sym)->val.value = val; | 603 XSYMBOL (sym)->val.value = val; |
| 604 else | 604 else |
| 605 { | 605 { |
| 606 BEFORE_POTENTIAL_GC (); | 606 BEFORE_POTENTIAL_GC (); |
| 607 set_internal (sym, val, current_buffer, 0); | 607 set_internal (sym, val, Qnil, 0); |
| 608 AFTER_POTENTIAL_GC (); | 608 AFTER_POTENTIAL_GC (); |
| 609 } | 609 } |
| 610 } | 610 } |
| 611 (void) POP; | 611 (void) POP; |
| 612 break; | 612 break; |
