]> granicus.if.org Git - python/commitdiff
Only output the buffer size error label if it is used.
authorJack Jansen <jack.jansen@cwi.nl>
Wed, 5 Sep 2001 10:27:53 +0000 (10:27 +0000)
committerJack Jansen <jack.jansen@cwi.nl>
Wed, 5 Sep 2001 10:27:53 +0000 (10:27 +0000)
Shuts up another couple of gcc warnings.

Tools/bgen/bgen/bgenBuffer.py
Tools/bgen/bgen/bgenHeapBuffer.py

index 9d28b80b863244b5a417946e3921eef9a383a9fc..e948a146d9b8361f1e604fad81ecf6231bcc4ded 100644 (file)
@@ -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):
index c6160ba479438d89a862906aa1691beec1ac8383..1b16d555ea49959d421327eb1c77842b0736fbb5 100644 (file)
@@ -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)