269 |
struct byte_stack *byte_stack_list; |
struct byte_stack *byte_stack_list; |
270 |
|
|
271 |
|
|
272 |
|
#ifndef BOEHM_GC |
273 |
/* Mark objects on byte_stack_list. Called during GC. */ |
/* Mark objects on byte_stack_list. Called during GC. */ |
274 |
|
|
275 |
void |
void |
337 |
} |
} |
338 |
} |
} |
339 |
} |
} |
340 |
|
#endif /* BOEHM_GC */ |
341 |
|
|
342 |
/* Fetch the next byte from the bytecode stream */ |
/* Fetch the next byte from the bytecode stream */ |
343 |
|
|
371 |
/* Actions that must be performed before and after calling a function |
/* Actions that must be performed before and after calling a function |
372 |
that might GC. */ |
that might GC. */ |
373 |
|
|
374 |
#define BEFORE_POTENTIAL_GC() stack.top = top |
#ifdef BOEHM_GC |
375 |
#define AFTER_POTENTIAL_GC() stack.top = NULL |
# define BEFORE_POTENTIAL_GC() |
376 |
|
# define AFTER_POTENTIAL_GC() |
377 |
|
#else |
378 |
|
# define BEFORE_POTENTIAL_GC() stack.top = top |
379 |
|
# define AFTER_POTENTIAL_GC() stack.top = NULL |
380 |
|
#endif |
381 |
|
|
382 |
|
#ifndef BOEHM_GC |
383 |
/* Garbage collect if we have consed enough since the last time. |
/* Garbage collect if we have consed enough since the last time. |
384 |
We do this at every branch, to avoid loops that never GC. */ |
We do this at every branch, to avoid loops that never GC. */ |
385 |
|
|
391 |
AFTER_POTENTIAL_GC (); \ |
AFTER_POTENTIAL_GC (); \ |
392 |
} \ |
} \ |
393 |
else |
else |
394 |
|
#else |
395 |
|
#define MAYBE_GC() |
396 |
|
#endif /* BOEHM_GC */ |
397 |
|
|
398 |
/* Check for jumping out of range. */ |
/* Check for jumping out of range. */ |
399 |
|
|