1 Apr
2012
1 Apr
'12
11:08 a.m.
Bernd Nawothnig, 27.03.2012 17:03:
for (i=0; i<vl->length; i++) PyList_SetItem(result, i, Py_BuildValue("O", vl->list[i]->anomaly));
Was mir gerade auffällt: ist das nicht grober Unfug? Warum sollte das besser sein als for (i=0; i<vl->length; i++) { PyObject* obj = vl->list[i]->anomaly; Py_INCREF(obj); PyList_SET_ITEM(result, i, obj); } ? Langsamer ist es in jedem Fall, aber besser? Selbst in dem Fall, dass eines der "anomaly" Felder NULL ist, ignorierst du doch schließlich einfach die Exception, die Python dann für dich setzt. Übrigens auch unschön, so etwas zu tun, aber findet sich in handgeschriebenem Code eben öfter mal. Deshalb empfehle ich ja auch keinem, sowas von Hand zu schreiben. Stefan