diff options
author | Sverker Eriksson <[email protected]> | 2010-12-15 17:20:46 +0100 |
---|---|---|
committer | Sverker Eriksson <[email protected]> | 2011-02-03 17:33:43 +0100 |
commit | 651c99b7aac8ac7ca7f84efa0d3bd3b541d6f3a4 (patch) | |
tree | 29e555424f947f7a29fa615dd89de5c9017b6d5b /erts/emulator/beam/erl_db_util.h | |
parent | 561f6fd2bc8367acd1bceea291303adb18ad0b93 (diff) | |
download | otp-651c99b7aac8ac7ca7f84efa0d3bd3b541d6f3a4.tar.gz otp-651c99b7aac8ac7ca7f84efa0d3bd3b541d6f3a4.tar.bz2 otp-651c99b7aac8ac7ca7f84efa0d3bd3b541d6f3a4.zip |
HALFWORD ETS Real matching on relative terms
Diffstat (limited to 'erts/emulator/beam/erl_db_util.h')
-rw-r--r-- | erts/emulator/beam/erl_db_util.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/erts/emulator/beam/erl_db_util.h b/erts/emulator/beam/erl_db_util.h index 600110e745..30b3eb731d 100644 --- a/erts/emulator/beam/erl_db_util.h +++ b/erts/emulator/beam/erl_db_util.h @@ -286,7 +286,7 @@ ERTS_GLB_INLINE Eterm db_copy_key(Process* p, DbTable* tb, DbTerm* obj) Uint size = size_object_rel(key, obj->tpl); Eterm* hp = HAlloc(p, size); Eterm res = copy_struct_rel(key, size, &hp, &MSO(p), obj->tpl, NULL); - ASSERT(eq_rel(res,key,obj->tpl)); + ASSERT(eq_rel(res,NULL,key,obj->tpl)); return res; } } @@ -305,7 +305,7 @@ ERTS_GLB_INLINE Eterm db_copy_object_from_ets(DbTableCommon* tb, DbTerm* bp, ERTS_GLB_INLINE int db_eq(DbTableCommon* tb, Eterm a, DbTerm* b) { if (!tb->compress) { - return eq_rel(a, make_tuple_rel(b->tpl,b->tpl), b->tpl); + return eq_rel(a, NULL, make_tuple_rel(b->tpl,b->tpl), b->tpl); } else { return db_eq_comp(tb, a, b); @@ -427,7 +427,8 @@ Binary *db_match_compile(Eterm *matchexpr, Eterm *guards, Eterm db_prog_match_and_copy(DbTableCommon* tb, Process* c_p, Binary* bprog, int all, DbTerm* obj, Eterm** hpp, Uint extra); /* Returns newly allocated MatchProg binary with refc == 0*/ -Eterm db_prog_match(Process *p, Binary *prog, Eterm term, Eterm *termp, int arity, +Eterm db_prog_match(Process *p, Binary *prog, Eterm term, Eterm* base, + Eterm *termp, int arity, Uint32 *return_flags /* Zeroed on enter */); /* returns DB_ERROR_NONE if matches, 1 if not matches and some db error on error. */ |