svn merge ^/trunk/blender -r42670:42680
authorCampbell Barton <ideasman42@gmail.com>
Sat, 17 Dec 2011 02:41:53 +0000 (02:41 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Sat, 17 Dec 2011 02:41:53 +0000 (02:41 +0000)
1  2 
source/blender/blenlib/intern/BLI_ghash.c
source/blender/blenlib/intern/edgehash.c
source/blender/editors/mesh/mesh_navmesh.c
source/blender/editors/object/object_add.c
source/blender/editors/object/object_vgroup.c
source/blender/editors/sculpt_paint/paint_vertex.c
source/blender/editors/transform/transform.c
source/blender/editors/transform/transform_conversions.c
source/blender/editors/transform/transform_orientations.c

index 4b4bff7df7819133c00454e8fd12a1d56b46d555,7ae68101154650dec362a08e2c8766a15fd0fb76..dbd138a3563b845c34543dfeb2ca309531352375
  
  /***/
  
- EdgeHash *BLI_edgehash_new(void) {
+ EdgeHash *BLI_edgehash_new(void)
+ {
 -      EdgeHash *eh= MEM_mallocN(sizeof(*eh), "EdgeHash");
 +      EdgeHash *eh= MEM_callocN(sizeof(*eh), "EdgeHash");
        eh->cursize= 0;
        eh->nentries= 0;
 -      eh->nbuckets= hashsizes[eh->cursize];
 -      
 -      eh->buckets= malloc(eh->nbuckets*sizeof(*eh->buckets));
 -      memset(eh->buckets, 0, eh->nbuckets*sizeof(*eh->buckets));
 +      eh->nbuckets= _ehash_hashsizes[eh->cursize];
        
 -      return eh;
 -}
 -
 -void BLI_edgehash_insert(EdgeHash *eh, int v0, int v1, void *val)
 -{
 -      unsigned int hash;
 -      Entry *e= malloc(sizeof(*e));
 +      eh->buckets= MEM_callocN(eh->nbuckets*sizeof(*eh->buckets), "eh buckets 2");
 +      eh->epool = BLI_mempool_create(sizeof(EdgeEntry), 512, 512, TRUE, FALSE);
  
 -      if (v1<v0) {
 -              v0 ^= v1;
 -              v1 ^= v0;
 -              v0 ^= v1;
 -      }
 -      hash = EDGEHASH(v0,v1)%eh->nbuckets;
 -
 -      e->v0 = v0;
 -      e->v1 = v1;
 -      e->val = val;
 -      e->next= eh->buckets[hash];
 -      eh->buckets[hash]= e;
 -      
 -      if (++eh->nentries>eh->nbuckets*3) {
 -              Entry **old= eh->buckets;
 -              int i, nold= eh->nbuckets;
 -              
 -              eh->nbuckets= hashsizes[++eh->cursize];
 -              eh->buckets= malloc(eh->nbuckets*sizeof(*eh->buckets));
 -              memset(eh->buckets, 0, eh->nbuckets*sizeof(*eh->buckets));
 -              
 -              for (i=0; i<nold; i++) {
 -                      for (e= old[i]; e;) {
 -                              Entry *n= e->next;
 -                              
 -                              hash= EDGEHASH(e->v0,e->v1)%eh->nbuckets;
 -                              e->next= eh->buckets[hash];
 -                              eh->buckets[hash]= e;
 -                              
 -                              e= n;
 -                      }
 -              }
 -              
 -              free(old);
 -      }
 -}
 -
 -void** BLI_edgehash_lookup_p(EdgeHash *eh, int v0, int v1)
 -{
 -      unsigned int hash;
 -      Entry *e;
 -
 -      if (v1<v0) {
 -              v0 ^= v1;
 -              v1 ^= v0;
 -              v0 ^= v1;
 -      }
 -      hash = EDGEHASH(v0,v1)%eh->nbuckets;
 -      for (e= eh->buckets[hash]; e; e= e->next)
 -              if (v0==e->v0 && v1==e->v1)
 -                      return &e->val;
 -      
 -      return NULL;
 -}
 -
 -void* BLI_edgehash_lookup(EdgeHash *eh, int v0, int v1)
 -{
 -      void **value_p = BLI_edgehash_lookup_p(eh,v0,v1);
 -
 -      return value_p?*value_p:NULL;
 -}
 -
 -int BLI_edgehash_haskey(EdgeHash *eh, int v0, int v1)
 -{
 -      return BLI_edgehash_lookup_p(eh, v0, v1)!=NULL;
 +      return eh;
  }
  
- int BLI_edgehash_size(EdgeHash *eh) {
+ int BLI_edgehash_size(EdgeHash *eh)
+ {
        return eh->nentries;
  }
  
@@@ -78,12 -175,11 +81,13 @@@ void BLI_edgehash_clear(EdgeHash *eh, E
        eh->nentries= 0;
  }
  
- void BLI_edgehash_free(EdgeHash *eh, EdgeHashFreeFP valfreefp) {
+ void BLI_edgehash_free(EdgeHash *eh, EdgeHashFreeFP valfreefp)
+ {
        BLI_edgehash_clear(eh, valfreefp);
 -      
 -      free(eh->buckets);
 +
 +      BLI_mempool_destroy(eh->epool);
 +
 +      MEM_freeN(eh->buckets);
        MEM_freeN(eh);
  }
  
  struct EdgeHashIterator {
        EdgeHash *eh;
        int curBucket;
 -      Entry *curEntry;
 +      EdgeEntry *curEntry;
  };
  
- EdgeHashIterator *BLI_edgehashIterator_new(EdgeHash *eh) {
+ EdgeHashIterator *BLI_edgehashIterator_new(EdgeHash *eh)
+ {
 -      EdgeHashIterator *ehi= malloc(sizeof(*ehi));
 +      EdgeHashIterator *ehi= MEM_mallocN(sizeof(*ehi), "eh iter");
        ehi->eh= eh;
        ehi->curEntry= NULL;
        ehi->curBucket= -1;
        }
        return ehi;
  }
- void BLI_edgehashIterator_free(EdgeHashIterator *ehi) {
+ void BLI_edgehashIterator_free(EdgeHashIterator *ehi)
+ {
 -      free(ehi);
 +      MEM_freeN(ehi);
  }
  
- void BLI_edgehashIterator_getKey(EdgeHashIterator *ehi, int *v0_r, int *v1_r) {
+ void BLI_edgehashIterator_getKey(EdgeHashIterator *ehi, int *v0_r, int *v1_r)
+ {
        if (ehi->curEntry) {
                *v0_r = ehi->curEntry->v0;
                *v1_r = ehi->curEntry->v1;