summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2004-08-25 02:07:20 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:58:19 -0500
commit600144050ce8e4515937c87be8d2c86c2c337364 (patch)
tree05e49602381f6fcfa5b01d7f40af09e7f9da436b
parent2ed3ab021deb8e091a6a1a077010824f31b6d5bf (diff)
downloadsamba-600144050ce8e4515937c87be8d2c86c2c337364.tar.gz
samba-600144050ce8e4515937c87be8d2c86c2c337364.tar.bz2
samba-600144050ce8e4515937c87be8d2c86c2c337364.zip
r2039: 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. (This used to be commit 957b260621c091830c01e9e8c370c199350342ec)
-rw-r--r--source4/include/rewrite.h1
-rw-r--r--source4/lib/data_blob.c19
2 files changed, 2 insertions, 18 deletions
diff --git a/source4/include/rewrite.h b/source4/include/rewrite.h
index 626a467331..0bac4ab19e 100644
--- a/source4/include/rewrite.h
+++ b/source4/include/rewrite.h
@@ -78,7 +78,6 @@ typedef smb_ucs2_t wfstring[FSTRING_LEN];
typedef struct data_blob {
uint8_t *data;
size_t length;
- void (*free)(struct data_blob *data_blob);
} DATA_BLOB;
#include "enums.h"
diff --git a/source4/lib/data_blob.c b/source4/lib/data_blob.c
index bc5cf9abc8..92950298aa 100644
--- a/source4/lib/data_blob.c
+++ b/source4/lib/data_blob.c
@@ -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 data_blob(const void *p, size_t length)
{
DATA_BLOB ret;
- if (!length) {
+ if (length == 0) {
ZERO_STRUCT(ret);
return ret;
}
@@ -50,7 +40,6 @@ DATA_BLOB data_blob(const void *p, size_t length)
ret.data = smb_xmalloc(length);
}
ret.length = length;
- ret.free = free_data_blob;
return ret;
}
@@ -73,7 +62,6 @@ DATA_BLOB data_blob_talloc(TALLOC_CTX *mem_ctx, const void *p, size_t length)
smb_panic("data_blob_talloc: talloc_memdup failed.\n");
}
ret.length = length;
- ret.free = NULL;
return ret;
}
@@ -83,7 +71,6 @@ DATA_BLOB data_blob_talloc(TALLOC_CTX *mem_ctx, const void *p, size_t length)
}
ret.length = length;
- ret.free = NULL;
return ret;
}
@@ -121,9 +108,7 @@ free a data blob
void data_blob_free(DATA_BLOB *d)
{
if (d) {
- if (d->free) {
- (d->free)(d);
- }
+ free(d->data);
d->data = NULL;
d->length = 0;
}