From: Benjamin Peterson Date: Mon, 5 Jul 2010 15:01:22 +0000 (+0000) Subject: cleanup basicsize logic #3268 X-Git-Tag: v3.2a1~304 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a7465e2fdf7f7effe19fbbe2c9a79a40df6c5d9f;p=thirdparty%2FPython%2Fcpython.git cleanup basicsize logic #3268 --- diff --git a/Objects/typeobject.c b/Objects/typeobject.c index 2d9d031a096a..268a9244bbf3 100644 --- a/Objects/typeobject.c +++ b/Objects/typeobject.c @@ -3476,11 +3476,8 @@ add_getset(PyTypeObject *type, PyGetSetDef *gsp) static void inherit_special(PyTypeObject *type, PyTypeObject *base) { - Py_ssize_t oldsize, newsize; /* Copying basicsize is connected to the GC flags */ - oldsize = base->tp_basicsize; - newsize = type->tp_basicsize ? type->tp_basicsize : oldsize; if (!(type->tp_flags & Py_TPFLAGS_HAVE_GC) && (base->tp_flags & Py_TPFLAGS_HAVE_GC) && (!type->tp_traverse && !type->tp_clear)) { @@ -3507,7 +3504,8 @@ inherit_special(PyTypeObject *type, PyTypeObject *base) type->tp_new = base->tp_new; } } - type->tp_basicsize = newsize; + if (type->tp_basicsize == 0) + type->tp_basicsize = base->tp_basicsize; /* Copy other non-function slots */