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:
authorCampbell Barton <ideasman42@gmail.com>2007-05-25 20:43:25 +0400
committerCampbell Barton <ideasman42@gmail.com>2007-05-25 20:43:25 +0400
commitf231bd0d5715ac67767f96f3a8d20ebf618f7b03 (patch)
tree34c05572641b2eafad9fa8e342724e0b05b6b3d8 /source/blender/python/api2_2x/World.c
parenta21f8292d9aeff54153fc65560d56b3d4f33575a (diff)
Many long standing memory leaks fixed in the BPY api.
Data from Armature.c and logic.c still leaks. Mostly todo with PyList_Append adding a refcount and the bpython api not decrefing. Also added some features needed to fix a bug in mesh_clean.py (ob.pinShape and ob.activeShape)
Diffstat (limited to 'source/blender/python/api2_2x/World.c')
-rw-r--r--source/blender/python/api2_2x/World.c54
1 files changed, 27 insertions, 27 deletions
diff --git a/source/blender/python/api2_2x/World.c b/source/blender/python/api2_2x/World.c
index c321fccb044..ec73caa962b 100644
--- a/source/blender/python/api2_2x/World.c
+++ b/source/blender/python/api2_2x/World.c
@@ -439,7 +439,8 @@ static PyObject *M_World_Get( PyObject * self, PyObject * args )
&World_Type );
found_world->world = world_iter;
PyList_Append( worldlist, ( PyObject * ) found_world );
-
+ Py_DECREF(found_world);
+
world_iter = world_iter->id.next;
}
return ( worldlist );
@@ -673,13 +674,13 @@ static PyObject *World_oldsetMistype( BPy_World * self, PyObject * args )
static PyObject *World_getHor( BPy_World * self )
{
- PyObject *attr = PyList_New( 0 );
+ PyObject *attr = PyList_New( 3 );
if( !attr )
return ( EXPP_ReturnPyObjError( PyExc_RuntimeError,
"couldn't create list" ) );
- PyList_Append( attr, PyFloat_FromDouble( self->world->horr ) );
- PyList_Append( attr, PyFloat_FromDouble( self->world->horg ) );
- PyList_Append( attr, PyFloat_FromDouble( self->world->horb ) );
+ PyList_SET_ITEM( attr, 0, PyFloat_FromDouble( self->world->horr ) );
+ PyList_SET_ITEM( attr, 1, PyFloat_FromDouble( self->world->horg ) );
+ PyList_SET_ITEM( attr, 2, PyFloat_FromDouble( self->world->horb ) );
return attr;
}
@@ -705,13 +706,13 @@ static PyObject *World_oldsetHor( BPy_World * self, PyObject * args )
static PyObject *World_getZen( BPy_World * self )
{
- PyObject *attr = PyList_New( 0 );
+ PyObject *attr = PyList_New( 3 );
if( !attr )
return ( EXPP_ReturnPyObjError( PyExc_RuntimeError,
"couldn't create list" ) );
- PyList_Append( attr, PyFloat_FromDouble( self->world->zenr ) );
- PyList_Append( attr, PyFloat_FromDouble( self->world->zeng ) );
- PyList_Append( attr, PyFloat_FromDouble( self->world->zenb ) );
+ PyList_SET_ITEM( attr, 0, PyFloat_FromDouble( self->world->zenr ) );
+ PyList_SET_ITEM( attr, 1, PyFloat_FromDouble( self->world->zeng ) );
+ PyList_SET_ITEM( attr, 2, PyFloat_FromDouble( self->world->zenb ) );
return attr;
}
@@ -738,13 +739,13 @@ static PyObject *World_oldsetZen( BPy_World * self, PyObject * args )
static PyObject *World_getAmb( BPy_World * self )
{
- PyObject *attr = PyList_New( 0 );
+ PyObject *attr = PyList_New( 3 );
if( !attr )
return ( EXPP_ReturnPyObjError( PyExc_RuntimeError,
"couldn't create list" ) );
- PyList_Append( attr, PyFloat_FromDouble( self->world->ambr ) );
- PyList_Append( attr, PyFloat_FromDouble( self->world->ambg ) );
- PyList_Append( attr, PyFloat_FromDouble( self->world->ambb ) );
+ PyList_SET_ITEM( attr, 0, PyFloat_FromDouble( self->world->ambr ) );
+ PyList_SET_ITEM( attr, 1, PyFloat_FromDouble( self->world->ambg ) );
+ PyList_SET_ITEM( attr, 2, PyFloat_FromDouble( self->world->ambb ) );
return attr;
}
@@ -770,17 +771,17 @@ static PyObject *World_oldsetAmb( BPy_World * self, PyObject * args )
static PyObject *World_getStar( BPy_World * self )
{
- PyObject *attr = PyList_New( 0 );
+ PyObject *attr = PyList_New( 7 );
if( !attr )
return ( EXPP_ReturnPyObjError
( PyExc_RuntimeError, "couldn't create list" ) );
- PyList_Append( attr, PyFloat_FromDouble( self->world->starr ) );
- PyList_Append( attr, PyFloat_FromDouble( self->world->starg ) );
- PyList_Append( attr, PyFloat_FromDouble( self->world->starb ) );
- PyList_Append( attr, PyFloat_FromDouble( self->world->starsize ) );
- PyList_Append( attr, PyFloat_FromDouble( self->world->starmindist ) );
- PyList_Append( attr, PyFloat_FromDouble( self->world->stardist ) );
- PyList_Append( attr, PyFloat_FromDouble( self->world->starcolnoise ) );
+ PyList_SET_ITEM( attr, 0, PyFloat_FromDouble( self->world->starr ) );
+ PyList_SET_ITEM( attr, 1, PyFloat_FromDouble( self->world->starg ) );
+ PyList_SET_ITEM( attr, 2, PyFloat_FromDouble( self->world->starb ) );
+ PyList_SET_ITEM( attr, 3, PyFloat_FromDouble( self->world->starsize ) );
+ PyList_SET_ITEM( attr, 4, PyFloat_FromDouble( self->world->starmindist ) );
+ PyList_SET_ITEM( attr, 5, PyFloat_FromDouble( self->world->stardist ) );
+ PyList_SET_ITEM( attr, 6, PyFloat_FromDouble( self->world->starcolnoise ) );
return attr;
}
@@ -815,18 +816,17 @@ static PyObject *World_oldsetStar( BPy_World * self, PyObject * args )
static PyObject *World_getMist( BPy_World * self )
{
- PyObject *attr = PyList_New( 0 );
+ PyObject *attr = PyList_New( 4 );
if( !attr )
return ( EXPP_ReturnPyObjError
( PyExc_RuntimeError, "couldn't create list" ) );
- PyList_Append( attr, PyFloat_FromDouble( self->world->misi ) );
- PyList_Append( attr, PyFloat_FromDouble( self->world->miststa ) );
- PyList_Append( attr, PyFloat_FromDouble( self->world->mistdist ) );
- PyList_Append( attr, PyFloat_FromDouble( self->world->misthi ) );
+ PyList_SET_ITEM( attr, 0, PyFloat_FromDouble( self->world->misi ) );
+ PyList_SET_ITEM( attr, 1, PyFloat_FromDouble( self->world->miststa ) );
+ PyList_SET_ITEM( attr, 2, PyFloat_FromDouble( self->world->mistdist ) );
+ PyList_SET_ITEM( attr, 3, PyFloat_FromDouble( self->world->misthi ) );
return attr;
}
-
static int World_setMist( BPy_World * self, PyObject * value )
{
if( !PyList_Check( value ) )