Exppython:

- Fixed a problem with control of the global Python dictionary persistence:
    Blender.ReleaseGlobalDict(bool) should now work fine.
- Trying to fix the sigsegv crashes on Windows:
    They happen when we try to "print" our objects, like Lamps or Cameras.
    Following advice from the Python Embedding doc, removed the tp_print
    method from Camera and also improved its tp_repr one, that will be used
    as print, repr() and str() for Cameras.  If this test works all other objs
    will be updated accordingly.
This commit is contained in:
2003-07-04 02:56:07 +00:00
parent 77213f7da6
commit 28b8e667a0
5 changed files with 135 additions and 122 deletions

View File

@@ -50,8 +50,9 @@ PyTypeObject Camera_Type =
0, /* tp_itemsize */
/* methods */
(destructor)Camera_dealloc, /* tp_dealloc */
(printfunc)Camera_print, /* tp_print */
(getattrfunc)Camera_getAttr, /* tp_getattr */
// (printfunc)Camera_print, /* tp_print */
0, /* tp_print */
(getattrfunc)Camera_getAttr, /* tp_getattr */
(setattrfunc)Camera_setAttr, /* tp_setattr */
(cmpfunc)Camera_compare, /* tp_compare */
(reprfunc)Camera_repr, /* tp_repr */
@@ -582,14 +583,14 @@ static int Camera_compare (BPy_Camera *a, BPy_Camera *b)
Camera *pa = a->camera, *pb = b->camera;
return (pa == pb) ? 0:-1;
}
/*
static int Camera_print(BPy_Camera *self, FILE *fp, int flags)
{
fprintf(fp, "[Camera \"%s\"]", self->camera->id.name+2);
return 0;
}
*/
static PyObject *Camera_repr (BPy_Camera *self)
{
return PyString_FromString(self->camera->id.name+2);
return PyString_FromFormat("[Camera \"%s\"]", self->camera->id.name+2);
}