Author: obnox
Date: 2007-09-13 22:36:10 +0000 (Thu, 13 Sep 2007)
New Revision: 25139

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=25139

Log:
Avoid code duplication: let regval_ctr_copyvalue() call regval_ctr_addvalue().
This also corrects regval_ctr_copyvalue() in that it cannot create (invalid)
regval containers with dupliacte entries...

Michael


Modified:
   branches/SAMBA_3_2/source/registry/reg_objects.c
   branches/SAMBA_3_2_0/source/registry/reg_objects.c


Changeset:
Modified: branches/SAMBA_3_2/source/registry/reg_objects.c
===================================================================
--- branches/SAMBA_3_2/source/registry/reg_objects.c    2007-09-13 22:08:59 UTC 
(rev 25138)
+++ branches/SAMBA_3_2/source/registry/reg_objects.c    2007-09-13 22:36:10 UTC 
(rev 25139)
@@ -347,43 +347,8 @@
 int regval_ctr_copyvalue( REGVAL_CTR *ctr, REGISTRY_VALUE *val )
 {
        if ( val ) {
-               /* allocate a slot in the array of pointers */
-               
-               if (  ctr->num_values == 0 ) {
-                       ctr->values = TALLOC_P( ctr, REGISTRY_VALUE *);
-               } else {
-                       ctr->values = TALLOC_REALLOC_ARRAY( ctr, ctr->values, 
REGISTRY_VALUE *, ctr->num_values+1 );
-               }
-
-               if (!ctr->values) {
-                       ctr->num_values = 0;
-                       return 0;
-               }
-
-               /* allocate a new value and store the pointer in the arrya */
-               
-               ctr->values[ctr->num_values] = TALLOC_P( ctr, REGISTRY_VALUE);
-               if (!ctr->values[ctr->num_values]) {
-                       ctr->num_values = 0;
-                       return 0;
-               }
-
-               /* init the value */
-       
-               fstrcpy( ctr->values[ctr->num_values]->valuename, 
val->valuename );
-               ctr->values[ctr->num_values]->type = val->type;
-               if (val->size) {
-                       ctr->values[ctr->num_values]->data_p = (uint8 
*)TALLOC_MEMDUP(
-                               ctr, val->data_p, val->size );
-                       if (!ctr->values[ctr->num_values]->data_p) {
-                               ctr->num_values = 0;
-                               return 0;
-                       }
-               } else {
-                       ctr->values[ctr->num_values]->data_p = NULL;
-               }
-               ctr->values[ctr->num_values]->size = val->size;
-               ctr->num_values++;
+               regval_ctr_addvalue(ctr, val->valuename, val->type,
+                                   (char *)val->data_p, val->size);
        }
 
        return ctr->num_values;

Modified: branches/SAMBA_3_2_0/source/registry/reg_objects.c
===================================================================
--- branches/SAMBA_3_2_0/source/registry/reg_objects.c  2007-09-13 22:08:59 UTC 
(rev 25138)
+++ branches/SAMBA_3_2_0/source/registry/reg_objects.c  2007-09-13 22:36:10 UTC 
(rev 25139)
@@ -347,43 +347,8 @@
 int regval_ctr_copyvalue( REGVAL_CTR *ctr, REGISTRY_VALUE *val )
 {
        if ( val ) {
-               /* allocate a slot in the array of pointers */
-               
-               if (  ctr->num_values == 0 ) {
-                       ctr->values = TALLOC_P( ctr, REGISTRY_VALUE *);
-               } else {
-                       ctr->values = TALLOC_REALLOC_ARRAY( ctr, ctr->values, 
REGISTRY_VALUE *, ctr->num_values+1 );
-               }
-
-               if (!ctr->values) {
-                       ctr->num_values = 0;
-                       return 0;
-               }
-
-               /* allocate a new value and store the pointer in the arrya */
-               
-               ctr->values[ctr->num_values] = TALLOC_P( ctr, REGISTRY_VALUE);
-               if (!ctr->values[ctr->num_values]) {
-                       ctr->num_values = 0;
-                       return 0;
-               }
-
-               /* init the value */
-       
-               fstrcpy( ctr->values[ctr->num_values]->valuename, 
val->valuename );
-               ctr->values[ctr->num_values]->type = val->type;
-               if (val->size) {
-                       ctr->values[ctr->num_values]->data_p = (uint8 
*)TALLOC_MEMDUP(
-                               ctr, val->data_p, val->size );
-                       if (!ctr->values[ctr->num_values]->data_p) {
-                               ctr->num_values = 0;
-                               return 0;
-                       }
-               } else {
-                       ctr->values[ctr->num_values]->data_p = NULL;
-               }
-               ctr->values[ctr->num_values]->size = val->size;
-               ctr->num_values++;
+               regval_ctr_addvalue(ctr, val->valuename, val->type,
+                                   (char *)val->data_p, val->size);
        }
 
        return ctr->num_values;

Reply via email to