summaryrefslogtreecommitdiff
path: root/alloc.c
diff options
context:
space:
mode:
authorIvan Maidanski <ivmai@mail.ru>2014-07-13 12:18:16 +0400
committerIvan Maidanski <ivmai@mail.ru>2014-07-13 12:29:48 +0400
commit4eaea0afad5dfd31d1d800138f5afaca1925c775 (patch)
tree72c42c450fc3219ec259763c0695ddea15aaa0b2 /alloc.c
parent7d2905e01d7f9831353e1f034aea3692e71f96fc (diff)
downloadbdwgc-4eaea0afad5dfd31d1d800138f5afaca1925c775.tar.gz
Code refactoring of Emscripten platform support (single-threaded)
* alloc.c (min_bytes_allocd): Test STACK_NOT_SCANNED macro instead of __EMSCRIPTEN__ (stack size to scan is zero if STACK_NOT_SCANNED). * include/private/gcconfig.h (ALIGNMENT): Remove duplicate definition for _EMSCRIPTEN__. * include/private/gcconfig.h (STACK_NOT_SCANNED): New macro defined for __EMSCRIPTEN__ target (in addition to OS_TYPE, CPP_WORDSZ, ALIGNMENT, DATASTART, DATAEND). * mach_dep.c (GC_push_regs): Test STACK_NOT_SCANNED macro instead of __EMSCRIPTEN__ (push nothing if STACK_NOT_SCANNED). * mark_rts.c (GC_push_roots): Test STACK_NOT_SCANNED macro instead of __EMSCRIPTEN__ (do not call GC_push_regs_and_stack if STACK_NOT_SCANNED); mark cold_gc_frame argument as potentially unused. * misc.c (GC_clear_stack): Test STACK_NOT_SCANNED macro instead of __EMSCRIPTEN__ (do not clear stack if STACK_NOT_SCANNED). * misc.c (GC_clear_stack): Reformat code.
Diffstat (limited to 'alloc.c')
-rw-r--r--alloc.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/alloc.c b/alloc.c
index d8fb954f..2f877fba 100644
--- a/alloc.c
+++ b/alloc.c
@@ -202,15 +202,13 @@ GC_API GC_stop_func GC_CALL GC_get_stop_func(void)
static word min_bytes_allocd(void)
{
word result;
-# ifdef __EMSCRIPTEN__
+# ifdef STACK_NOT_SCANNED
word stack_size = 0;
-# else
-# ifdef STACK_GROWS_UP
+# elif defined(STACK_GROWS_UP)
word stack_size = GC_approx_sp() - GC_stackbottom;
/* GC_stackbottom is used only for a single-threaded case. */
-# else
+# else
word stack_size = GC_stackbottom - GC_approx_sp();
-# endif
# endif
word total_root_size; /* includes double stack size, */