| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
Also SF patch 843455.
This is a critical bugfix.
I'll backport to 2.3 maint, but not beyond that. The bugs this fixes
have been there since weakrefs were introduced.
|
|
|
|
|
|
|
|
| |
* Install the unittests, docs, newsitem, include file, and makefile update.
* Exercise the new functions whereever sets.py was being used.
Includes the docs for libfuncs.tex. Separate docs for the types are
forthcoming.
|
|
|
|
|
|
| |
expanded the test case with a piece that needs the more-complete fix.
I'll backport this to 2.3 maint.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
subtype_dealloc(): This left the dying object exposed to gc, so that
if cyclic gc triggered during the weakref callback, gc tried to delete
the dying object a second time. That's a disaster. subtype_dealloc()
had a (I hope!) unique problem here, as every normal dealloc routine
untracks the object (from gc) before fiddling with weakrefs etc. But
subtype_dealloc has obscure technical reasons for re-registering the
dying object with gc (already explained in a large comment block at
the bottom of the function).
The fix amounts to simply refraining from reregistering the dying object
with gc until after the weakref callback (if any) has been called.
This is a critical bug (hard to predict, and causes seemingly random
memory corruption when it occurs). I'll backport it to 2.3 later.
|
|
|
|
|
|
| |
- wrap some long lines
- shorten others
- fix indentation
|
| |
|
|
|
|
|
|
|
|
|
| |
Python-Dev. Fixed typos in test comments. Added some trivial new test
guts to show the parallelism (now) among __delitem__, __setitem__ and
__getitem__ wrt error conditions.
Still a bugfix candidate for 2.2.3 final, but waiting for Fred to get a
chance to chime in.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Someone review this, please! Final releases are getting close, Fred
(the weakref guy) won't be around until Tuesday, and the pre-patch
code can indeed raise spurious RuntimeErrors in the presence of
threads or mutating comparison functions.
See the bug report for my confusions: I can't see any reason for why
__delitem__ iterated over the keys. The new one-liner implementation
is much faster, can't raise RuntimeError, and should be better-behaved
in all respects wrt threads.
New tests test_weak_keyed_bad_delitem and
test_weak_keyed_cascading_deletes fail before this patch.
Bugfix candidate for 2.2.3 too, if someone else agrees with this patch.
|
|
|
|
| |
Improves clarity and brevity.
|
|
|
|
|
|
|
|
|
|
| |
and test_support.run_classtests() into run_unittest()
and use it wherever possible.
Also don't use "from test.test_support import ...", but
"from test import test_support" in a few spots.
From SF patch #662807.
|
|
|
|
|
|
|
|
| |
* Adds missing pop() methods to weakref.py
* Expands test suite to broaden coverage of objects with
a mapping interface.
Contributed by Sebastien Keim.
|
|
|
|
| |
unittest.makeSuite() rather than loader.loadTestsFromTestCase().
|
|
|
|
|
|
|
|
|
|
|
| |
imports e.g. test_support must do so using an absolute package name
such as "import test.test_support" or "from test import test_support".
This also updates the README in Lib/test, and gets rid of the
duplicate data dirctory in Lib/test/data (replaced by
Lib/email/test/data).
Now Tim and Jack can have at it. :)
|
|
|
|
|
|
|
| |
The WeakKeyDictionary constructor didn't work when a dict arg was
given. Fixed by moving a line. Also adding a unit test.
Bugfix candidate.
|
| |
|
| |
|
|
|
|
| |
callback.
|
|
|
|
|
| |
referenced, WeakKeyDictionary.has_key() should return 0 instead of raising
TypeError.
|
| |
|
|
|
|
| |
handlers. This was fixed in Objects/weakrefobject.c 1.2.
|
|
|
|
|
| |
allows using the tests with unittest.py as a script. The tests will
still run when run as a script themselves.
|
|
|
|
| |
This covers regression on SF bug #458860.
|
|
|
|
| |
for keys that are not in the dictionary.
|
|
|
|
|
|
| |
both weakref.Weak*Dictionary classes.
This closes SF bug #416480.
|
|
|
|
| |
Refactored some object initialization to be more reusable.
|
|
|
|
| |
recently reported bug; also exposed some other bugs in the implementation.
|
|
|
|
|
|
| |
references to an object before calling registered callbacks).
Change last uses of verify() to self.assert_().
|
|
|
|
| |
instead of using the mapping() function.
|
|
|
|
| |
references on function objects and both bound and unbound methods.
|
| |
|
| |
|
|
|