-----Original Message----- From: g...@cmdmail.amd.com [mailto:g...@cmdmail.amd.com] Sent: Monday, November 09, 2009 10:32 AM To: Beckmann, Brad Subject: [PATCH 03 of 31] ruby: Ruby destruction fix
# HG changeset patch # User Brad Beckmann <brad.beckm...@amd.com> # Date 1257791382 28800 # Node ID a4db36f36c5f4ef621806128f1a1431746be46be # Parent f747ec40f56a8c9452d4448966e606e7bdc4eccf ruby: Ruby destruction fix. diff -r f747ec40f56a -r a4db36f36c5f src/mem/ruby/common/DataBlock.hh --- a/src/mem/ruby/common/DataBlock.hh Mon Nov 09 10:29:41 2009 -0800 +++ b/src/mem/ruby/common/DataBlock.hh Mon Nov 09 10:29:42 2009 -0800 @@ -45,7 +45,11 @@ } // Destructor - ~DataBlock() { if(m_alloc) delete [] m_data;} + ~DataBlock() { + if(m_alloc) { + delete [] m_data; + } + } DataBlock& operator=(const DataBlock& obj); diff -r f747ec40f56a -r a4db36f36c5f src/mem/ruby/common/NetDest.hh --- a/src/mem/ruby/common/NetDest.hh Mon Nov 09 10:29:41 2009 -0800 +++ b/src/mem/ruby/common/NetDest.hh Mon Nov 09 10:29:42 2009 -0800 @@ -63,7 +63,7 @@ NetDest& operator=(const Set& obj); // Destructor - // ~NetDest(); + ~NetDest() { DEBUG_MSG(MEMORY_COMP, LowPrio, "NetDest Destructor"); } // Public Methods void add(MachineID newElement); diff -r f747ec40f56a -r a4db36f36c5f src/mem/ruby/network/simple/SimpleNetwork.cc --- a/src/mem/ruby/network/simple/SimpleNetwork.cc Mon Nov 09 10:29:41 2009 -0800 +++ b/src/mem/ruby/network/simple/SimpleNetwork.cc Mon Nov 09 10:29:42 2009 -0800 @@ -124,7 +124,7 @@ } 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 diff -r f747ec40f56a -r a4db36f36c5f src/mem/rubymem.cc --- a/src/mem/rubymem.cc Mon Nov 09 10:29:41 2009 -0800 +++ b/src/mem/rubymem.cc Mon Nov 09 10:29:42 2009 -0800 @@ -60,7 +60,7 @@ 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 @@ } //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::~RubyMemory() { + delete g_system_ptr; } void diff -r f747ec40f56a -r a4db36f36c5f src/mem/rubymem.hh --- a/src/mem/rubymem.hh Mon Nov 09 10:29:41 2009 -0800 +++ b/src/mem/rubymem.hh Mon Nov 09 10:29:42 2009 -0800 @@ -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 @@ private: Tick ruby_clock; Tick ruby_phase; + RubyExitCallback* rubyExitCB; public: static std::map<int64_t, PacketPtr> pending_requests; _______________________________________________ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev