diff options
| author | Kenichi Handa | 2012-08-16 21:25:17 +0900 |
|---|---|---|
| committer | Kenichi Handa | 2012-08-16 21:25:17 +0900 |
| commit | d75ffb4ed0b2e72a9361a07d16a5c884a9459728 (patch) | |
| tree | 8ac5a6a8ae033fef7fbc7fb7b09a703ef4b0ed5b /src/bytecode.c | |
| parent | 69c41c4070c86baac11a627e9c3d366420aeb7cc (diff) | |
| parent | 250c8ab9b8f6322959fa3122db83944c30c3894b (diff) | |
| download | emacs-d75ffb4ed0b2e72a9361a07d16a5c884a9459728.tar.gz emacs-d75ffb4ed0b2e72a9361a07d16a5c884a9459728.zip | |
merge trunk
Diffstat (limited to 'src/bytecode.c')
| -rw-r--r-- | src/bytecode.c | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/src/bytecode.c b/src/bytecode.c index acdf809971f..5ac8b4fa2bd 100644 --- a/src/bytecode.c +++ b/src/bytecode.c | |||
| @@ -423,15 +423,11 @@ unmark_byte_stack (void) | |||
| 423 | /* Garbage collect if we have consed enough since the last time. | 423 | /* Garbage collect if we have consed enough since the last time. |
| 424 | We do this at every branch, to avoid loops that never GC. */ | 424 | We do this at every branch, to avoid loops that never GC. */ |
| 425 | 425 | ||
| 426 | #define MAYBE_GC() \ | 426 | #define MAYBE_GC() \ |
| 427 | do { \ | 427 | do { \ |
| 428 | if (consing_since_gc > gc_cons_threshold \ | 428 | BEFORE_POTENTIAL_GC (); \ |
| 429 | && consing_since_gc > gc_relative_threshold) \ | 429 | maybe_gc (); \ |
| 430 | { \ | 430 | AFTER_POTENTIAL_GC (); \ |
| 431 | BEFORE_POTENTIAL_GC (); \ | ||
| 432 | Fgarbage_collect (); \ | ||
| 433 | AFTER_POTENTIAL_GC (); \ | ||
| 434 | } \ | ||
| 435 | } while (0) | 431 | } while (0) |
| 436 | 432 | ||
| 437 | /* Check for jumping out of range. */ | 433 | /* Check for jumping out of range. */ |
| @@ -540,7 +536,7 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 540 | stack.byte_string = bytestr; | 536 | stack.byte_string = bytestr; |
| 541 | stack.pc = stack.byte_string_start = SDATA (bytestr); | 537 | stack.pc = stack.byte_string_start = SDATA (bytestr); |
| 542 | stack.constants = vector; | 538 | stack.constants = vector; |
| 543 | if (MAX_ALLOCA / sizeof (Lisp_Object) <= XFASTINT (maxdepth)) | 539 | if (MAX_ALLOCA / word_size <= XFASTINT (maxdepth)) |
| 544 | memory_full (SIZE_MAX); | 540 | memory_full (SIZE_MAX); |
| 545 | top = alloca ((XFASTINT (maxdepth) + 1) * sizeof *top); | 541 | top = alloca ((XFASTINT (maxdepth) + 1) * sizeof *top); |
| 546 | #if BYTE_MAINTAIN_TOP | 542 | #if BYTE_MAINTAIN_TOP |
| @@ -822,7 +818,7 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 822 | && !EQ (val, Qunbound) | 818 | && !EQ (val, Qunbound) |
| 823 | && !XSYMBOL (sym)->redirect | 819 | && !XSYMBOL (sym)->redirect |
| 824 | && !SYMBOL_CONSTANT_P (sym)) | 820 | && !SYMBOL_CONSTANT_P (sym)) |
| 825 | XSYMBOL (sym)->val.value = val; | 821 | SET_SYMBOL_VAL (XSYMBOL (sym), val); |
| 826 | else | 822 | else |
| 827 | { | 823 | { |
| 828 | BEFORE_POTENTIAL_GC (); | 824 | BEFORE_POTENTIAL_GC (); |