ruby: Ruby destruction fix.
authorBrad Beckmann <Brad.Beckmann@amd.com>
Wed, 18 Nov 2009 21:55:57 +0000 (13:55 -0800)
committerBrad Beckmann <Brad.Beckmann@amd.com>
Wed, 18 Nov 2009 21:55:57 +0000 (13:55 -0800)
src/mem/ruby/common/DataBlock.hh
src/mem/ruby/common/NetDest.hh
src/mem/ruby/network/simple/SimpleNetwork.cc
src/mem/rubymem.cc
src/mem/rubymem.hh

index 3c8ef56f455784fe762154efe0249f24aeea5330..1d399753ed56ce318264ea0b9e4f74c6df061bcd 100644 (file)
@@ -45,7 +45,11 @@ class DataBlock {
   }
 
   // Destructor
-  ~DataBlock() { if(m_alloc) delete [] m_data;}
+  ~DataBlock() { 
+    if(m_alloc) {
+      delete [] m_data;
+    }
+  }
 
   DataBlock& operator=(const DataBlock& obj);
 
index 1dcee7b7ae4d36b77aecdef605db9c0e20c77f1a..7301409ceb878ae55c51a71a95813ff71f8d79cf 100644 (file)
@@ -63,7 +63,7 @@ public:
   NetDest& operator=(const Set& obj);
 
   // Destructor
-  // ~NetDest();
+  ~NetDest() { DEBUG_MSG(MEMORY_COMP, LowPrio, "NetDest Destructor"); }
 
   // Public Methods
   void add(MachineID newElement);
index 497c602d130f898eb81315f8bd5f94240533b53c..1a45340ed085555a84878272fe26c41b3c6d99e0 100644 (file)
@@ -124,7 +124,7 @@ SimpleNetwork::~SimpleNetwork()
   }
   m_switch_ptr_vector.deletePointers();
   m_buffers_to_free.deletePointers();
-  delete m_topology_ptr;
+  // delete m_topology_ptr;
 }
 
 // From a switch to an endpoint node
index 2fb529e12dc6f57817ce75b9b1c933c143063967..14b2048a04dd3bdb2f15a822b5870ffb096a8d09 100644 (file)
@@ -60,7 +60,7 @@ RubyMemory::RubyMemory(const Params *p)
 
     vector<RubyObjConf> sys_conf;
     while (!config.eof()) {
-        char buffer[4096];
+        char buffer[65536];
         config.getline(buffer, sizeof(buffer));
         string line = buffer;
         if (line.empty())
@@ -119,8 +119,8 @@ RubyMemory::init()
     }
 
     //Print stats at exit
-    RubyExitCallback* rc = new RubyExitCallback(this);
-    registerExitCallback(rc);
+    rubyExitCB = new RubyExitCallback(this);
+    registerExitCallback(rubyExitCB);
 
     //Sched RubyEvent, automatically reschedules to advance ruby cycles
     rubyTickEvent = new RubyEvent(this);
@@ -138,6 +138,7 @@ RubyMemory::tick()
 
 RubyMemory::~RubyMemory()
 {
+    delete g_system_ptr;
 }
 
 void
index e33418a424eee6c721962e9baa025155f5cc1a88..1bfb135e8cb1cfe7befbf3f952f4d781959f1388 100644 (file)
@@ -40,6 +40,8 @@
 #include "mem/ruby/system/RubyPort.hh"
 #include "params/RubyMemory.hh"
 
+class RubyExitCallback;
+
 class RubyMemory : public PhysicalMemory
 {
   public:
@@ -119,6 +121,7 @@ class RubyMemory : public PhysicalMemory
   private:
     Tick ruby_clock;
     Tick ruby_phase;
+    RubyExitCallback* rubyExitCB;
 
   public:
     static std::map<int64_t, PacketPtr> pending_requests;