diff options
| -rw-r--r-- | generic/tclCompCmdsSZ.c | 14 | 
1 files changed, 7 insertions, 7 deletions
diff --git a/generic/tclCompCmdsSZ.c b/generic/tclCompCmdsSZ.c index be63e0e..9c93fb2 100644 --- a/generic/tclCompCmdsSZ.c +++ b/generic/tclCompCmdsSZ.c @@ -1224,12 +1224,7 @@ TclCompileSwitchCmd(  	    if (TCL_OK != TclFindElement(NULL, bytes, numBytes,  		    &(bodyTokenArray[numWords].start), &bytes,  		    &(bodyTokenArray[numWords].size), &literal) || !literal) { -	    abort: -		ckfree((char *) bodyToken); -		ckfree((char *) bodyTokenArray); -		ckfree((char *) bodyLines); -		ckfree((char *) bodyContLines); -		return TCL_ERROR; +		goto abort;  	    }  	    bodyTokenArray[numWords].type = TCL_TOKEN_TEXT; @@ -1254,7 +1249,12 @@ TclCompileSwitchCmd(  	    numWords++;  	}  	if (numWords % 2) { -	    goto abort; +	abort: +	    ckfree((char *) bodyToken); +	    ckfree((char *) bodyTokenArray); +	    ckfree((char *) bodyLines); +	    ckfree((char *) bodyContLines); +	    return TCL_ERROR;  	}      } else if (numWords % 2 || numWords == 0) {  	/*  | 
