changeset 2a1a21f79047 in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=2a1a21f79047
description:
        ruby: slicc: derive DataMember class from Var instead of PairContainer

        The DataMember class in Type.py was being derived from PairContainer.  A
        separate Var object was also created for the DataMember.  This meant 
some
        duplication of across the members of these two classes (Var and 
DataMember).
        This patch changes DataMember from Var instead.  There is no obvious 
reason to
        derive from PairContainer which can only hold pairs, something that Var 
class
        already supports.  The only thing that DataMember has over Var is 
init_code,
        which is being retained.  This change would later on help in having 
pointers
        in DataMembers.

diffstat:

 src/mem/slicc/symbols/Type.py |  19 +++++++++----------
 1 files changed, 9 insertions(+), 10 deletions(-)

diffs (37 lines):

diff -r d6fb95dbf3e2 -r 2a1a21f79047 src/mem/slicc/symbols/Type.py
--- a/src/mem/slicc/symbols/Type.py     Thu Sep 17 14:00:33 2015 -0400
+++ b/src/mem/slicc/symbols/Type.py     Fri Sep 18 13:27:47 2015 -0500
@@ -31,11 +31,11 @@
 from slicc.symbols.Symbol import Symbol
 from slicc.symbols.Var import Var
 
-class DataMember(PairContainer):
-    def __init__(self, ident, type, pairs, init_code):
-        super(DataMember, self).__init__(pairs)
-        self.ident = ident
-        self.type = type
+class DataMember(Var):
+    def __init__(self, symtab, ident, location, type, code, pairs,
+                 machine, init_code):
+        super(DataMember, self).__init__(symtab, ident, location, type,
+                                         code, pairs, machine)
         self.init_code = init_code
 
 class Enumeration(PairContainer):
@@ -126,12 +126,11 @@
         if ident in self.data_members:
             return False
 
-        member = DataMember(ident, type, pairs, init_code)
+        member = DataMember(self.symtab, ident, self.location, type,
+                            "m_%s" % ident, pairs, None, init_code)
+
         self.data_members[ident] = member
-
-        var = Var(self.symtab, ident, self.location, type,
-                "m_%s" % ident, {}, None)
-        self.symtab.registerSym(ident, var)
+        self.symtab.registerSym(ident, member)
         return True
 
     def dataMemberType(self, ident):
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to