From 98741ec4368e5edd238e2810c9189e8c0b45ec17 Mon Sep 17 00:00:00 2001 From: Johnny Matthews Date: Tue, 9 Aug 2005 14:44:46 +0000 Subject: [PATCH] fix for bug #2906 Was allocating array for all hidden edges, not needed, just hidden with a selected vert needed --- source/blender/src/editmesh_tools.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/source/blender/src/editmesh_tools.c b/source/blender/src/editmesh_tools.c index 0851761cfc8..6d7a74b9dfe 100644 --- a/source/blender/src/editmesh_tools.c +++ b/source/blender/src/editmesh_tools.c @@ -3101,14 +3101,18 @@ static void edge_rotate(EditEdge *eed,int dir) /* Create an Array of the Edges who have h set prior to rotate */ numhidden = 0; for(srchedge = em->edges.first;srchedge;srchedge = srchedge->next){ - if(srchedge->h){ + if(srchedge->h && (srchedge->v1->f & SELECT || srchedge->v2->f & SELECT)){ numhidden++; } } - hiddenedges = MEM_mallocN(sizeof(EditVert*)*(numhidden+1),"Hidden Vert Scratch Array for Rotate Edges"); - numhidden = 0; + hiddenedges = MEM_mallocN(sizeof(EditVert*)*numhidden+1,"Hidden Vert Scratch Array for Rotate Edges"); + if(!hiddenedges){ + error("Malloc Was not happy!"); + return; + } + numhidden = 0; for(srchedge = em->edges.first;srchedge;srchedge = srchedge->next){ - if(srchedge->h){ + if(srchedge->h && (srchedge->v1->f & SELECT || srchedge->v2->f & SELECT)){ hiddenedges[numhidden] = srchedge; numhidden++; }