diff options
| author | nijtmans@users.sourceforge.net <jan.nijtmans> | 2015-07-02 08:17:50 (GMT) | 
|---|---|---|
| committer | nijtmans@users.sourceforge.net <jan.nijtmans> | 2015-07-02 08:17:50 (GMT) | 
| commit | c987de9d2fba29077b6c843a80e7a8d1d83df08c (patch) | |
| tree | 9b1ff6ff3db457ec452f61ebcb38c942c259dc7d /generic/tclBasic.c | |
| parent | b185ee724b895e0a541f78285a13be727e4176c0 (diff) | |
| download | tcl-c987de9d2fba29077b6c843a80e7a8d1d83df08c.zip tcl-c987de9d2fba29077b6c843a80e7a8d1d83df08c.tar.gz tcl-c987de9d2fba29077b6c843a80e7a8d1d83df08c.tar.bz2  | |
Another round of refCount consistancy improvements.
Diffstat (limited to 'generic/tclBasic.c')
| -rw-r--r-- | generic/tclBasic.c | 30 | 
1 files changed, 15 insertions, 15 deletions
diff --git a/generic/tclBasic.c b/generic/tclBasic.c index 1220239..c9b37b2 100644 --- a/generic/tclBasic.c +++ b/generic/tclBasic.c @@ -2260,7 +2260,7 @@ Tcl_CreateObjCommand(  	/* Command already exists. */  	/* -	 * [***] This is wrong.  See Tcl Bug a16752c252.   +	 * [***] This is wrong.  See Tcl Bug a16752c252.  	 * However, this buggy behavior is kept under particular  	 * circumstances to accommodate deployed binaries of the  	 * "tclcompiler" program. http://sourceforge.net/projects/tclpro/ @@ -3084,7 +3084,7 @@ Tcl_DeleteCommandFromToken(  	while (tracePtr != NULL) {  	    CommandTrace *nextPtr = tracePtr->nextPtr; -	    if ((--tracePtr->refCount) <= 0) { +	    if (tracePtr->refCount-- <= 1) {  		ckfree(tracePtr);  	    }  	    tracePtr = nextPtr; @@ -3270,7 +3270,7 @@ CallCommandTraces(  	tracePtr->traceProc(tracePtr->clientData, (Tcl_Interp *) iPtr,  		oldName, newName, flags);  	cmdPtr->flags &= ~tracePtr->flags; -	if ((--tracePtr->refCount) <= 0) { +	if (tracePtr->refCount-- <= 1) {  	    ckfree(tracePtr);  	}      } @@ -4144,7 +4144,7 @@ TclNREvalObjv(       * data[1] stores a marker for use by tailcalls; it will be set to 1 by       * command redirectors (imports, alias, ensembles) so that tailcall skips       * this callback (that marks the end of the target command) and goes back -     * to the end of the source command.  +     * to the end of the source command.       */      if (iPtr->deferredCallbacks) { @@ -4172,7 +4172,7 @@ EvalObjvCore(      Interp *iPtr = (Interp *) interp;      Namespace *lookupNsPtr = NULL;      int enterTracesDone = 0; -     +      /*       * Push records for task to be done on return, in INVERSE order. First, if       * needed, the exception handlers (as they should happen last). @@ -4298,7 +4298,7 @@ EvalObjvCore(  	    }  	} -	/*  +	/*  	 * Schedule leave traces.  Raise the refCount on the resolved  	 * cmdPtr, so that when it passes to the leave traces we know  	 * it's still valid. @@ -4409,7 +4409,7 @@ NRCommand(       /*        * If there is a tailcall, schedule it next        */ -  +      if (data[1] && (data[1] != INT2PTR(1))) {          TclNRAddCallback(interp, TclNRTailcallEval, data[1], NULL, NULL, NULL);      } @@ -5643,10 +5643,10 @@ TclArgumentBCEnter(       * ensemble dispatch.  Ensemble subcommands that lead to script       * evaluation are not supposed to get compiled, because a command       * such as [info level] in the script can expose some of the dispatch -     * shenanigans.  This means that we don't have to tend to the  +     * shenanigans.  This means that we don't have to tend to the       * housekeeping, and can escape now.       */ -	 +      if (ePtr->nline != objc) {          return;      } @@ -5910,7 +5910,7 @@ Tcl_GlobalEvalObj(   *   *	If the flag TCL_EVAL_DIRECT is passed in, the value of invoker   *	must be NULL.  Support for non-NULL invokers in that mode has - *	been removed since it was unused and untested.  Failure to  + *	been removed since it was unused and untested.  Failure to   *	follow this limitation will lead to an assertion panic.   *   * Results: @@ -8192,7 +8192,7 @@ Tcl_NRCmdSwap(   *     TclSkipTailcall:  if the NEXT command to be pushed tailcalls, execution   *         should continue after the CURRENT command is fully returned ("skip   *         the next command: we are redirecting to it, tailcalls should run - *         after WE return")  + *         after WE return")   *     TclPushTailcallPoint: the search for a tailcalling spot cannot traverse   *         this point. This is special for OO, as some of the oo constructs   *         that behave like commands may not push an NRCommand callback. @@ -8326,7 +8326,7 @@ TclNRTailcallObjCmd(          /* The tailcall data is in a Tcl list: the first element is the           * namespace, the rest the command to be tailcalled. */ -         +          listPtr = Tcl_NewListObj(objc, objv);          nsObjPtr = Tcl_NewStringObj(nsPtr->fullName, -1); @@ -8335,7 +8335,7 @@ TclNRTailcallObjCmd(              Tcl_Panic("Tailcall failed to find the proper namespace");          }   	TclListObjSetElement(interp, listPtr, 0, nsObjPtr); -         +          iPtr->varFramePtr->tailcallPtr = listPtr;      }      return TCL_RETURN; @@ -8364,9 +8364,9 @@ TclNRTailcallEval(      int objc;      Tcl_Obj **objv; -    Tcl_ListObjGetElements(interp, listPtr, &objc, &objv);  +    Tcl_ListObjGetElements(interp, listPtr, &objc, &objv);      nsObjPtr = objv[0]; -     +      if (result == TCL_OK) {  	result = TclGetNamespaceFromObj(interp, nsObjPtr, &nsPtr);      }  | 
