mirror of
https://github.com/Z3Prover/z3
synced 2025-07-18 18:36:41 +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
2 changed files with 2 additions and 2 deletions
|
@ -108,7 +108,7 @@ namespace datalog {
|
||||||
|
|
||||||
void relation_manager::store_relation(func_decl * pred, relation_base * rel) {
|
void relation_manager::store_relation(func_decl * pred, relation_base * rel) {
|
||||||
SASSERT(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) {
|
if (e->get_data().m_value) {
|
||||||
e->get_data().m_value->deallocate();
|
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>,
|
typedef map<const relation_plugin *, finite_product_relation_plugin *, ptr_hash<const relation_plugin>,
|
||||||
ptr_eq<const relation_plugin> > rp2fprp_map;
|
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<table_plugin> table_plugin_vector;
|
||||||
typedef ptr_vector<relation_plugin> relation_plugin_vector;
|
typedef ptr_vector<relation_plugin> relation_plugin_vector;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue