aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_node_tables.c
diff options
context:
space:
mode:
authorPatrik Nyblom <pan@erlang.org>2010-02-11 11:00:47 +0100
committerBjörn Gustavsson <bjorn@erlang.org>2010-03-10 14:25:36 +0100
commitac0b3f0a64705717d21e4a3d84d91d9c44f3baf7 (patch)
tree749b16612ebb287c0ea73d3c9e8abfbe3d530c03 /erts/emulator/beam/erl_node_tables.c
parent3ddf0126dfcb60f0554e2d52187fa012f378e428 (diff)
downloadotp-ac0b3f0a64705717d21e4a3d84d91d9c44f3baf7.tar.gz
otp-ac0b3f0a64705717d21e4a3d84d91d9c44f3baf7.tar.bz2
otp-ac0b3f0a64705717d21e4a3d84d91d9c44f3baf7.zip
Correct the VM to work for more test suites
The following test suites now work: send_term_SUITE trace_nif_SUITE binary_SUITE match_spec_SUITE node_container_SUITE beam_literals_SUITE Also add a testcases for system_info({wordsize,internal|external}).
Diffstat (limited to 'erts/emulator/beam/erl_node_tables.c')
-rw-r--r--erts/emulator/beam/erl_node_tables.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/erts/emulator/beam/erl_node_tables.c b/erts/emulator/beam/erl_node_tables.c
index 6960844e99..de4c4e353e 100644
--- a/erts/emulator/beam/erl_node_tables.c
+++ b/erts/emulator/beam/erl_node_tables.c
@@ -1118,7 +1118,9 @@ insert_offheap(ErlOffHeap *oh, int type, Eterm id)
Uint *hp = &id_heap[0];
InsertedBin *nib;
#if HALFWORD_HEAP
- UseTmpHeapNoproc(BIG_UWORD_HEAP_SIZE(val));
+ int actual_need = BIG_UWORD_HEAP_SIZE(val);
+ ASSERT(actual_need <= (BIG_UINT_HEAP_SIZE*2));
+ UseTmpHeapNoproc(actual_need);
a.id = erts_bld_uword(&hp, NULL, (UWord) val);
#else
UseTmpHeapNoproc(BIG_UINT_HEAP_SIZE);
@@ -1132,7 +1134,7 @@ insert_offheap(ErlOffHeap *oh, int type, Eterm id)
nib->next = inserted_bins;
inserted_bins = nib;
#if HALFWORD_HEAP
- UnUseTmpHeapNoproc(BIG_UINT_HEAP_SIZE*2);
+ UnUseTmpHeapNoproc(actual_need);
#else
UnUseTmpHeapNoproc(BIG_UINT_HEAP_SIZE);
#endif