diff options
| author | Stefan Monnier | 2003-09-11 21:58:32 +0000 |
|---|---|---|
| committer | Stefan Monnier | 2003-09-11 21:58:32 +0000 |
| commit | 2a1c1d7150e64c0c05a1d1e17b288091cbd98011 (patch) | |
| tree | a594ed3c24431858bde482c449ff42d6145e16b2 /src/bytecode.c | |
| parent | 9f7b135da746000dd278489340bd3fccef81e797 (diff) | |
| download | emacs-2a1c1d7150e64c0c05a1d1e17b288091cbd98011.tar.gz emacs-2a1c1d7150e64c0c05a1d1e17b288091cbd98011.zip | |
(mark_byte_stack, unmark_byte_stack): Ignore the markbit.
Diffstat (limited to 'src/bytecode.c')
| -rw-r--r-- | src/bytecode.c | 29 |
1 files changed, 4 insertions, 25 deletions
diff --git a/src/bytecode.c b/src/bytecode.c index a4ade9650ec..a13ecc19770 100644 --- a/src/bytecode.c +++ b/src/bytecode.c | |||
| @@ -286,27 +286,13 @@ mark_byte_stack () | |||
| 286 | The culprit is found in the frame of Fbyte_code where the | 286 | The culprit is found in the frame of Fbyte_code where the |
| 287 | address of its local variable `stack' is equal to the | 287 | address of its local variable `stack' is equal to the |
| 288 | recorded value of `stack' here. */ | 288 | recorded value of `stack' here. */ |
| 289 | if (!stack->top) | 289 | eassert (stack->top); |
| 290 | abort (); | ||
| 291 | 290 | ||
| 292 | for (obj = stack->bottom; obj <= stack->top; ++obj) | 291 | for (obj = stack->bottom; obj <= stack->top; ++obj) |
| 293 | if (!XMARKBIT (*obj)) | 292 | mark_object (*obj); |
| 294 | { | ||
| 295 | mark_object (*obj); | ||
| 296 | XMARK (*obj); | ||
| 297 | } | ||
| 298 | |||
| 299 | if (!XMARKBIT (stack->byte_string)) | ||
| 300 | { | ||
| 301 | mark_object (stack->byte_string); | ||
| 302 | XMARK (stack->byte_string); | ||
| 303 | } | ||
| 304 | 293 | ||
| 305 | if (!XMARKBIT (stack->constants)) | 294 | mark_object (stack->byte_string); |
| 306 | { | 295 | mark_object (stack->constants); |
| 307 | mark_object (stack->constants); | ||
| 308 | XMARK (stack->constants); | ||
| 309 | } | ||
| 310 | } | 296 | } |
| 311 | } | 297 | } |
| 312 | 298 | ||
| @@ -318,16 +304,9 @@ void | |||
| 318 | unmark_byte_stack () | 304 | unmark_byte_stack () |
| 319 | { | 305 | { |
| 320 | struct byte_stack *stack; | 306 | struct byte_stack *stack; |
| 321 | Lisp_Object *obj; | ||
| 322 | 307 | ||
| 323 | for (stack = byte_stack_list; stack; stack = stack->next) | 308 | for (stack = byte_stack_list; stack; stack = stack->next) |
| 324 | { | 309 | { |
| 325 | for (obj = stack->bottom; obj <= stack->top; ++obj) | ||
| 326 | XUNMARK (*obj); | ||
| 327 | |||
| 328 | XUNMARK (stack->byte_string); | ||
| 329 | XUNMARK (stack->constants); | ||
| 330 | |||
| 331 | if (stack->byte_string_start != SDATA (stack->byte_string)) | 310 | if (stack->byte_string_start != SDATA (stack->byte_string)) |
| 332 | { | 311 | { |
| 333 | int offset = stack->pc - stack->byte_string_start; | 312 | int offset = stack->pc - stack->byte_string_start; |