示例#1
0
rbt rbt_free(rbt r) {
   if (NULL == r) return NULL;
   rbt_free(r->left);
   rbt_free(r->right);
   free(r->key);
   free(r);
   return r;
}
示例#2
0
void rbt_free_kernel(rbt_node** n) {  // in order tree traverse
    if( *n != NIL ) {
        rbt_free(&(*n)->left);
        rbt_free(&(*n)->right);
//        printf("%p key:%p left%p right%p parent:%p\n", *n, (*n)->key, (*n)->left, (*n)->right, (*n)->parent);
        (*n)->left   = NULL;
        (*n)->right  = NULL;
        (*n)->parent = NULL;
        (*n)->associated_LRU_elem = NULL;
        (*n)->key    = NULL;
        free(*n);
    }
}
示例#3
0
/**********************************************************************//**
Frees an index memory object. */
UNIV_INTERN
void
dict_mem_index_free(
/*================*/
	dict_index_t*	index)	/*!< in: index */
{
	ut_ad(index);
	ut_ad(index->magic_n == DICT_INDEX_MAGIC_N);
#ifdef UNIV_BLOB_DEBUG
	if (index->blobs) {
		mutex_free(&index->blobs_mutex);
		rbt_free(index->blobs);
	}
#endif /* UNIV_BLOB_DEBUG */

	mem_heap_free(index->heap);
}
示例#4
0
void rbt_i64_free_cb (rbt_t *rbt, void (*callback)(rbt_i64_node_t *))
{
        rbt_free(rbt, (void(*)(void *))callback);
}
示例#5
0
void rbt_i64_free (rbt_t *rbt)
{
        rbt_free(rbt, NULL);
}
示例#6
0
void rbt_i32_free (rbt_t *rbt)
{
        rbt_free(rbt, NULL);
}