summaryrefslogtreecommitdiff
path: root/source3/include
diff options
context:
space:
mode:
authorGerald Carter <jerry@samba.org>2005-08-29 14:55:40 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 11:03:25 -0500
commit44707ad2e00a91f459e80efbe8f362b5853b0a62 (patch)
tree438124f4550315df722d959891b66e669222f8e8 /source3/include
parent77670a2ec33275ae08a37606ee15bf0170b7fcb3 (diff)
downloadsamba-44707ad2e00a91f459e80efbe8f362b5853b0a62.tar.gz
samba-44707ad2e00a91f459e80efbe8f362b5853b0a62.tar.bz2
samba-44707ad2e00a91f459e80efbe8f362b5853b0a62.zip
r9739: conver the reg_objects (REGSUBKEY_CTR & REGVAL_CTR) to use
the new talloc() features: Note that the REGSUB_CTR and REGVAL_CTR objects *must* be talloc()'d since the methods use the object pointer as the talloc context for internal private data. There is no longer a regXXX_ctr_intit() and regXXX_ctr_destroy() pair of functions. Simply TALLOC_ZERO_P() and TALLOC_FREE() the object. Also had to convert the printer_info_2->NT_PRINTER_DATA field to be talloc()'d as well. This is just a stop on the road to cleaning up the printer memory management. (This used to be commit ef721333ab9639cb5346067497e99fbd0d4425dd)
Diffstat (limited to 'source3/include')
-rw-r--r--source3/include/nt_printing.h4
-rw-r--r--source3/include/reg_objects.h2
-rw-r--r--source3/include/smb_macros.h1
3 files changed, 3 insertions, 4 deletions
diff --git a/source3/include/nt_printing.h b/source3/include/nt_printing.h
index 01835c999e..f0d50878ce 100644
--- a/source3/include/nt_printing.h
+++ b/source3/include/nt_printing.h
@@ -245,7 +245,7 @@ typedef struct nt_printer_driver_info_level
typedef struct {
char *name;
- REGVAL_CTR values;
+ REGVAL_CTR *values;
} NT_PRINTER_KEY;
/* container for all printer data */
@@ -320,7 +320,7 @@ typedef struct nt_printer_info_level_2
fstring printprocessor;
fstring datatype;
fstring parameters;
- NT_PRINTER_DATA data;
+ NT_PRINTER_DATA *data;
SEC_DESC_BUF *secdesc_buf;
uint32 changeid;
uint32 c_setprinter;
diff --git a/source3/include/reg_objects.h b/source3/include/reg_objects.h
index f6716eba4f..fff6fa16f7 100644
--- a/source3/include/reg_objects.h
+++ b/source3/include/reg_objects.h
@@ -34,7 +34,6 @@ typedef struct {
/* container for registry values */
typedef struct {
- TALLOC_CTX *ctx;
uint32 num_values;
REGISTRY_VALUE **values;
} REGVAL_CTR;
@@ -42,7 +41,6 @@ typedef struct {
/* container for registry subkey names */
typedef struct {
- TALLOC_CTX *ctx;
uint32 num_subkeys;
char **subkeys;
} REGSUBKEY_CTR;
diff --git a/source3/include/smb_macros.h b/source3/include/smb_macros.h
index 7a0afdfc19..47dff7702b 100644
--- a/source3/include/smb_macros.h
+++ b/source3/include/smb_macros.h
@@ -292,6 +292,7 @@ copy an IP address from one buffer to another
#define TALLOC_REALLOC(ctx, ptr, count) _talloc_realloc(ctx, ptr, count, __location__)
#define TALLOC_REALLOC_ARRAY(ctx, ptr, type, count) (type *)_talloc_realloc_array(ctx, ptr, sizeof(type), count, #type)
#define talloc_destroy(ctx) talloc_free(ctx)
+#define TALLOC_FREE(ctx) do { if ((ctx) != NULL) {talloc_free(ctx); ctx=NULL;} } while(0)
/* only define PARANOID_MALLOC_CHECKER with --enable-developer and not compiling
the smbmount utils */