Author: jra
Date: 2005-09-03 16:57:07 +0000 (Sat, 03 Sep 2005)
New Revision: 10004

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=10004

Log:
Missed Jerry's change.
Jeremy.

Modified:
   branches/tmp/RPCREWRITE/source/include/adt_tree.h
   branches/tmp/RPCREWRITE/source/lib/adt_tree.c


Changeset:
Modified: branches/tmp/RPCREWRITE/source/include/adt_tree.h
===================================================================
--- branches/tmp/RPCREWRITE/source/include/adt_tree.h   2005-09-03 16:55:45 UTC 
(rev 10003)
+++ branches/tmp/RPCREWRITE/source/include/adt_tree.h   2005-09-03 16:57:07 UTC 
(rev 10004)
@@ -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: branches/tmp/RPCREWRITE/source/lib/adt_tree.c
===================================================================
--- branches/tmp/RPCREWRITE/source/lib/adt_tree.c       2005-09-03 16:55:45 UTC 
(rev 10003)
+++ branches/tmp/RPCREWRITE/source/lib/adt_tree.c       2005-09-03 16:57:07 UTC 
(rev 10004)
@@ -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;

Reply via email to