From: Armin R. <ar...@us...> - 2004-08-12 10:44:56
|
Update of /cvsroot/psyco/psyco/c/Python In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13782/Python Modified Files: pycompiler.c Log Message: Fixed segfault problem. It was related to the recent LOAD_GLOBAL tricks. LOAD_GLOBAL is a pain! Index: pycompiler.c =================================================================== RCS file: /cvsroot/psyco/psyco/c/Python/pycompiler.c,v retrieving revision 1.51 retrieving revision 1.52 diff -C2 -d -r1.51 -r1.52 *** pycompiler.c 2 Aug 2004 19:44:46 -0000 1.51 --- pycompiler.c 12 Aug 2004 10:44:48 -0000 1.52 *************** *** 1124,1130 **** cannot just do that in the "found in globals()" branch below. */ ! extra_assert(po->respawn_cnt >= -1); /* this is the last respawn ! pt before the merge pt */ ! if (po->respawn_cnt == -1) { /* respawning was triggered by the call to psyco_prepare_respawn_ex() below */ --- 1124,1128 ---- cannot just do that in the "found in globals()" branch below. */ ! if (detect_respawn_ex(po)) { /* respawning was triggered by the call to psyco_prepare_respawn_ex() below */ *************** *** 1146,1155 **** dictitem_check_change(po, dummy_dict, dummy_entry); /* end of respawning -- this dummy code will now be trashed */ ! #if PSYCO_DEBUG ! if (!detect_respawn(po)) ! Py_FatalError("invalid respawn_cnt in load_global()"); ! #else ! detect_respawn(po); ! #endif mark_varying(po, key); return NULL; --- 1144,1148 ---- dictitem_check_change(po, dummy_dict, dummy_entry); /* end of respawning -- this dummy code will now be trashed */ ! psyco_respawn_detected(po); mark_varying(po, key); return NULL; |