From 5d8ea6be494653e714ba042afb5527ddcbc6516b Mon Sep 17 00:00:00 2001 From: Matthew McGill <mhollismcgill@gmail.com> Date: Thu, 18 Oct 2018 14:26:01 +0000 Subject: [PATCH] thanos integration Former-commit-id: 108c4d9089d4c3abc8289a54da34f03265938ad2 --- libIRDB/include/core/fileir.hpp | 4 ++-- libIRDB/include/core/variantid.hpp | 8 ++++---- libIRDB/src/core/fileir.cpp | 4 ++-- libIRDB/src/core/generate_spri.cpp | 2 +- libIRDB/src/core/variantid.cpp | 9 +++------ 5 files changed, 12 insertions(+), 15 deletions(-) diff --git a/libIRDB/include/core/fileir.hpp b/libIRDB/include/core/fileir.hpp index b540d5287..9cfa4dd2a 100644 --- a/libIRDB/include/core/fileir.hpp +++ b/libIRDB/include/core/fileir.hpp @@ -123,9 +123,9 @@ class FileIR_t : public BaseObj_t RelocationSet_t relocs; TypeSet_t types; DataScoopSet_t scoops; - VariantID_t progid; + VariantID_t* progid; // Not owned by fileIR ICFSSet_t icfs_set; - File_t* fileptr; + File_t* fileptr; // Owned by variant, not fileIR EhProgramSet_t eh_pgms; EhCallSiteSet_t eh_css; diff --git a/libIRDB/include/core/variantid.hpp b/libIRDB/include/core/variantid.hpp index f9536cf41..7a6390484 100644 --- a/libIRDB/include/core/variantid.hpp +++ b/libIRDB/include/core/variantid.hpp @@ -49,10 +49,10 @@ class VariantID_t : public BaseObj_t File_t* GetMainFile() const; friend std::ostream& libIRDB::operator<<(std::ostream& out, const VariantID_t& pid); - friend class FileIR_T; - friend class Function_t; - friend class AddressID_t; - friend class Instruction_t; + //friend class FileIR_T; + //friend class Function_t; + //friend class AddressID_t; + //friend class Instruction_t; db_id_t GetOriginalVariantID() const { return orig_pid;} diff --git a/libIRDB/src/core/fileir.cpp b/libIRDB/src/core/fileir.cpp index 787fb0c55..9be39c644 100644 --- a/libIRDB/src/core/fileir.cpp +++ b/libIRDB/src/core/fileir.cpp @@ -86,14 +86,14 @@ FileIR_t::FileIR_t(const VariantID_t &newprogid, File_t* fid) : BaseObj_t(NULL) { orig_variant_ir_p=NULL; - progid=newprogid; + progid=(VariantID_t*) &newprogid; if(fid==NULL) fileptr=newprogid.GetMainFile(); else fileptr=fid; - if(progid.IsRegistered()) + if(progid->IsRegistered()) { ReadFromDB(); SetArchitecture(); diff --git a/libIRDB/src/core/generate_spri.cpp b/libIRDB/src/core/generate_spri.cpp index c70a73517..b45d6fd45 100644 --- a/libIRDB/src/core/generate_spri.cpp +++ b/libIRDB/src/core/generate_spri.cpp @@ -837,7 +837,7 @@ static void generate_insn_to_insn_maps(FileIR_t *fileIRp, FileIR_t *orig_fileIRp // void FileIR_t::GenerateSPRI(ostream &fout, bool with_ilr) { - VariantID_t orig_varidp(progid.GetOriginalVariantID()); + VariantID_t orig_varidp(progid->GetOriginalVariantID()); assert(orig_varidp.IsRegistered()==true); for( diff --git a/libIRDB/src/core/variantid.cpp b/libIRDB/src/core/variantid.cpp index ac45b0d0e..4d6f4878e 100644 --- a/libIRDB/src/core/variantid.cpp +++ b/libIRDB/src/core/variantid.cpp @@ -40,13 +40,10 @@ VariantID_t::VariantID_t() : VariantID_t::~VariantID_t() { - for(std::set<File_t*>::iterator - it = files.begin(); - it != files.end(); - ++it - ) + cout << "VARIANT ID DESTRUCTOR" << endl; + for(auto it : files) { - delete *it; + delete it; } } -- GitLab