ruby: getPort function fix
authorBrad Beckmann <Brad.Beckmann@amd.com>
Wed, 18 Nov 2009 21:55:58 +0000 (13:55 -0800)
committerBrad Beckmann <Brad.Beckmann@amd.com>
Wed, 18 Nov 2009 21:55:58 +0000 (13:55 -0800)
Fixed RubyMemory::getPort function to not pass in a -1 for the idx parameter

src/mem/rubymem.cc

index 9a1a7927d5d8103efa0cd703afb331af824015d6..74a6e390ef8d1353931096b4ba4821ff662aa269 100644 (file)
@@ -186,10 +186,19 @@ RubyMemory::getPort(const std::string &if_name, int idx)
             ruby_ports.size(),
             ruby_dma_ports.size());
 
+    //
+    // By default, getPort will be passed an idx of -1.  Of course this is an
+    // invalid ruby port index and must be a modified
+    //
+    if (idx == -1) {
+        idx = 0;
+    }
+
     // Accept request for "functional" port for backwards compatibility
     // with places where this function is called from C++.  I'd prefer
     // to move all these into Python someday.
     if (if_name == "functional") {
+        assert(idx < ruby_ports.size());
         return new Port(csprintf("%s-functional", name()), 
                         this,
                         ruby_ports[idx]);