summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabe Black <gabeblack@google.com>2019-01-11 17:04:44 -0800
committerGabe Black <gabeblack@google.com>2019-01-14 21:28:17 +0000
commitfd834ffb5334689792c81970c8da26ce27182932 (patch)
tree09c8e35bb7b15a6c6f32d066a488fab0a7353c91
parent8dea46f92fb70ddb8a5be81b91027a21d5dc8433 (diff)
downloadgem5-fd834ffb5334689792c81970c8da26ce27182932.tar.xz
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.sandberg@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
-rw-r--r--src/python/m5/params.py44
1 files changed, 22 insertions, 22 deletions
diff --git a/src/python/m5/params.py b/src/python/m5/params.py
index ac712dc1f..1b03a665a 100644
--- a/src/python/m5/params.py
+++ b/src/python/m5/params.py
@@ -1785,30 +1785,30 @@ class PortRef(object):
# 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]