[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [22964] branches/bmesh/blender/source/ blender: made editmesh<->bmesh conversion work again, hopefully (bleh).
Joseph Eagar
joeedh at gmail.com
Thu Sep 3 07:52:05 CEST 2009
Revision: 22964
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=22964
Author: joeedh
Date: 2009-09-03 07:52:05 +0200 (Thu, 03 Sep 2009)
Log Message:
-----------
made editmesh<->bmesh conversion work again, hopefully (bleh). also made BLI_edgehash use mempools for allocating the bucket entries, for speed.
Modified Paths:
--------------
branches/bmesh/blender/source/blender/blenlib/intern/edgehash.c
branches/bmesh/blender/source/blender/bmesh/intern/bmesh_to_editmesh.c
Modified: branches/bmesh/blender/source/blender/blenlib/intern/edgehash.c
===================================================================
--- branches/bmesh/blender/source/blender/blenlib/intern/edgehash.c 2009-09-03 05:12:34 UTC (rev 22963)
+++ branches/bmesh/blender/source/blender/blenlib/intern/edgehash.c 2009-09-03 05:52:05 UTC (rev 22964)
@@ -33,6 +33,7 @@
#include "MEM_guardedalloc.h"
#include "BLI_edgehash.h"
+#include "BLI_mempool.h"
/***/
@@ -56,6 +57,7 @@
struct EdgeHash {
Entry **buckets;
+ BLI_mempool *epool;
int nbuckets, nentries, cursize;
};
@@ -68,13 +70,14 @@
eh->nbuckets= hashsizes[eh->cursize];
eh->buckets= MEM_callocN(eh->nbuckets*sizeof(*eh->buckets), "eh buckets 2");
-
+ eh->epool = BLI_mempool_create(sizeof(Entry), 512, 512);
+
return eh;
}
void BLI_edgehash_insert(EdgeHash *eh, int v0, int v1, void *val) {
unsigned int hash;
- Entry *e= MEM_callocN(sizeof(*e), "edgehash e");
+ Entry *e= BLI_mempool_alloc(eh->epool);
if (v1<v0) {
v0 ^= v1;
@@ -154,7 +157,7 @@
Entry *n= e->next;
if (valfreefp) valfreefp(e->val);
- MEM_freeN(e);
+ BLI_mempool_free(eh->epool, e);
e= n;
}
@@ -166,7 +169,9 @@
void BLI_edgehash_free(EdgeHash *eh, EdgeHashFreeFP valfreefp) {
BLI_edgehash_clear(eh, valfreefp);
-
+
+ BLI_mempool_destroy(eh->epool);
+
MEM_freeN(eh->buckets);
MEM_freeN(eh);
}
Modified: branches/bmesh/blender/source/blender/bmesh/intern/bmesh_to_editmesh.c
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/intern/bmesh_to_editmesh.c 2009-09-03 05:12:34 UTC (rev 22963)
+++ branches/bmesh/blender/source/blender/bmesh/intern/bmesh_to_editmesh.c 2009-09-03 05:52:05 UTC (rev 22964)
@@ -265,7 +265,7 @@
BMO_SetFlag(bmesh, face, FACE_NGON);
if (trifan) {
while (face->len > 4) {
- BM_Split_Face(bmesh, face,
+ face = BM_Split_Face(bmesh, face,
face->loopbase->v,
((BMLoop*)face->loopbase->head.next->next)->v,
&nl, NULL);
More information about the Bf-blender-cvs
mailing list