Subversion Repositories HelenOS-historic

Compare Revisions

Ignore whitespace Rev 1482 → Rev 1483

/kernel/trunk/generic/src/adt/btree.c
50,6 → 50,7
#include <typedefs.h>
#include <print.h>
 
static void btree_destroy_subtree(btree_node_t *root);
static void _btree_insert(btree_t *t, btree_key_t key, void *value, btree_node_t *rsubtree, btree_node_t *node);
static void _btree_remove(btree_t *t, btree_key_t key, btree_node_t *node);
static void node_initialize(btree_node_t *node);
101,8 → 102,7
/** Destroy empty B-tree. */
void btree_destroy(btree_t *t)
{
ASSERT(!t->root->keys);
slab_free(btree_node_slab, t->root);
btree_destroy_subtree(t->root);
}
 
/** Insert key-value pair into B-tree.
128,6 → 128,23
_btree_insert(t, key, value, NULL, lnode);
}
 
/** Destroy subtree rooted in a node.
*
* @param root Root of the subtree.
*/
void btree_destroy_subtree(btree_node_t *root)
{
int i;
 
if (root->keys) {
for (i = 0; i < root->keys + 1; i++) {
if (root->subtree[i])
btree_destroy_subtree(root->subtree[i]);
}
}
slab_free(btree_node_slab, root);
}
 
/** Recursively insert into B-tree.
*
* @param t B-tree.
/kernel/trunk/generic/src/mm/as.c
161,12 → 161,11
ASSERT(!list_empty(&as->as_area_btree.leaf_head));
node = list_get_instance(&as->as_area_btree.leaf_head.next, btree_node_t, leaf_link);
if ((cond = node->keys)) {
if ((cond = node->keys))
as_area_destroy(as, node->key[0]);
btree_remove(&as->as_area_btree, node->key[0], node);
}
}
btree_destroy(&as->as_area_btree);
page_table_destroy(as->page_table);
 
interrupts_restore(ipl);
460,8 → 459,6
page_mapping_remove(as, b + i*PAGE_SIZE);
page_table_unlock(as, false);
}
if (!used_space_remove(area, b, i))
panic("Could not remove used space.\n");
}
}
 
1489,7 → 1486,6
node = list_get_instance(sh_info->pagemap.leaf_head.next, btree_node_t, leaf_link);
if ((cond = node->keys)) {
frame_free(ADDR2PFN((__address) node->value[0]));
btree_remove(&sh_info->pagemap, node->key[0], node);
}
}