Fix: config: start from cur last value when updating enum type obj
authorPhilippe Proulx <eeppeliteloop@gmail.com>
Thu, 17 Mar 2016 20:58:44 +0000 (16:58 -0400)
committerPhilippe Proulx <eeppeliteloop@gmail.com>
Fri, 18 Mar 2016 21:54:59 +0000 (17:54 -0400)
Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
barectf/config.py
barectf/metadata.py

index c8fd904231af070c96d4a8c96af7738b3a516a33..752e0297537f51acb075f3c05ef1a85bb5c5dcf3 100644 (file)
@@ -1518,6 +1518,12 @@ class _YamlConfigParser:
                 raise ConfigError('"members" property of enumeration type object must be an array')
 
             cur = 0
+            last_value = obj.last_value
+
+            if last_value is None:
+                cur = 0
+            else:
+                cur = last_value + 1
 
             for index, m_node in enumerate(members_node):
                 if not _is_str_prop(m_node) and not _is_assoc_array_prop(m_node):
index 8fd665f9814dfcf7ce63bec388a584986c8d73f2..f435dfbb59280442e3daa7a96e74f45cdd5afd8f 100644 (file)
@@ -264,6 +264,13 @@ class Enum(Type):
     def members(self):
         return self._members
 
+    @property
+    def last_value(self):
+        if not self._members:
+            return
+
+        return list(self._members.values())[-1][1]
+
     def value_of(self, label):
         return self._members[label]
 
This page took 0.025207 seconds and 4 git commands to generate.