Simon Van Mierlo преди 9 години
родител
ревизия
24d94f905c
променени са 1 файла, в които са добавени 5 реда и са изтрити 5 реда
  1. 5 5
      src/python_sccd/python_sccd_runtime/statecharts_core.py

+ 5 - 5
src/python_sccd/python_sccd_runtime/statecharts_core.py

@@ -634,7 +634,7 @@ class State:
         for c in self.children:
             self.descendants.extend(c.descendants)
         for d in self.descendants:
-            self.descendant_bitmap += 2**d.state_id
+            self.descendant_bitmap |= 2**d.state_id
             
     def addChild(self, child):
         self.children.append(child)
@@ -730,11 +730,11 @@ class Transition:
             if s.exit:
                 s.exit()
             # self.obj.configuration.remove(s)
-            self.obj.configuration_bitmap -= 2**s.state_id
+            self.obj.configuration_bitmap &= ~2**s.state_id
         
         # combo state changed area
-        self.obj.combo_step.changed_bitmap += 2**self.lca.state_id
-        self.obj.combo_step.changed_bitmap += self.lca.descendant_bitmap
+        self.obj.combo_step.changed_bitmap |= 2**self.lca.state_id
+        self.obj.combo_step.changed_bitmap |= self.lca.descendant_bitmap
         
         # execute transition action(s)
         if self.action:
@@ -745,7 +745,7 @@ class Transition:
         for s in enter_set:
             self.obj.eventless_states += s.has_eventless_transitions
             # self.obj.configuration.append(s)
-            self.obj.configuration_bitmap += 2**s.state_id
+            self.obj.configuration_bitmap |= 2**s.state_id
             # execute enter action(s)
             if s.enter:
                 s.enter()