diff options
author | Patrik Nyblom <pan@erlang.org> | 2010-02-11 11:00:47 +0100 |
---|---|---|
committer | Björn Gustavsson <bjorn@erlang.org> | 2010-03-10 14:25:36 +0100 |
commit | ac0b3f0a64705717d21e4a3d84d91d9c44f3baf7 (patch) | |
tree | 749b16612ebb287c0ea73d3c9e8abfbe3d530c03 /erts/emulator/beam/erl_node_tables.c | |
parent | 3ddf0126dfcb60f0554e2d52187fa012f378e428 (diff) | |
download | otp-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.c | 6 |
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 |