Mercurial > emacs
comparison src/bytecode.c @ 39573:b17103d5e3c8
(Fbyte_code) <varref>: Use SYMBOL_VALUE.
(Fbyte_code) <varset>: Simplify the test if symbol's value can be
set directly.
| author | Gerd Moellmann <gerd@gnu.org> |
|---|---|
| date | Fri, 05 Oct 2001 09:43:06 +0000 |
| parents | d7378777b985 |
| children | 4baf64844f9c |
comparison
equal
deleted
inserted
replaced
| 39572:715a67381594 | 39573:b17103d5e3c8 |
|---|---|
| 518 Lisp_Object v1, v2; | 518 Lisp_Object v1, v2; |
| 519 | 519 |
| 520 v1 = vectorp[op]; | 520 v1 = vectorp[op]; |
| 521 if (SYMBOLP (v1)) | 521 if (SYMBOLP (v1)) |
| 522 { | 522 { |
| 523 v2 = XSYMBOL (v1)->value; | 523 v2 = SYMBOL_VALUE (v1); |
| 524 if (MISCP (v2) || EQ (v2, Qunbound)) | 524 if (MISCP (v2) || EQ (v2, Qunbound)) |
| 525 { | 525 { |
| 526 BEFORE_POTENTIAL_GC (); | 526 BEFORE_POTENTIAL_GC (); |
| 527 v2 = Fsymbol_value (v1); | 527 v2 = Fsymbol_value (v1); |
| 528 AFTER_POTENTIAL_GC (); | 528 AFTER_POTENTIAL_GC (); |
| 624 val = TOP; | 624 val = TOP; |
| 625 | 625 |
| 626 /* Inline the most common case. */ | 626 /* Inline the most common case. */ |
| 627 if (SYMBOLP (sym) | 627 if (SYMBOLP (sym) |
| 628 && !EQ (val, Qunbound) | 628 && !EQ (val, Qunbound) |
| 629 && !MISCP (XSYMBOL (sym)->value) | 629 && !XSYMBOL (sym)->indirect_variable |
| 630 /* I think this should either be checked in the byte | 630 && !XSYMBOL (sym)->constant |
| 631 compiler, or there should be a flag indicating that | 631 && !MISCP (XSYMBOL (sym)->value)) |
| 632 a symbol might be constant in Lisp_Symbol, instead | |
| 633 of checking this here over and over again. --gerd. */ | |
| 634 && !EQ (sym, Qnil) | |
| 635 && !EQ (sym, Qt) | |
| 636 && !(XSYMBOL (sym)->name->data[0] == ':' | |
| 637 && EQ (XSYMBOL (sym)->obarray, initial_obarray) | |
| 638 && !EQ (val, sym))) | |
| 639 XSYMBOL (sym)->value = val; | 632 XSYMBOL (sym)->value = val; |
| 640 else | 633 else |
| 641 { | 634 { |
| 642 BEFORE_POTENTIAL_GC (); | 635 BEFORE_POTENTIAL_GC (); |
| 643 set_internal (sym, val, current_buffer, 0); | 636 set_internal (sym, val, current_buffer, 0); |
