[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [19175] branches/blender2.5/blender/source /blender/python/intern: * errors in bpyui draw scripts were segfaulting
Campbell Barton
ideasman42 at gmail.com
Mon Mar 2 21:18:31 CET 2009
Revision: 19175
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19175
Author: campbellbarton
Date: 2009-03-02 21:18:29 +0100 (Mon, 02 Mar 2009)
Log Message:
-----------
* errors in bpyui draw scripts were segfaulting
* added PyLineSpit(), useful for debugging so you can easily find the
line of the python script running.
Modified Paths:
--------------
branches/blender2.5/blender/source/blender/python/intern/bpy_interface.c
branches/blender2.5/blender/source/blender/python/intern/bpy_util.c
branches/blender2.5/blender/source/blender/python/intern/bpy_util.h
Modified: branches/blender2.5/blender/source/blender/python/intern/bpy_interface.c
===================================================================
--- branches/blender2.5/blender/source/blender/python/intern/bpy_interface.c 2009-03-02 17:43:35 UTC (rev 19174)
+++ branches/blender2.5/blender/source/blender/python/intern/bpy_interface.c 2009-03-02 20:18:29 UTC (rev 19175)
@@ -168,10 +168,11 @@
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 @@
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;
}
Modified: branches/blender2.5/blender/source/blender/python/intern/bpy_util.c
===================================================================
--- branches/blender2.5/blender/source/blender/python/intern/bpy_util.c 2009-03-02 17:43:35 UTC (rev 19174)
+++ branches/blender2.5/blender/source/blender/python/intern/bpy_util.c 2009-03-02 20:18:29 UTC (rev 19175)
@@ -162,6 +162,16 @@
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;
Modified: branches/blender2.5/blender/source/blender/python/intern/bpy_util.h
===================================================================
--- branches/blender2.5/blender/source/blender/python/intern/bpy_util.h 2009-03-02 17:43:35 UTC (rev 19174)
+++ branches/blender2.5/blender/source/blender/python/intern/bpy_util.h 2009-03-02 20:18:29 UTC (rev 19175)
@@ -35,4 +35,5 @@
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);
More information about the Bf-blender-cvs
mailing list