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; }