diff --git a/libIRDB/include/core/fileir.hpp b/libIRDB/include/core/fileir.hpp index 9cfa4dd2ab166e7bc68f236dd1abae53a0b6c12a..7668dabaf3094753e0235894546627d1896356ea 100644 --- a/libIRDB/include/core/fileir.hpp +++ b/libIRDB/include/core/fileir.hpp @@ -123,7 +123,7 @@ class FileIR_t : public BaseObj_t RelocationSet_t relocs; TypeSet_t types; DataScoopSet_t scoops; - VariantID_t* progid; // Not owned by fileIR + VariantID_t& progid; // Not owned by fileIR ICFSSet_t icfs_set; File_t* fileptr; // Owned by variant, not fileIR EhProgramSet_t eh_pgms; diff --git a/libIRDB/src/core/fileir.cpp b/libIRDB/src/core/fileir.cpp index 9be39c644e8c93973b9247b87af6a35c5ce4f7ab..a46336a57fde879856f47329b13de221500d134e 100644 --- a/libIRDB/src/core/fileir.cpp +++ b/libIRDB/src/core/fileir.cpp @@ -82,18 +82,18 @@ static virtual_offset_t strtovo(std::string s) } // Create a Variant from the database -FileIR_t::FileIR_t(const VariantID_t &newprogid, File_t* fid) : BaseObj_t(NULL) +FileIR_t::FileIR_t(const VariantID_t &newprogid, File_t* fid) + : BaseObj_t(NULL), progid((VariantID_t&) newprogid) { orig_variant_ir_p=NULL; - 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 b45d6fd4551415d706c77e5cc770b75b1b8652fd..c70a735171424d8ae2d8f4a0c1c4b62f0cf85411 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(