- 16 Apr, 2006 15 commits
-
-
Tim Peters authored
-
Thomas Wouters authored
Py_ssize_t argument.
-
Martin v. Löwis authored
-
Andrew M. Kuchling authored
-
Martin v. Löwis authored
-
Martin v. Löwis authored
them; they have to be passed to make.
-
Andrew M. Kuchling authored
-
Andrew M. Kuchling authored
but wait for a few hours before you read it; I'm still revising it and will be tackling contextlib next. Untabify
-
Thomas Wouters authored
-
Thomas Wouters authored
always reload the module (specifically, it doesn't reload if the module has a 'test_main'.)
-
Thomas Wouters authored
'python.org' when deciding what server to use for the timeout tests; getting tired of seeing the test fail on all my boxes ;P This'll still allow the test to fail for hosts in the XS4ALL network that don't have an 'xs4all' hostname, so maybe it should use a fallback scheme instead.
-
Thomas Wouters authored
prevent unreported regression.
-
Neal Norwitz authored
-
Neal Norwitz authored
-
Neal Norwitz authored
-
- 15 Apr, 2006 25 commits
-
-
Thomas Wouters authored
exceptions that can't be raised any further, because (for instance) they occur in __del__ methods. The coroutine tests in test_generators was triggering this leak. Remove the leakers' testcase, and add a simpler testcase that explicitly tests this leak to test_generators. test_generators now no longer leaks at all, on my machine. This fix may also solve other leaks, but my full refleakhunting run is still busy, so who knows?
-
Tim Peters authored
slot_tp_del(), but while the latter had to cater to types that don't participate in GC, we know that generators do. That allows strengthing an assert().
-
Tim Peters authored
-
Thomas Wouters authored
same kind of thing.
-
Thomas Wouters authored
not be tracked by GC. This fixes 254 of test_generators' refleaks on my machine, but I'm sure something else will make them come back :> Not adding a separate test for this kind of cycle, since the existing fib/m235 already test them in more extensive ways than any 'minimal' test has been able to manage.
-
Thomas Wouters authored
using a custom, nearly-identical macro. This probably changes how some of these functions are compiled, which may result in fractionally slower (or faster) execution. Considering the nature of traversal, visiting much of the address space in unpredictable patterns, I'd argue the code readability and maintainability is well worth it ;P
-
Thomas Wouters authored
- In functions where we already hold the same object in differently typed pointers, use the correctly typed pointer instead of casting the other pointer a second time.
-
Thomas Heller authored
-
-
Martin v. Löwis authored
-
Martin v. Löwis authored
-
Thomas Wouters authored
-
Thomas Wouters authored
available.
-
Thomas Wouters authored
tp_clear methods.
-
Martin v. Löwis authored
dangling references in case of a Py_Initialize/Py_Finalize cycle.
-
Martin v. Löwis authored
arena's "private" list of objects, so there might be two references to that list.
-
Martin v. Löwis authored
objects before initializing it. It might be linked already if there was a Py_Initialize/Py_Finalize cycle earlier; not unlinking it would break the global list.
-
Martin v. Löwis authored
Backported to 2.4.
-
Martin v. Löwis authored
is a macro.
-
Martin v. Löwis authored
-
Tim Peters authored
look dead right at the start. Use Py_CLEAR for four more frame members.
-
Tim Peters authored
Py_VISIT: cast the `op` argument to PyObject* when calling `visit()`. Else the caller has to pay too much attention to this silly detail (e.g., frame_traverse needs to traverse `struct _frame *` and `PyCodeObject *` pointers too).
-
Tim Peters authored
-
Tim Peters authored
why it's important. Now there are ;-) If someone else hasn't already, I'll add a Py_CLEAR cleanup task to the TODO Wiki next.
-
Tim Peters authored
examples no longer require any explicit closing to avoid leaking. That the tee-based examples still do is (I think) still a mystery. Part of the mystery is that gc.garbage remains empty: if it were the case that some generator in a trash cycle said it needed finalization, suppressing collection of that cycle, that generator _would_ show up in gc.garbage. So this is acting more like, e.g., some tp_traverse slot isn't visiting all the pointers it should (in which case the skipped pointer(s) would act like an external root, silently suppressing collection of everything reachable from it(them)).
-