Gabe Black has submitted this change and it was merged. ( https://gem5-review.googlesource.com/c/public/gem5/+/15516 )

Change subject: config: De-nest the code in Port.splice().
......................................................................

config: De-nest the code in Port.splice().

The error checking in that function used an if/else structure where
one of the two branches would be the error condition which would cause
the function to exit. Because the function would exit if an error was
detected, there's no reason to have the non-error condition guarded in
the other half of the if.

This change de-nests the non-error cases to make the function simpler
and easier to read.

Change-Id: Idedf54e84a178fa5a2a47f96373374152e420cf3
Reviewed-on: https://gem5-review.googlesource.com/c/15516
Reviewed-by: Andreas Sandberg <andreas.sandb...@arm.com>
Maintainer: Andreas Sandberg <andreas.sandb...@arm.com>
---
M src/python/m5/params.py
1 file changed, 22 insertions(+), 22 deletions(-)

Approvals:
  Andreas Sandberg: Looks good to me, approved; Looks good to me, approved



diff --git a/src/python/m5/params.py b/src/python/m5/params.py
index ac712dc..1b03a66 100644
--- a/src/python/m5/params.py
+++ b/src/python/m5/params.py
@@ -1785,30 +1785,30 @@
     # to connect the instrumentation after the full system has been
     # constructed.
     def splice(self, new_master_peer, new_slave_peer):
-        if self.peer and not proxy.isproxy(self.peer):
-            if isinstance(new_master_peer, PortRef) and \
-               isinstance(new_slave_peer, PortRef):
-                 old_peer = self.peer
-                 if self.role == 'SLAVE':
-                     self.peer = new_master_peer
-                     old_peer.peer = new_slave_peer
-                     new_master_peer.connect(self)
-                     new_slave_peer.connect(old_peer)
-                 elif self.role == 'MASTER':
-                     self.peer = new_slave_peer
-                     old_peer.peer = new_master_peer
-                     new_slave_peer.connect(self)
-                     new_master_peer.connect(old_peer)
-                 else:
-                     panic("Port %s has unknown role, "+\
-                           "cannot splice in new peers\n", self)
-            else:
-                raise TypeError, \
- "Splicing non-port references '%s','%s' to port '%s'"\
-                      % (new_master_peer, new_slave_peer, self)
-        else:
+        if not self.peer or proxy.isproxy(self.peer):
fatal("Port %s not connected, cannot splice in new peers\n", self)

+        if not isinstance(new_master_peer, PortRef) or \
+           not isinstance(new_slave_peer, PortRef):
+            raise TypeError, \
+                  "Splicing non-port references '%s','%s' to port '%s'" % \
+                  (new_master_peer, new_slave_peer, self)
+
+        old_peer = self.peer
+        if self.role == 'SLAVE':
+            self.peer = new_master_peer
+            old_peer.peer = new_slave_peer
+            new_master_peer.connect(self)
+            new_slave_peer.connect(old_peer)
+        elif self.role == 'MASTER':
+            self.peer = new_slave_peer
+            old_peer.peer = new_master_peer
+            new_slave_peer.connect(self)
+            new_master_peer.connect(old_peer)
+        else:
+            panic("Port %s has unknown role, "+\
+                  "cannot splice in new peers\n", self)
+
     def clone(self, simobj, memo):
         if memo.has_key(self):
             return memo[self]

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/15516
To unsubscribe, or for help writing mail filters, visit https://gem5-review.googlesource.com/settings

Gerrit-Project: public/gem5
Gerrit-Branch: master
Gerrit-Change-Id: Idedf54e84a178fa5a2a47f96373374152e420cf3
Gerrit-Change-Number: 15516
Gerrit-PatchSet: 3
Gerrit-Owner: Gabe Black <gabebl...@google.com>
Gerrit-Reviewer: Andreas Sandberg <andreas.sandb...@arm.com>
Gerrit-Reviewer: Anthony Gutierrez <anthony.gutier...@amd.com>
Gerrit-Reviewer: Gabe Black <gabebl...@google.com>
Gerrit-MessageType: merged
_______________________________________________
gem5-dev mailing list
gem5-dev@gem5.org
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to