~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to mysys/tree.c

  • Committer: Brian Aker
  • Date: 2008-11-04 15:39:09 UTC
  • mfrom: (575.1.2 devel)
  • Revision ID: brian@tangent.org-20081104153909-c72hn65udxs1ccal
Merge of Monty's work

Show diffs side-by-side

added added

removed removed

Lines of Context:
149
149
 
150
150
void delete_tree(TREE* tree)
151
151
{
152
 
  free_tree(tree, MYF(0)); /* my_free() mem_root if applicable */
 
152
  free_tree(tree, MYF(0)); /* free() mem_root if applicable */
153
153
}
154
154
 
155
155
void reset_tree(TREE* tree)
168
168
      (*tree->free)(ELEMENT_KEY(tree,element), free_free, tree->custom_arg);
169
169
    delete_tree_element(tree,element->right);
170
170
    if (tree->with_delete)
171
 
      my_free((char*) element,MYF(0));
 
171
      free((char*) element);
172
172
  }
173
173
}
174
174
 
181
181
    parent[0] = & parent[-1][0]->right
182
182
*/
183
183
 
184
 
TREE_ELEMENT *tree_insert(TREE *tree, void *key, uint key_size, 
 
184
TREE_ELEMENT *tree_insert(TREE *tree, void *key, uint32_t key_size, 
185
185
                          void* custom_arg)
186
186
{
187
187
  int cmp;
206
206
  }
207
207
  if (element == &tree->null_element)
208
208
  {
209
 
    uint alloc_size=sizeof(TREE_ELEMENT)+key_size+tree->size_of_element;
 
209
    uint32_t alloc_size=sizeof(TREE_ELEMENT)+key_size+tree->size_of_element;
210
210
    tree->allocated+=alloc_size;
211
211
 
212
212
    if (tree->memory_limit && tree->elements_in_tree
236
236
      }
237
237
    }
238
238
    else
239
 
      memcpy((uchar*) element + tree->offset_to_key, key, key_size);
 
239
      memcpy((unsigned char*) element + tree->offset_to_key, key, key_size);
240
240
    element->count=1;                   /* May give warning in purify */
241
241
    tree->elements_in_tree++;
242
242
    rb_insert(tree,parent,element);     /* rebalance tree */
253
253
  return element;
254
254
}
255
255
 
256
 
int tree_delete(TREE *tree, void *key, uint key_size, void *custom_arg)
 
256
int tree_delete(TREE *tree, void *key, uint32_t key_size, void *custom_arg)
257
257
{
258
258
  int cmp,remove_colour;
259
259
  TREE_ELEMENT *element,***parent, ***org_parent, *nod;
309
309
  if (tree->free)
310
310
    (*tree->free)(ELEMENT_KEY(tree,element), free_free, tree->custom_arg);
311
311
  tree->allocated-= sizeof(TREE_ELEMENT) + tree->size_of_element + key_size;
312
 
  my_free((uchar*) element,MYF(0));
 
312
  free((unsigned char*) element);
313
313
  tree->elements_in_tree--;
314
314
  return 0;
315
315
}