diff options
author | Dan Liew <delcypher@gmail.com> | 2015-12-18 12:48:18 +0000 |
---|---|---|
committer | Dan Liew <delcypher@gmail.com> | 2015-12-18 12:48:18 +0000 |
commit | 535be01be5ab33a0e7106e2d5511bba2797d1ed0 (patch) | |
tree | 026a4f1b16c1996755954f7824e0d10f8ed0ef8e /lib/Expr/Expr.cpp | |
parent | 7e75fa79b2e76251c2cd417a7eae8a7620b014ae (diff) | |
parent | 53ff7a002a8213a5d5e778bef2a895998d9890e1 (diff) | |
download | klee-535be01be5ab33a0e7106e2d5511bba2797d1ed0.tar.gz |
Merge pull request #315 from delcypher/array_leak
Try to fix leaking Array objects detected by ASan.
Diffstat (limited to 'lib/Expr/Expr.cpp')
-rw-r--r-- | lib/Expr/Expr.cpp | 35 |
1 files changed, 0 insertions, 35 deletions
diff --git a/lib/Expr/Expr.cpp b/lib/Expr/Expr.cpp index baa85663..2c64aff4 100644 --- a/lib/Expr/Expr.cpp +++ b/lib/Expr/Expr.cpp @@ -494,41 +494,6 @@ unsigned Array::computeHash() { hashValue = res; return hashValue; } - -std::map<unsigned, std::vector<const Array *> *> Array::symbolicArraySingletonMap; - -const Array * Array::CreateArray(const std::string &_name, uint64_t _size, - const ref<ConstantExpr> *constantValuesBegin, - const ref<ConstantExpr> *constantValuesEnd, - Expr::Width _domain, - Expr::Width _range) { - - const Array * array = new Array(_name, _size, constantValuesBegin, constantValuesEnd, _domain,_range); - if (array->constantValues.size() == 0) { // symbolic array - unsigned hash = array->hash(); - std::vector<const Array *> * bucket = Array::symbolicArraySingletonMap[hash]; - if (bucket){ - for (std::vector<const Array*>::const_iterator it = bucket->begin(); - it != bucket->end(); it ++){ - const Array* prospect = *it; - if (prospect->size == array->size && prospect->name == array->name){ - delete array; - return prospect; - } - } - bucket->push_back(array); - return array; - } else { - bucket = new std::vector<const Array *>(); - bucket->push_back(array); - Array::symbolicArraySingletonMap[hash] = bucket; - return array; - } - } else { // concrete array - return array; - } -} - /***/ ref<Expr> ReadExpr::create(const UpdateList &ul, ref<Expr> index) { |