Tcl Source Code

Check-in [2830730e99]
Login

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

Overview
Comment:[3479689] Plug memory leak due to incomplete bug fix.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 2830730e990ecc865b7114b3f9a9d1e4b66c8758
User & Date: dgp 2014-07-11 04:49:49
Context
2014-07-11
10:43
Starting with Unicode 6.3, the mongolian vowel separator (U+180e) is no longer a whitespace, but for... check-in: 8320e361b7 user: jan.nijtmans tags: trunk
04:49
[3479689] Plug memory leak due to incomplete bug fix. check-in: 2830730e99 user: dgp tags: trunk
2014-07-10
18:17
makeFile / removeFile balance. check-in: 22ae2172c4 user: dgp tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to generic/tclPathObj.c.

2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446

2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459

		objc--; objv++;
		while (objc--) {
		    TclpNativeJoinPath(transPtr, Tcl_GetString(*objv++));
		}
		TclDecrRefCount(parts);
	    } else {
		/*
		 * Simple case. "rest" is relative path. Just join it. The
		 * "rest" object will be freed when Tcl_FSJoinToPath returns
		 * (unless something else claims a refCount on it).
		 */

		Tcl_Obj *joined;

		Tcl_Obj *rest = Tcl_NewStringObj(name+split+1, -1);

		Tcl_IncrRefCount(transPtr);
		joined = Tcl_FSJoinToPath(transPtr, 1, &rest);
		TclDecrRefCount(transPtr);
		transPtr = joined;
	    }
	}
    } else {
	transPtr = TclJoinPath(1, &pathPtr);
    }

    /*







|
<
<
<
<

<
>
|
|
|
<
|
<







2433
2434
2435
2436
2437
2438
2439
2440




2441

2442
2443
2444
2445

2446

2447
2448
2449
2450
2451
2452
2453

		objc--; objv++;
		while (objc--) {
		    TclpNativeJoinPath(transPtr, Tcl_GetString(*objv++));
		}
		TclDecrRefCount(parts);
	    } else {
		Tcl_Obj *pair[2];






		pair[0] = transPtr;
		pair[1] = Tcl_NewStringObj(name+split+1, -1);
		transPtr = TclJoinPath(2, pair);
		Tcl_DecrRefCount(pair[0]);

		Tcl_DecrRefCount(pair[1]);

	    }
	}
    } else {
	transPtr = TclJoinPath(1, &pathPtr);
    }

    /*