* 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:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user