Kaydet (Commit) 83f9ad83 authored tarafından Guido van Rossum's avatar Guido van Rossum

Fix bug in comparing function objects detected by Sjoerd:

SystemError: bad argument to internal function

caused by comparing NULL pointer default args.
üst d6615ab3
......@@ -182,9 +182,15 @@ func_compare(f, g)
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);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment