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;