self.datatype = datatype
self.sizetype = sizetype
self.sizeformat = sizeformat or type2format[sizetype]
+ self.label_needed = 0
def declare(self, name):
self.declareBuffer(name)
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)
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):
OutLbrace()
Output('PyErr_NoMemory();')
Output("goto %s__error__;", name)
+ self.label_needed = 1
OutRbrace()
Output("%s__len__ = %s__in_len__;", name, name)