Tcl Source Code

Check-in [d9d00aa893]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:[7368d225a6] Extend the auto-cleanup of zero ref count values passed in to the Tcl_*SetVar*() family of routines to cover the missing case where the flags value of TCL_APPEND_VALUE is passed in alone. *** POTENTIAL INCOMAPTIBILITY***
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk | potential incompatibility
Files: files | file ages | folders
SHA1: d9d00aa893f336616b8fc098c9f4c7869eb92179
User & Date: dgp 2014-07-10 16:40:30.957
Context
2014-07-10
17:21
[f652ae79ed] Close sockets used in tests, so as not to corrupt other tests in the suite. check-in: fde4ddeb93 user: dgp tags: trunk
16:40
[7368d225a6] Extend the auto-cleanup of zero ref count values passed in to the Tcl_*SetVar*() family... check-in: d9d00aa893 user: dgp tags: trunk, potential incompatibility
15:45
[7368d225a6] Extend the auto-cleanup of zero ref count values passed in to the Tcl_*SetVar*() family... check-in: 212c0638b1 user: dgp tags: core-8-5-branch, potential incompatibility
12:59
Repair buffer indexing error in Tcl_ReadRaw(). check-in: 0f4ff1ba28 user: dgp tags: trunk
Changes
Unified Diff Show Whitespace Changes Patch
Changes to generic/tclVar.c.
1954
1955
1956
1957
1958
1959
1960



1961
1962
1963
1964
1965
1966
1967
		    TclContinuationsCopy(varPtr->value.objPtr, oldValuePtr);

		    TclDecrRefCount(oldValuePtr);
		    oldValuePtr = varPtr->value.objPtr;
		    Tcl_IncrRefCount(oldValuePtr);	/* Since var is ref */
		}
		Tcl_AppendObjToObj(oldValuePtr, newValuePtr);



	    }
	}
    } else if (newValuePtr != oldValuePtr) {
	/*
	 * In this case we are replacing the value, so we don't need to do
	 * more than swap the objects.
	 */







>
>
>







1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
		    TclContinuationsCopy(varPtr->value.objPtr, oldValuePtr);

		    TclDecrRefCount(oldValuePtr);
		    oldValuePtr = varPtr->value.objPtr;
		    Tcl_IncrRefCount(oldValuePtr);	/* Since var is ref */
		}
		Tcl_AppendObjToObj(oldValuePtr, newValuePtr);
		if (newValuePtr->refCount == 0) {
		    Tcl_DecrRefCount(newValuePtr);
		}
	    }
	}
    } else if (newValuePtr != oldValuePtr) {
	/*
	 * In this case we are replacing the value, so we don't need to do
	 * more than swap the objects.
	 */