]> granicus.if.org Git - python/commitdiff
Try to fix crash on x86 OpenIndiana buildbot.
authorAntoine Pitrou <solipsis@pitrou.net>
Sat, 23 Jun 2012 22:42:59 +0000 (00:42 +0200)
committerAntoine Pitrou <solipsis@pitrou.net>
Sat, 23 Jun 2012 22:42:59 +0000 (00:42 +0200)
Objects/typeobject.c

index dff47f371fa0afb0585c02833fa716172c10e603..2cc6eea465474818e6fdeed5fd7ca74f3bee4eff 100644 (file)
@@ -2396,6 +2396,8 @@ PyType_FromSpecWithBases(PyType_Spec *spec, PyObject *bases)
     if (res == NULL)
         return NULL;
     type = &res->ht_type;
+    /* The flags must be initialized early, before the GC traverses us */
+    type->tp_flags = spec->flags | Py_TPFLAGS_HEAPTYPE;
     res->ht_name = PyUnicode_FromString(s);
     if (!res->ht_name)
         goto fail;
@@ -2450,7 +2452,6 @@ PyType_FromSpecWithBases(PyType_Spec *spec, PyObject *bases)
 
     type->tp_basicsize = spec->basicsize;
     type->tp_itemsize = spec->itemsize;
-    type->tp_flags = spec->flags | Py_TPFLAGS_HEAPTYPE;
 
     for (slot = spec->slots; slot->slot; slot++) {
         if (slot->slot >= Py_ARRAY_LENGTH(slotoffsets)) {