svn commit: samba r2039 - in branches/SAMBA_4_0/source: include lib

tridge at samba.org tridge at samba.org
Wed Aug 25 02:07:20 GMT 2004


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



More information about the samba-cvs mailing list