comparison src/bytecode.c @ 1661:2264738f7ae4

[xemacs-hg @ 2003-09-02 13:18:14 by michaels] 2003-08-30 Mike Sperber <mike@xemacs.org> * bytecode.c (execute_optimized_program): Remove broken special-case code in Bvarset for buffer-local variables, reverting previous patch to bytecode.c from 2003-08-18 by Jerry James <james@xemacs.org>.
author michaels
date Tue, 02 Sep 2003 13:18:17 +0000
parents 6c996a26d761
children 68ed93de81b7
comparison
equal deleted inserted replaced
1660:0cf8519c122c 1661:2264738f7ae4
538 { 538 {
539 Lisp_Object symbol = constants_data[n]; 539 Lisp_Object symbol = constants_data[n];
540 Lisp_Symbol *symbol_ptr = XSYMBOL (symbol); 540 Lisp_Symbol *symbol_ptr = XSYMBOL (symbol);
541 Lisp_Object old_value = symbol_ptr->value; 541 Lisp_Object old_value = symbol_ptr->value;
542 Lisp_Object new_value = POP; 542 Lisp_Object new_value = POP;
543 if (SYMBOL_VALUE_MAGIC_P (old_value) && 543 if (!SYMBOL_VALUE_MAGIC_P (old_value) || UNBOUNDP (old_value))
544 (XSYMBOL_VALUE_MAGIC_TYPE (old_value) == SYMVAL_BUFFER_LOCAL ||
545 XSYMBOL_VALUE_MAGIC_TYPE (old_value) ==
546 SYMVAL_SOME_BUFFER_LOCAL) &&
547 NILP (Fdefault_boundp (symbol)))
548 Fset_default (symbol, new_value);
549 else if (!SYMBOL_VALUE_MAGIC_P (old_value) || UNBOUNDP (old_value))
550 symbol_ptr->value = new_value; 544 symbol_ptr->value = new_value;
551 else 545 else
552 Fset (symbol, new_value); 546 Fset (symbol, new_value);
553 break; 547 break;
554 } 548 }