Changes On Branch bug-75b8433707
Not logged in

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

Changes In Branch bug-75b8433707 Excluding Merge-Ins

This is equivalent to a diff from 17150b71d2 to 23be32a082

2014-07-19
16:35
[75b8433707] Revised fix for memleak in oo instance list management. check-in: 98d8d28e03 user: dgp tags: trunk
2014-07-18
22:05
[75b8433707] Plug a subtle memory leak in TclOO. Test suite very unhappy with this. Shoving into... Closed-Leaf check-in: 23be32a082 user: dkf tags: bug-75b8433707
12:22
merge trunk check-in: e2f47cd58e user: dkf tags: dkf-http-cookies
12:18
[b43f2b49f7] New compilation strategy for lappend that allows multi-value lappend to not have quadra... check-in: 17150b71d2 user: dkf tags: trunk
2014-07-17
18:43
Finally, use correct octal notation which works in Tcl 9 as well. check-in: 838e8dcfd4 user: jan.nijtmans tags: trunk

Changes to generic/tclOO.c.
1276
1277
1278
1279
1280
1281
1282

1283
1284
1285
1286
1287
1288
1289
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290







+







	    goto removeInstance;
	}
    }
    return;

  removeInstance:
    if (Deleted(clsPtr->thisPtr)) {
	DelRef(clsPtr->instances.list[i]);
	clsPtr->instances.list[i] = NULL;
    } else {
	clsPtr->instances.num--;
	if (i < clsPtr->instances.num) {
	    clsPtr->instances.list[i] =
		    clsPtr->instances.list[clsPtr->instances.num];
	}
Changes to tests/oo.test.
254
255
256
257
258
259
260













261
262
263
264
265
266
267
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280







+
+
+
+
+
+
+
+
+
+
+
+
+







} -body {
    oo::define B constructor {} {A create test-oo-1.18}
    B create C
} -cleanup {
    rename test-oo-1.18 {}
    A destroy
} -result ::C
test oo-1.18.1 {Bug 75b8433707: memory leak in oo-1.18} -setup {
    proc test-oo-1.18 {} return
} -constraints memory -body {
    leaktest {
	oo::class create A
	oo::class create B {superclass A}
	oo::define B constructor {} {A create test-oo-1.18}
	B create C
	A destroy
    }
} -cleanup {
    rename test-oo-1.18 {}
} -result 0
test oo-1.19 {basic test of OO functionality: teardown order} -body {
    oo::object create o
    namespace delete [info object namespace o]
    o destroy
    # Crashes on error
} -returnCodes error -result {invalid command name "o"}
test oo-1.20 {basic test of OO functionality: my teardown post rename} -body {