Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWillian Padovani Germano <wpgermano@gmail.com>2003-06-09 08:01:48 +0400
committerWillian Padovani Germano <wpgermano@gmail.com>2003-06-09 08:01:48 +0400
commit864e5640f701684c416812fa6a05ccff7a64a73f (patch)
tree12d72a3b39bf48c2894ca76a8cc007a6e8916841 /source/blender/python/api2_2x/Camera.c
parent51850586a86e761ae6af9ff15542a1a231de99da (diff)
* Applied a small fix to a bug reported by Guignot:
When a script that used setAttr for Camera Data objs (the bug also affected some other modules) was executed multiple times, Blender would crash after, let's say, the first 5 or 6 tries. Problem, as Guignot pointed, was with reference counting. Should be ok now, all affected modules were fixed. * The Scene module is now "complete" (= 2.25). * Made some necessary updates to Object and NMesh.
Diffstat (limited to 'source/blender/python/api2_2x/Camera.c')
-rw-r--r--source/blender/python/api2_2x/Camera.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/source/blender/python/api2_2x/Camera.c b/source/blender/python/api2_2x/Camera.c
index 65fccb655e5..11ffb48b390 100644
--- a/source/blender/python/api2_2x/Camera.c
+++ b/source/blender/python/api2_2x/Camera.c
@@ -38,7 +38,8 @@
* given, all preceding ones must be given, too. Of course, this only relates
* to the Python functions and methods described here and only inside Python
* code. [ This will go to another file later, probably the main exppython
- * doc file].
+ * doc file]. XXX Better: put optional args with their default value:
+ * (self, name = "MyName")
*/
#include <BKE_main.h>
@@ -257,6 +258,10 @@ static PyObject *M_Camera_New(PyObject *self, PyObject *args, PyObject *kwords)
return (EXPP_ReturnPyObjError (PyExc_RuntimeError,
"couldn't create Camera Data in Blender"));
+ /* let's return user count to zero, because ... */
+ blcam->id.us = 0; /* ... add_camera() right above incref'ed it */
+ /* XXX XXX Do this in other modules, too */
+
if (pycam == NULL)
return (EXPP_ReturnPyObjError (PyExc_MemoryError,
"couldn't create Camera Data object"));
@@ -876,8 +881,8 @@ static int Camera_SetAttr (BPy_Camera *self, char *name, PyObject *value)
* interval and updates the Blender Camera structure when necessary. */
/* First we put "value" in a tuple, because we want to pass it to functions
- * that only accept PyTuples. Using "N" doesn't increment value's ref count */
- valtuple = Py_BuildValue("(N)", value);
+ * that only accept PyTuples. */
+ valtuple = Py_BuildValue("(O)", value);
if (!valtuple) /* everything OK with our PyObject? */
return EXPP_ReturnIntError(PyExc_MemoryError,