codegen: Using local numbering for variables.
Instead of keeping a global numbering of all cgen_var_* variables,
we can restart the number from 0 for each code block. This will
reduce changed lines of generated code when there is major change
to vk.xml.
Change-Id: Iaa9fb44066836f1c4843ac1321809c04d51a7f31
diff --git a/registry/vulkan/xml/cereal/common/codegen.py b/registry/vulkan/xml/cereal/common/codegen.py
index c8d450b..44d1124 100644
--- a/registry/vulkan/xml/cereal/common/codegen.py
+++ b/registry/vulkan/xml/cereal/common/codegen.py
@@ -176,11 +176,11 @@
def __init__(self,):
self.code = ""
self.indentLevel = 0
- self.gensymCounter = 0
+ self.gensymCounter = [-1]
def var(self, prefix="cgen_var"):
- res = "%s_%d" % (prefix, self.gensymCounter)
- self.gensymCounter += 1
+ self.gensymCounter[-1] += 1
+ res = "%s_%s" % (prefix, '_'.join(str(i) for i in self.gensymCounter if i >= 0))
return res
def swapCode(self,):
@@ -202,11 +202,13 @@
if bracketPrint:
self.code += self.indent() + "{\n"
self.indentLevel += 1
+ self.gensymCounter.append(-1)
def endBlock(self,bracketPrint=True):
self.indentLevel -= 1
if bracketPrint:
self.code += self.indent() + "}\n"
+ del self.gensymCounter[-1]
def beginIf(self, cond):
self.code += self.indent() + "if (" + cond + ")\n"