aboutsummaryrefslogtreecommitdiffstats
path: root/src/bytecode.c
diff options
context:
space:
mode:
authorKenichi Handa2004-04-16 12:51:06 +0000
committerKenichi Handa2004-04-16 12:51:06 +0000
commit6b61353c0a0320ee15bb6488149735381fed62ec (patch)
treee69adba60e504a5a37beb556ad70084de88a7aab /src/bytecode.c
parentdc6a28319312fe81f7a1015e363174022313f0bd (diff)
downloademacs-6b61353c0a0320ee15bb6488149735381fed62ec.tar.gz
emacs-6b61353c0a0320ee15bb6488149735381fed62ec.zip
Sync to HEAD
Diffstat (limited to 'src/bytecode.c')
-rw-r--r--src/bytecode.c32
1 files changed, 7 insertions, 25 deletions
diff --git a/src/bytecode.c b/src/bytecode.c
index f3a07dced35..659f79bca08 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 293
299 if (!XMARKBIT (stack->byte_string)) 294 mark_object (stack->byte_string);
300 { 295 mark_object (stack->constants);
301 mark_object (stack->byte_string);
302 XMARK (stack->byte_string);
303 }
304
305 if (!XMARKBIT (stack->constants))
306 {
307 mark_object (stack->constants);
308 XMARK (stack->constants);
309 }
310 } 296 }
311} 297}
312 298
@@ -318,16 +304,9 @@ void
318unmark_byte_stack () 304unmark_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;
@@ -1782,3 +1761,6 @@ integer, it is incremented each time that symbol's function is called. */);
1782 } 1761 }
1783#endif 1762#endif
1784} 1763}
1764
1765/* arch-tag: b9803b6f-1ed6-4190-8adf-33fd3a9d10e9
1766 (do not change this comment) */