diff options
author | Gerald Carter <jerry@samba.org> | 2005-08-29 14:55:40 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 11:03:25 -0500 |
commit | 44707ad2e00a91f459e80efbe8f362b5853b0a62 (patch) | |
tree | 438124f4550315df722d959891b66e669222f8e8 /source3/registry/reg_objects.c | |
parent | 77670a2ec33275ae08a37606ee15bf0170b7fcb3 (diff) | |
download | samba-44707ad2e00a91f459e80efbe8f362b5853b0a62.tar.gz samba-44707ad2e00a91f459e80efbe8f362b5853b0a62.tar.xz 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/registry/reg_objects.c')
-rw-r--r-- | source3/registry/reg_objects.c | 88 |
1 files changed, 20 insertions, 68 deletions
diff --git a/source3/registry/reg_objects.c b/source3/registry/reg_objects.c index b5753fc688..70410a6740 100644 --- a/source3/registry/reg_objects.c +++ b/source3/registry/reg_objects.c @@ -25,17 +25,17 @@ #undef DBGC_CLASS #define DBGC_CLASS DBGC_RPC_SRV +/********************************************************************** -/*********************************************************************** - Init the talloc context held by a REGSUBKEY_CTR structure - This now zero's the structure - **********************************************************************/ + 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. -void regsubkey_ctr_init( REGSUBKEY_CTR *ctr ) -{ - ZERO_STRUCTP( ctr ); - ctr->ctx = talloc_init("regsubkey_ctr_init for ctr %p", ctr); -} + There is no longer a regXXX_ctr_intit() and regXXX_ctr_destroy() + pair of functions. Simply TALLOC_ZERO_P() and TALLOC_FREE() the + object. + + **********************************************************************/ /*********************************************************************** Add a new key to the array @@ -56,16 +56,16 @@ int regsubkey_ctr_addkey( REGSUBKEY_CTR *ctr, const char *keyname ) /* allocate a space for the char* in the array */ if ( ctr->subkeys == 0 ) - ctr->subkeys = TALLOC_P( ctr->ctx, char *); + ctr->subkeys = TALLOC_P( ctr, char *); else { - pp = TALLOC_REALLOC_ARRAY( ctr->ctx, ctr->subkeys, char *, ctr->num_subkeys+1); + pp = TALLOC_REALLOC_ARRAY( ctr, ctr->subkeys, char *, ctr->num_subkeys+1); if ( pp ) ctr->subkeys = pp; } /* allocate the string and save it in the array */ - ctr->subkeys[ctr->num_subkeys] = talloc_strdup( ctr->ctx, keyname ); + ctr->subkeys[ctr->num_subkeys] = talloc_strdup( ctr, keyname ); ctr->num_subkeys++; return ctr->num_subkeys; @@ -137,35 +137,11 @@ char* regsubkey_ctr_specific_key( REGSUBKEY_CTR *ctr, uint32 key_index ) return ctr->subkeys[key_index]; } -/*********************************************************************** - free memory held by a REGSUBKEY_CTR structure - **********************************************************************/ - -void regsubkey_ctr_destroy( REGSUBKEY_CTR *ctr ) -{ - if ( ctr ) { - talloc_destroy( ctr->ctx ); - ZERO_STRUCTP( ctr ); - } -} - - /* * Utility functions for REGVAL_CTR */ /*********************************************************************** - Init the talloc context held by a REGSUBKEY_CTR structure - This now zero's the structure - **********************************************************************/ - -void regval_ctr_init( REGVAL_CTR *ctr ) -{ - ZERO_STRUCTP( ctr ); - ctr->ctx = talloc_init("regval_ctr_init for ctr %p", ctr); -} - -/*********************************************************************** How many keys does the container hold ? **********************************************************************/ @@ -272,17 +248,6 @@ REGISTRY_VALUE* regval_ctr_specific_value( REGVAL_CTR *ctr, uint32 idx ) } /*********************************************************************** - Retrive the TALLOC_CTX associated with a REGISTRY_VALUE - **********************************************************************/ - -TALLOC_CTX* regval_ctr_getctx( REGVAL_CTR *val ) -{ - if ( !val ) - return NULL; - - return val->ctx; } - -/*********************************************************************** Check for the existance of a value **********************************************************************/ @@ -316,22 +281,22 @@ int regval_ctr_addvalue( REGVAL_CTR *ctr, const char *name, uint16 type, /* allocate a slot in the array of pointers */ if ( ctr->num_values == 0 ) - ctr->values = TALLOC_P( ctr->ctx, REGISTRY_VALUE *); + ctr->values = TALLOC_P( ctr, REGISTRY_VALUE *); else { - ppreg = TALLOC_REALLOC_ARRAY( ctr->ctx, ctr->values, REGISTRY_VALUE *, ctr->num_values+1 ); + ppreg = TALLOC_REALLOC_ARRAY( ctr, ctr->values, REGISTRY_VALUE *, ctr->num_values+1 ); if ( ppreg ) ctr->values = ppreg; } /* allocate a new value and store the pointer in the arrya */ - ctr->values[ctr->num_values] = TALLOC_P( ctr->ctx, REGISTRY_VALUE); + ctr->values[ctr->num_values] = TALLOC_P( ctr, REGISTRY_VALUE); /* init the value */ fstrcpy( ctr->values[ctr->num_values]->valuename, name ); ctr->values[ctr->num_values]->type = type; - ctr->values[ctr->num_values]->data_p = TALLOC_MEMDUP( ctr->ctx, data_p, size ); + ctr->values[ctr->num_values]->data_p = TALLOC_MEMDUP( ctr, data_p, size ); ctr->values[ctr->num_values]->size = size; ctr->num_values++; @@ -351,22 +316,22 @@ int regval_ctr_copyvalue( REGVAL_CTR *ctr, REGISTRY_VALUE *val ) /* allocate a slot in the array of pointers */ if ( ctr->num_values == 0 ) - ctr->values = TALLOC_P( ctr->ctx, REGISTRY_VALUE *); + ctr->values = TALLOC_P( ctr, REGISTRY_VALUE *); else { - ppreg = TALLOC_REALLOC_ARRAY( ctr->ctx, ctr->values, REGISTRY_VALUE *, ctr->num_values+1 ); + ppreg = TALLOC_REALLOC_ARRAY( ctr, ctr->values, REGISTRY_VALUE *, ctr->num_values+1 ); if ( ppreg ) ctr->values = ppreg; } /* allocate a new value and store the pointer in the arrya */ - ctr->values[ctr->num_values] = TALLOC_P( ctr->ctx, REGISTRY_VALUE); + ctr->values[ctr->num_values] = TALLOC_P( ctr, REGISTRY_VALUE); /* init the value */ fstrcpy( ctr->values[ctr->num_values]->valuename, val->valuename ); ctr->values[ctr->num_values]->type = val->type; - ctr->values[ctr->num_values]->data_p = TALLOC_MEMDUP( ctr->ctx, val->data_p, val->size ); + ctr->values[ctr->num_values]->data_p = TALLOC_MEMDUP( ctr, val->data_p, val->size ); ctr->values[ctr->num_values]->size = val->size; ctr->num_values++; } @@ -420,16 +385,3 @@ REGISTRY_VALUE* regval_ctr_getvalue( REGVAL_CTR *ctr, const char *name ) return NULL; } -/*********************************************************************** - free memory held by a REGVAL_CTR structure - **********************************************************************/ - -void regval_ctr_destroy( REGVAL_CTR *ctr ) -{ - if ( ctr ) { - talloc_destroy( ctr->ctx ); - ZERO_STRUCTP( ctr ); - } -} - - |