diff options
author | Sverker Eriksson <[email protected]> | 2010-12-10 10:52:15 +0100 |
---|---|---|
committer | Sverker Eriksson <[email protected]> | 2011-02-03 17:33:43 +0100 |
commit | 561f6fd2bc8367acd1bceea291303adb18ad0b93 (patch) | |
tree | 5d2744f9c7809b1a7d94f3905ff488fef6281a35 /erts/emulator/beam | |
parent | fff4ba0282e42e2942acebff9c10a274075c1c62 (diff) | |
download | otp-561f6fd2bc8367acd1bceea291303adb18ad0b93.tar.gz otp-561f6fd2bc8367acd1bceea291303adb18ad0b93.tar.bz2 otp-561f6fd2bc8367acd1bceea291303adb18ad0b93.zip |
HALFWORD first stab at high mem alloc
Diffstat (limited to 'erts/emulator/beam')
-rw-r--r-- | erts/emulator/beam/erl_alloc.types | 1 | ||||
-rw-r--r-- | erts/emulator/beam/erl_db.c | 6 |
2 files changed, 4 insertions, 3 deletions
diff --git a/erts/emulator/beam/erl_alloc.types b/erts/emulator/beam/erl_alloc.types index b7b9c6a133..128adcaa8c 100644 --- a/erts/emulator/beam/erl_alloc.types +++ b/erts/emulator/beam/erl_alloc.types @@ -193,6 +193,7 @@ type DB_FIXATION SHORT_LIVED ETS db_fixation type DB_FIX_DEL SHORT_LIVED ETS fixed_del type DB_TABLES LONG_LIVED ETS db_tabs type DB_NTAB_ENT STANDARD ETS db_named_table_entry +type DB_HEIR_DATA STANDARD ETS db_heir_data type DB_TMP TEMPORARY ETS db_tmp type DB_MC_STK TEMPORARY ETS db_mc_stack type DB_MS_PSDO_PROC LONG_LIVED ETS db_match_pseudo_proc diff --git a/erts/emulator/beam/erl_db.c b/erts/emulator/beam/erl_db.c index 3115e647af..f045690060 100644 --- a/erts/emulator/beam/erl_db.c +++ b/erts/emulator/beam/erl_db.c @@ -3501,8 +3501,8 @@ static void set_heir(Process* me, DbTable* tb, Eterm heir, UWord heir_data) /* Make a dummy 1-tuple around data to use DbTerm */ wrap_tpl = TUPLE1(tmp,heir_data); size = size_object(wrap_tpl); - // SVERK: Must be low memory - dbterm = erts_db_alloc(ERTS_ALC_T_DB_TERM, (DbTable *)tb, + /* SVERK: Must be low memory due to erts_send_message */ + dbterm = erts_db_alloc(ERTS_ALC_T_DB_HEIR_DATA, (DbTable *)tb, (sizeof(DbTerm) + sizeof(Eterm)*(size-1))); dbterm->size = size; top = dbterm->tpl; @@ -3521,7 +3521,7 @@ static void free_heir_data(DbTable* tb) if (tb->common.heir != am_none && !is_immed(tb->common.heir_data)) { DbTerm* p = (DbTerm*) tb->common.heir_data; db_cleanup_offheap_comp(p); - erts_db_free(ERTS_ALC_T_DB_TERM, tb, (void *)p, + erts_db_free(ERTS_ALC_T_DB_HEIR_DATA, tb, (void *)p, sizeof(DbTerm) + (p->size-1)*sizeof(Eterm)); } #ifdef DEBUG |