[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [47083] branches/meshdata_transfer/source/ blender/editors/object/object_vgroup.c: Fixed iterators.
Ove Murberg Henriksen
sorayasilvermoon at hotmail.com
Sun May 27 19:34:10 CEST 2012
Revision: 47083
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=47083
Author: cyborgmuppet
Date: 2012-05-27 17:34:10 +0000 (Sun, 27 May 2012)
Log Message:
-----------
Fixed iterators.
Memory bugs persist...
Modified Paths:
--------------
branches/meshdata_transfer/source/blender/editors/object/object_vgroup.c
Modified: branches/meshdata_transfer/source/blender/editors/object/object_vgroup.c
===================================================================
--- branches/meshdata_transfer/source/blender/editors/object/object_vgroup.c 2012-05-27 16:59:36 UTC (rev 47082)
+++ branches/meshdata_transfer/source/blender/editors/object/object_vgroup.c 2012-05-27 17:34:10 UTC (rev 47083)
@@ -441,7 +441,7 @@
Mesh *me_dst;
DerivedMesh *dmesh_src;
BVHTreeFromMesh tree_mesh_vertices_src, tree_mesh_faces_src = {NULL};
- MDeformVert **dv_array_src, **dv_array_dst;
+ MDeformVert **dv_array_src, **dv_array_dst, **dv_src, **dv_dst;
MVert *mv_dst, *mv_src;
MFace *mface_src;
BVHTreeNearest nearest;
@@ -490,7 +490,7 @@
}
/* loop through the vertices*/
- for (i = 0; i < dv_tot_dst; i++, dv_array_src++, dv_array_dst++, mv_dst++) {
+ for(i = 0, dv_src = dv_array_src, dv_dst = dv_array_dst; i < me_dst->totvert; i++, dv_dst++, dv_src++, mv_src++) {
/*copy weight*/
dw_src = defvert_verify_index(*dv_array_src, index_src);
@@ -503,8 +503,8 @@
/*make node tree*/
bvhtree_from_mesh_verts(&tree_mesh_vertices_src, dmesh_src, 0.0, 2, 6);
- /* loop through the vertices*/
- for (i = 0; i < me_dst->totvert; i++, mv_dst++, dv_array_dst++) {
+ /* loop trough vertices*/
+ for(i = 0, dv_dst = dv_array_dst; i < me_dst->totvert; i++, dv_dst++, mv_src++){
/*reset nearest*/
/*nearest.index = -1; It is asumed using index of previous search as starting point result in speedup. It will be tested later*/
@@ -536,7 +536,7 @@
bvhtree_from_mesh_faces(&tree_mesh_faces_src, dmesh_src, 0.0, 2, 6);
/* loop through the vertices*/
- for (i = 0; i < me_dst->totvert; i++, mv_dst++, dv_array_dst++) {
+ for(i = 0, dv_dst = dv_array_dst; i < me_dst->totvert; i++, dv_dst++, mv_src++) {
/*reset nearest*/
/*nearest.index = -1; It is asumed using index of previous search as starting point result in speedup. It will be tested later*/
@@ -552,8 +552,8 @@
/*project onto face*/
normal_tri_v3(normal, mv_src[mface_src[nearest.index].v1].co,
- mv_src[mface_src[nearest.index].v2].co,
- mv_src[mface_src[nearest.index].v3].co);
+ mv_src[mface_src[index_nearest].v2].co,
+ mv_src[mface_src[index_nearest].v3].co);
project_v3_plane(tmp_co, normal, mv_src[mface_src[index_nearest].v1].co);
@@ -589,7 +589,7 @@
bvhtree_from_mesh_faces(&tree_mesh_faces_src, dmesh_src, 0.0, 2, 6);
/*loop through the vertices*/
- for (i = 0; i < me_dst->totvert; i++, mv_dst++, dv_array_dst++) {
+ for(i = 0, dv_dst = dv_array_dst; i < me_dst->totvert; i++, dv_src++, mv_src++){
/*reset nearest*/
/*nearest.index = -1; It is asumed using index of previous search as starting point result in speedup. It will be tested later*/
@@ -630,10 +630,12 @@
break;
}
- /*free memory*/
+ /*free memory*//*TODO must free wehn function breaks on return 0 as well, right?*/
if (mface_src) MEM_freeN(mface_src);
if (dv_array_src) MEM_freeN(dv_array_src);
if (dv_array_dst) MEM_freeN(dv_array_dst);
+ if (dv_src) MEM_freeN(dv_src);
+ if (dv_dst) MEM_freeN(dv_dst);
return 1;
}
More information about the Bf-blender-cvs
mailing list