diff --git a/libIRDB/include/util/IBT_Provenance.hpp b/libIRDB/include/util/IBT_Provenance.hpp index 34fc5aad483f3d0c88ec73f84c453e7fbb089f10..7969904380357052caa648b645e694d60c4d1a54 100644 --- a/libIRDB/include/util/IBT_Provenance.hpp +++ b/libIRDB/include/util/IBT_Provenance.hpp @@ -13,10 +13,25 @@ class IBTProvenance_t virtual ~IBTProvenance_t() {;} virtual void AddFile(const FileIR_t* ); - Provenance_t getProvenance(const Instruction_t* insn) const + /*Provenance_t getProvenance(const Instruction_t* insn) const { - return prov_map.at(insn); - } + return ((ProvMap_t) prov_map)[insn]; + }*/ + + Provenance_t& operator[] (const Instruction_t* i) + { + return prov_map[i]; + } + + const Provenance_t& operator[] (const Instruction_t* i) const + { + ProvMap_t::const_iterator it=prov_map.find(i); + if (it!= prov_map.end()) + return it->second; + static Provenance_t empty; + return empty; + } + protected: virtual void Init() {};