mirror of
https://github.com/Z3Prover/z3
synced 2025-04-08 10:25:18 +00:00
Fixed non-deterministic behaviour in relation_map
Use of ptr_hash and subsequent iteration led to non-deterministic behaviour in Datalog engine. Signed-off-by: Matthias Schlaipfer <t-matsch@microsoft.com>
This commit is contained in:
parent
aee1813056
commit
bc94007207
|
@ -108,7 +108,7 @@ namespace datalog {
|
|||
|
||||
void relation_manager::store_relation(func_decl * pred, relation_base * rel) {
|
||||
SASSERT(rel);
|
||||
relation_map::entry * e = m_relations.insert_if_not_there2(pred, 0);
|
||||
relation_map::obj_map_entry * e = m_relations.insert_if_not_there2(pred, 0);
|
||||
if (e->get_data().m_value) {
|
||||
e->get_data().m_value->deallocate();
|
||||
}
|
||||
|
|
|
@ -73,7 +73,7 @@ namespace datalog {
|
|||
typedef map<const relation_plugin *, finite_product_relation_plugin *, ptr_hash<const relation_plugin>,
|
||||
ptr_eq<const relation_plugin> > rp2fprp_map;
|
||||
|
||||
typedef map<func_decl *, relation_base *, ptr_hash<func_decl>, ptr_eq<func_decl> > relation_map;
|
||||
typedef obj_map<func_decl, relation_base *> relation_map;
|
||||
typedef ptr_vector<table_plugin> table_plugin_vector;
|
||||
typedef ptr_vector<relation_plugin> relation_plugin_vector;
|
||||
|
||||
|
|
Loading…
Reference in a new issue