Mercurial > cpython-lru_cache-weakref
diff Objects/funcobject.c @ 5945:75b3aabcb7c1 legacy-trunk
Fix bug in comparing function objects detected by Sjoerd:
SystemError: bad argument to internal function
caused by comparing NULL pointer default args.
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Tue, 05 Aug 1997 16:51:05 +0000 |
| parents | d1447950fa04 |
| children | 09963a2a24db |
line wrap: on
line diff
--- a/Objects/funcobject.c Tue Aug 05 02:35:01 1997 +0000 +++ b/Objects/funcobject.c Tue Aug 05 16:51:05 1997 +0000 @@ -182,9 +182,15 @@ int c; if (f->func_globals != g->func_globals) return (f->func_globals < g->func_globals) ? -1 : 1; - c = PyObject_Compare(f->func_defaults, g->func_defaults); - if (c != 0) - return c; + if (f->func_defaults != g->func_defaults) { + if (f->func_defaults == NULL) + return -1; + if (g->func_defaults == NULL) + return 1; + c = PyObject_Compare(f->func_defaults, g->func_defaults); + if (c != 0) + return c; + } return PyObject_Compare(f->func_code, g->func_code); }
