* errors in bpyui draw scripts were segfaulting

* added PyLineSpit(), useful for debugging so you can easily find the 
line of the python script running.
This commit is contained in:
2009-03-02 20:18:29 +00:00
parent 24e8d7aa74
commit c2fdac64c4
3 changed files with 15 additions and 2 deletions

View File

@@ -168,10 +168,11 @@ int BPY_run_script_space_draw(bContext *C, SpaceScript * sc)
if (bpy_run_script_init(C, sc)) {
PyGILState_STATE gilstate = PyGILState_Ensure();
PyObject *result = PyObject_CallObject( sc->script->py_draw, NULL );
PyGILState_Release(gilstate);
if (result==NULL)
exit_pydraw(sc, 1);
PyGILState_Release(gilstate);
}
return 1;
}
@@ -183,10 +184,11 @@ int BPY_run_script_space_listener(bContext *C, SpaceScript * sc)
PyGILState_STATE gilstate = PyGILState_Ensure();
PyObject *result = PyObject_CallObject( sc->script->py_draw, NULL );
PyGILState_Release(gilstate);
if (result==NULL)
exit_pydraw(sc, 1);
PyGILState_Release(gilstate);
}
return 1;
}

View File

@@ -162,6 +162,16 @@ void PyObSpit(char *name, PyObject *var) {
fprintf(stderr, "\n");
}
void PyLineSpit(void) {
char filename[512];
int lineno;
PyErr_Clear();
BPY_getFileAndNum(&filename, &lineno);
fprintf(stderr, "%s:%d\n", filename, lineno);
}
void BPY_getFileAndNum(char **filename, int *lineno)
{
PyObject *getframe, *frame;

View File

@@ -35,4 +35,5 @@ PyObject *BPY_flag_to_list(BPY_flag_def *flagdef, int flag);
int BPY_flag_from_seq(BPY_flag_def *flagdef, PyObject *seq, int *flag);
void PyObSpit(char *name, PyObject *var);
void PyLineSpit(void);
void BPY_getFileAndNum(char **filename, int *lineno);