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