From 44707ad2e00a91f459e80efbe8f362b5853b0a62 Mon Sep 17 00:00:00 2001 From: Gerald Carter Date: Mon, 29 Aug 2005 14:55:40 +0000 Subject: 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) --- source3/include/nt_printing.h | 4 ++-- source3/include/reg_objects.h | 2 -- source3/include/smb_macros.h | 1 + 3 files changed, 3 insertions(+), 4 deletions(-) (limited to 'source3/include') 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 */ -- cgit