diff options
Diffstat (limited to 'generic/tclCompCmds.c')
| -rw-r--r-- | generic/tclCompCmds.c | 14 | 
1 files changed, 7 insertions, 7 deletions
| diff --git a/generic/tclCompCmds.c b/generic/tclCompCmds.c index 9eb74f5..b6e9527 100644 --- a/generic/tclCompCmds.c +++ b/generic/tclCompCmds.c @@ -4080,12 +4080,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 *) bodyNext); -		return TCL_ERROR; +		goto abort;  	    }  	    bodyTokenArray[numWords].type = TCL_TOKEN_TEXT; @@ -4110,7 +4105,12 @@ TclCompileSwitchCmd(  	    numWords++;  	}  	if (numWords % 2) { -	    goto abort; +	abort: +	    ckfree((char *) bodyToken); +	    ckfree((char *) bodyTokenArray); +	    ckfree((char *) bodyLines); +	    ckfree((char *) bodyNext); +	    return TCL_ERROR;  	}      } else if (numWords % 2 || numWords == 0) {  	/* | 
