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