Mercurial > cpython-lru_cache-weakref
diff Python/bltinmodule.c @ 2120:84b61fe44573 legacy-trunk
fix subtle refcount big in filter() -- Tim MacKenzie
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Tue, 10 Jan 1995 17:40:55 +0000 |
| parents | 76c860a18d82 |
| children | e54b8654f938 |
line wrap: on
line diff
--- a/Python/bltinmodule.c Tue Jan 10 17:08:10 1995 +0000 +++ b/Python/bltinmodule.c Tue Jan 10 17:40:55 1995 +0000 @@ -186,21 +186,22 @@ if (func == None) { good = item; + INCREF(good); } else { object *arg = mkvalue("(O)", item); - DECREF(item); if (arg == NULL) goto Fail_1; good = call_object(func, arg); DECREF(arg); - if (good == NULL) + if (good == NULL) { + DECREF(item); goto Fail_1; + } } ok = testbool(good); DECREF(good); if (ok) { - INCREF(item); if (j < len) { if (setlistitem(result, j++, item) < 0) goto Fail_1; @@ -210,6 +211,8 @@ if (addlistitem(result, item) < 0) goto Fail_1; } + } else { + DECREF(item); } }
