mirror of
https://github.com/python/cpython.git
synced 2024-11-24 18:34:43 +08:00
Only output the buffer size error label if it is used.
Shuts up another couple of gcc warnings.
This commit is contained in:
parent
703ad705c3
commit
5a1516bce5
@ -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):
|
||||
|
@ -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)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user