summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MAINTAINERS26
-rw-r--r--source3/include/adt_tree.h11
-rw-r--r--source3/lib/adt_tree.c61
3 files changed, 38 insertions, 60 deletions
diff --git a/MAINTAINERS b/MAINTAINERS
index 5988325408..99993346a6 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1,5 +1,29 @@
##
## List of current Samba Maintainers
##
-docs jht@samba.org
+This file contains a list of developers responsible for
+portions of the Samba 3.0 code. It also lists developers
+responsible for 3rd party projects that work with Samba
+(e.g. vfs modules).
+
+Note that this list is for you benefit, but please do not
+abuse it by constantly emailing a stream of help questions
+to the maintainers. Some are more open to direct
+communication than others and some struggle with enormous
+amounts of email every day.
+
+All bug reports for code that is maintained *within* the
+Samba subversion tree should be filed at https://bugzilla.samba.org/.
+
+
+Feature/Function Developer
+---------------- ---------
+
+samba-vscan Rainer Link <rainer@openantivirus.org>
+pdb_mysql Jelmer Vernooij <jelmer@samba.org>
+General Documentation John Terpstra <jht@samba.org>
+
+
+--
+Please report any errors in this file to <samba-technical@samba.org>
diff --git a/source3/include/adt_tree.h b/source3/include/adt_tree.h
index 2fbfb55e88..51b6fb1c88 100644
--- a/source3/include/adt_tree.h
+++ b/source3/include/adt_tree.h
@@ -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,17 +39,18 @@ typedef struct _tree_node {
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 */
diff --git a/source3/lib/adt_tree.c b/source3/lib/adt_tree.c
index ad763c2be1..05a470bc49 100644
--- a/source3/lib/adt_tree.c
+++ b/source3/lib/adt_tree.c
@@ -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 @@ static BOOL trim_tree_keypath( char *path, char **base, char **new_path )
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 @@ static BOOL trim_tree_keypath( char *path, char **base, char **new_path )
/**************************************************************************
- 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 @@ static TREE_NODE* pathtree_birth_child( TREE_NODE *node, char* key )
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;