diff --git a/Tools/bgen/bgen/bgenBuffer.py b/Tools/bgen/bgen/bgenBuffer.py index 9d28b80b863..e948a146d9b 100644 --- a/Tools/bgen/bgen/bgenBuffer.py +++ b/Tools/bgen/bgen/bgenBuffer.py @@ -36,6 +36,7 @@ class FixedInputOutputBufferType(InputOnlyType): self.datatype = datatype self.sizetype = sizetype self.sizeformat = sizeformat or type2format[sizetype] + self.label_needed = 0 def declare(self, name): self.declareBuffer(name) @@ -67,6 +68,7 @@ class FixedInputOutputBufferType(InputOnlyType): Output('PyErr_SetString(PyExc_TypeError, "buffer length should be %s");', self.size) Output("goto %s__error__;", name) + self.label_needed = 1 OutRbrace() self.transferSize(name) @@ -83,9 +85,10 @@ class FixedInputOutputBufferType(InputOnlyType): return "%s__out__, (int)%s" % (name, self.size) def cleanup(self, name): - DedentLevel() - Output(" %s__error__: ;", name) - IndentLevel() + if self.label_needed: + DedentLevel() + Output(" %s__error__: ;", name) + IndentLevel() class FixedCombinedInputOutputBufferType(FixedInputOutputBufferType): diff --git a/Tools/bgen/bgen/bgenHeapBuffer.py b/Tools/bgen/bgen/bgenHeapBuffer.py index c6160ba4794..1b16d555ea4 100644 --- a/Tools/bgen/bgen/bgenHeapBuffer.py +++ b/Tools/bgen/bgen/bgenHeapBuffer.py @@ -24,6 +24,7 @@ class HeapInputOutputBufferType(FixedInputOutputBufferType): OutLbrace() Output('PyErr_NoMemory();') Output("goto %s__error__;", name) + self.label_needed = 1 OutRbrace() Output("%s__len__ = %s__in_len__;", name, name)