Author: tridge
Date: 2004-08-25 02:07:20 +0000 (Wed, 25 Aug 2004)
New Revision: 2039

WebSVN: 
http://websvn.samba.org/websvn/changeset.php?rep=samba&path=/branches/SAMBA_4_0/source&rev=2039&nolog=1

Log:
got rid of the free() ptr in DATA_BLOB

I plan on replacing the concept by adding a generic destructor in all talloc ptrs, so 
you can do:

  talloc_set_destructor(ptr, my_destructor);

to setup a function that will be called on free. 






Modified:
   branches/SAMBA_4_0/source/include/rewrite.h
   branches/SAMBA_4_0/source/lib/data_blob.c


Changeset:
Modified: branches/SAMBA_4_0/source/include/rewrite.h
===================================================================
--- branches/SAMBA_4_0/source/include/rewrite.h 2004-08-25 02:06:08 UTC (rev 2038)
+++ branches/SAMBA_4_0/source/include/rewrite.h 2004-08-25 02:07:20 UTC (rev 2039)
@@ -78,7 +78,6 @@
 typedef struct data_blob {
        uint8_t *data;
        size_t length;
-       void (*free)(struct data_blob *data_blob);
 } DATA_BLOB;
 
 #include "enums.h"

Modified: branches/SAMBA_4_0/source/lib/data_blob.c
===================================================================
--- branches/SAMBA_4_0/source/lib/data_blob.c   2004-08-25 02:06:08 UTC (rev 2038)
+++ branches/SAMBA_4_0/source/lib/data_blob.c   2004-08-25 02:07:20 UTC (rev 2039)
@@ -22,16 +22,6 @@
 #include "includes.h"
 
 /*******************************************************************
- free() a data blob
-*******************************************************************/
-static void free_data_blob(DATA_BLOB *d)
-{
-       if ((d) && (d->free)) {
-               SAFE_FREE(d->data);
-       }
-}
-
-/*******************************************************************
  construct a data blob, must be freed with data_blob_free()
  you can pass NULL for p and get a blank data blob
 *******************************************************************/
@@ -39,7 +29,7 @@
 {
        DATA_BLOB ret;
 
-       if (!length) {
+       if (length == 0) {
                ZERO_STRUCT(ret);
                return ret;
        }
@@ -50,7 +40,6 @@
                ret.data = smb_xmalloc(length);
        }
        ret.length = length;
-       ret.free = free_data_blob;
        return ret;
 }
 
@@ -73,7 +62,6 @@
                        smb_panic("data_blob_talloc: talloc_memdup failed.\n");
                }
                ret.length = length;
-               ret.free = NULL;
                return ret;
        }
 
@@ -83,7 +71,6 @@
        }
 
        ret.length = length;
-       ret.free = NULL;
        return ret;
 }
 
@@ -121,9 +108,7 @@
 void data_blob_free(DATA_BLOB *d)
 {
        if (d) {
-               if (d->free) {
-                       (d->free)(d);
-               }
+               free(d->data);
                d->data = NULL;
                d->length = 0;
        }

Reply via email to