svn commit: samba r9999 - in trunk/source: include lib
jerry at samba.org
jerry at samba.org
Sat Sep 3 16:39:46 GMT 2005
Author: jerry
Date: 2005-09-03 16:39:46 +0000 (Sat, 03 Sep 2005)
New Revision: 9999
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=9999
Log:
merge adt changes to trunk (accidentally committed to SAMBA_3_0 as part of the MAINTAINERS update)
Modified:
trunk/source/include/adt_tree.h
trunk/source/lib/adt_tree.c
Changeset:
Modified: trunk/source/include/adt_tree.h
===================================================================
--- trunk/source/include/adt_tree.h 2005-09-03 16:38:51 UTC (rev 9998)
+++ trunk/source/include/adt_tree.h 2005-09-03 16:39:46 UTC (rev 9999)
@@ -1,7 +1,7 @@
/*
* Unix SMB/CIFS implementation.
* Generic Abstract Data Types
- * Copyright (C) Gerald Carter 2002.
+ * Copyright (C) Gerald Carter 2002-2005.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -39,18 +39,19 @@
typedef struct _tree_root {
TREE_NODE *root;
+
+ /* not used currently (is it needed?) */
int (*compare)(void* x, void *y);
- void (*free_func)(void *p);
} SORTED_TREE;
/*
* API
*/
-/* initializer and desctrutor */
-SORTED_TREE* pathtree_init( void *data_p, int (cmp_fn)(void*, void*), void (free_fn)(void*) );
-void pathtree_destroy( SORTED_TREE *tree );
+/* create a new tree, talloc_free() to throw it away */
+SORTED_TREE* pathtree_init( void *data_p, int (cmp_fn)(void*, void*) );
+
/* add a new path component */
BOOL pathtree_add( SORTED_TREE *tree, const char *path, void *data_p );
Modified: trunk/source/lib/adt_tree.c
===================================================================
--- trunk/source/lib/adt_tree.c 2005-09-03 16:38:51 UTC (rev 9998)
+++ trunk/source/lib/adt_tree.c 2005-09-03 16:39:46 UTC (rev 9999)
@@ -23,8 +23,6 @@
/**************************************************************************
- Initialize the tree's root. The cmp_fn is a callback function used
- for comparision of two children
*************************************************************************/
static BOOL trim_tree_keypath( char *path, char **base, char **new_path )
@@ -54,26 +52,20 @@
for comparision of two children
*************************************************************************/
- SORTED_TREE* pathtree_init( void *data_p,
- int (cmp_fn)(void*, void*),
- void (free_fn)(void*) )
+ SORTED_TREE* pathtree_init( void *data_p, int (cmp_fn)(void*, void*) )
{
SORTED_TREE *tree = NULL;
- if ( !(tree = SMB_MALLOC_P(SORTED_TREE)) )
+ if ( !(tree = TALLOC_ZERO_P(NULL, SORTED_TREE)) )
return NULL;
- ZERO_STRUCTP( tree );
-
tree->compare = cmp_fn;
- tree->free_func = free_fn;
- if ( !(tree->root = SMB_MALLOC_P(TREE_NODE)) ) {
- SAFE_FREE( tree );
+ if ( !(tree->root = TALLOC_ZERO_P(tree, TREE_NODE)) ) {
+ TALLOC_FREE( tree );
return NULL;
}
- ZERO_STRUCTP( tree->root );
tree->root->data_p = data_p;
return tree;
@@ -81,43 +73,6 @@
/**************************************************************************
- Delete a tree and free all allocated memory
- *************************************************************************/
-
-static void pathtree_destroy_children( TREE_NODE *root )
-{
- int i;
-
- if ( !root )
- return;
-
- for ( i=0; i<root->num_children; i++ )
- {
- pathtree_destroy_children( root->children[i] );
- }
-
- SAFE_FREE( root->children );
- SAFE_FREE( root->key );
-
- return;
-}
-
-/**************************************************************************
- Delete a tree and free all allocated memory
- *************************************************************************/
-
- void pathtree_destroy( SORTED_TREE *tree )
-{
- if ( tree->root )
- pathtree_destroy_children( tree->root );
-
- if ( tree->free_func )
- tree->free_func( tree->root );
-
- SAFE_FREE( tree );
-}
-
-/**************************************************************************
Find the next child given a key string
*************************************************************************/
@@ -127,15 +82,13 @@
TREE_NODE **siblings;
int i;
- if ( !(infant = SMB_MALLOC_P(TREE_NODE)) )
+ if ( !(infant = TALLOC_ZERO_P( node, TREE_NODE)) )
return NULL;
- ZERO_STRUCTP( infant );
-
- infant->key = SMB_STRDUP( key );
+ infant->key = talloc_strdup( infant, key );
infant->parent = node;
- siblings = SMB_REALLOC_ARRAY( node->children, TREE_NODE *, node->num_children+1 );
+ siblings = TALLOC_REALLOC_ARRAY( node, node->children, TREE_NODE *, node->num_children+1 );
if ( siblings )
node->children = siblings;
More information about the samba-cvs
mailing list