Browse Source

Minor optimization of function calling overhead

Yentl Van Tendeloo 7 years ago
parent
commit
e8099e721d
2 changed files with 11 additions and 8 deletions
  1. 10 7
      kernel/modelverse_kernel/main.py
  2. 1 1
      wrappers/modelverse_SCCD.py

+ 10 - 7
kernel/modelverse_kernel/main.py

@@ -383,13 +383,16 @@ class ModelverseKernel(object):
             task_frame, =    yield [("RD", [task_root, "frame"])]
             symbols, =       yield [("RD", [task_frame, "symbols"])]
             dict_keys_ref, =  yield [("RDK", [symbols])]
-            dict_keys_ref_n =   yield [("RD", [i, "name"]) for i in dict_keys_ref]
-            dict_keys =       yield [("RV", [i]) for i in dict_keys_ref_n]
-            dict_values_elem = yield [("RDN", [symbols, i]) for i in dict_keys_ref]
-            dict_values = yield [("RD", [i, "value"]) for i in dict_values_elem]
-
-            parameters = dict(list(zip(dict_keys, dict_values)))
-            parameters.update(params)
+            if dict_keys_ref:
+                dict_keys_ref_n =   yield [("RD", [i, "name"]) for i in dict_keys_ref]
+                dict_keys =       yield [("RV", [i]) for i in dict_keys_ref_n]
+                dict_values_elem = yield [("RDN", [symbols, i]) for i in dict_keys_ref]
+                dict_values = yield [("RD", [i, "value"]) for i in dict_values_elem]
+
+                parameters = dict(zip(dict_keys, dict_values))
+                parameters.update(params)
+            else:
+                parameters = params
         except:
             parameters = params
 

+ 1 - 1
wrappers/modelverse_SCCD.py

@@ -1,7 +1,7 @@
 """
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
-Date:   Thu Apr 26 14:03:15 2018
+Date:   Thu Apr 26 16:21:07 2018
 
 Model author: Yentl Van Tendeloo
 Model name:   MvK Server