[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [39922] trunk/blender/source/blender/ editors/object: Partial revert commit 39878 "Fix #28280: Insert Hook wrong index"

Sergey Sharybin g.ulairi at gmail.com
Mon Sep 5 10:20:12 CEST 2011


Revision: 39922
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=39922
Author:   nazgul
Date:     2011-09-05 08:20:11 +0000 (Mon, 05 Sep 2011)
Log Message:
-----------
Partial revert commit 39878 "Fix #28280: Insert Hook wrong index"

Such load/make edit structures introduced regression into iterators
via object's geometry (vertices, edges, control points and so) when
adding hooks in the body of this iterator.

Fix for wrong index should be non-destructable for geometry.

This will fix #28506: Unusual behavior in curves.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/object/object_hook.c
    trunk/blender/source/blender/editors/object/object_relations.c

Modified: trunk/blender/source/blender/editors/object/object_hook.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_hook.c	2011-09-05 06:53:30 UTC (rev 39921)
+++ trunk/blender/source/blender/editors/object/object_hook.c	2011-09-05 08:20:11 UTC (rev 39922)
@@ -64,7 +64,6 @@
 
 #include "ED_curve.h"
 #include "ED_mesh.h"
-#include "ED_lattice.h"
 #include "ED_screen.h"
 
 #include "WM_types.h"
@@ -293,7 +292,7 @@
 	return totvert;
 }
 
-static int object_hook_index_array(Scene *scene, Object *obedit, int *tot, int **indexar, char *name, float *cent_r)
+static int object_hook_index_array(Object *obedit, int *tot, int **indexar, char *name, float *cent_r)
 {
 	*indexar= NULL;
 	*tot= 0;
@@ -303,13 +302,8 @@
 		case OB_MESH:
 		{
 			Mesh *me= obedit->data;
-			EditMesh *em;
+			EditMesh *em = BKE_mesh_get_editmesh(me);
 
-			load_editMesh(scene, obedit);
-			make_editMesh(scene, obedit);
-
-			em = BKE_mesh_get_editmesh(me);
-
 			/* check selected vertices first */
 			if( return_editmesh_indexar(em, tot, indexar, cent_r)) {
 				BKE_mesh_end_editmesh(me, em);
@@ -322,17 +316,10 @@
 		}
 		case OB_CURVE:
 		case OB_SURF:
-			load_editNurb(obedit);
-			make_editNurb(obedit);
-
 			return return_editcurve_indexar(obedit, tot, indexar, cent_r);
 		case OB_LATTICE:
 		{
 			Lattice *lt= obedit->data;
-
-			load_editLatt(obedit);
-			make_editLatt(obedit);
-
 			return return_editlattice_indexar(lt->editlatt->latt, tot, indexar, cent_r);
 		}
 		default:
@@ -440,7 +427,7 @@
 	int tot, ok, *indexar;
 	char name[32];
 	
-	ok = object_hook_index_array(scene, obedit, &tot, &indexar, name, cent);
+	ok = object_hook_index_array(obedit, &tot, &indexar, name, cent);
 	
 	if (!ok) return;	// XXX error("Requires selected vertices or active Vertex Group");
 	
@@ -773,7 +760,7 @@
 	
 	/* assign functionality */
 	
-	if(!object_hook_index_array(CTX_data_scene(C), ob, &tot, &indexar, name, cent)) {
+	if(!object_hook_index_array(ob, &tot, &indexar, name, cent)) {
 		BKE_report(op->reports, RPT_WARNING, "Requires selected vertices or active vertex group");
 		return OPERATOR_CANCELLED;
 	}

Modified: trunk/blender/source/blender/editors/object/object_relations.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_relations.c	2011-09-05 06:53:30 UTC (rev 39921)
+++ trunk/blender/source/blender/editors/object/object_relations.c	2011-09-05 08:20:11 UTC (rev 39922)
@@ -91,8 +91,6 @@
 
 #include "ED_armature.h"
 #include "ED_curve.h"
-#include "ED_lattice.h"
-#include "ED_mesh.h"
 #include "ED_keyframing.h"
 #include "ED_object.h"
 #include "ED_screen.h"
@@ -124,13 +122,8 @@
 	
 	if(obedit->type==OB_MESH) {
 		Mesh *me= obedit->data;
-		EditMesh *em;
+		EditMesh *em = BKE_mesh_get_editmesh(me);
 
-		load_editMesh(scene, obedit);
-		make_editMesh(scene, obedit);
-
-		em = BKE_mesh_get_editmesh(me);
-
 		eve= em->verts.first;
 		while(eve) {
 			if(eve->f & 1) {
@@ -147,12 +140,7 @@
 		BKE_mesh_end_editmesh(me, em);
 	}
 	else if(ELEM(obedit->type, OB_SURF, OB_CURVE)) {
-		ListBase *editnurb;
-
-		load_editNurb(obedit);
-		make_editNurb(obedit);
-
-		editnurb= curve_get_editcurve(obedit);
+		ListBase *editnurb= curve_get_editcurve(obedit);
 		
 		cu= obedit->data;
 
@@ -192,13 +180,8 @@
 		}
 	}
 	else if(obedit->type==OB_LATTICE) {
-		Lattice *lt;
-
-		load_editLatt(obedit);
-		make_editLatt(obedit);
-
-		lt= obedit->data;
-
+		Lattice *lt= obedit->data;
+		
 		a= lt->editlatt->latt->pntsu*lt->editlatt->latt->pntsv*lt->editlatt->latt->pntsw;
 		bp= lt->editlatt->latt->def;
 		while(a--) {




More information about the Bf-blender-cvs mailing list