]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/mods.c
ITS#4088 force cursors to use same locker
[openldap] / servers / slapd / mods.c
index 8e46c7c6275e2c8ce79fd2b9197c4f046d13ebb0..a9a66074dae5a31c1480c36ef162c677913a0274 100644 (file)
@@ -90,7 +90,7 @@ modify_add_values(
                for ( p = i = 0; !BER_BVISNULL( &mod->sm_values[i] ); i++ ) {
                        int     match;
 
-                       assert( a->a_vals[0].bv_val );
+                       assert( a->a_vals[0].bv_val != NULL );
                        for ( j = 0; !BER_BVISNULL( &a->a_vals[j] ); j++ ) {
                                if ( mod->sm_nvalues ) {
                                        rc = ordered_value_match( &match, mod->sm_desc, mr,
@@ -143,7 +143,7 @@ modify_add_values(
        }
 
        /* no - add them */
-       if ( mod->sm_desc->ad_type->sat_flags & SLAP_AT_ORDERED ) {
+       if ( mod->sm_desc->ad_type->sat_flags & SLAP_AT_ORDERED_VAL ) {
                rc = ordered_value_add( e, mod->sm_desc, a,
                        pmod.sm_values, pmod.sm_nvalues );
        } else {
@@ -245,7 +245,7 @@ modify_delete_vindex(
                        }
 
                        if( mod->sm_nvalues ) {
-                               assert( a->a_nvals );
+                               assert( a->a_nvals != NULL );
                                rc = ordered_value_match( &match, a->a_desc, mr,
                                        SLAP_MR_EQUALITY | SLAP_MR_VALUE_OF_ASSERTION_SYNTAX
                                                | SLAP_MR_ASSERTED_VALUE_NORMALIZED_MATCH
@@ -333,8 +333,8 @@ modify_delete_vindex(
                                mod->sm_desc->ad_cname.bv_val );
                        rc = LDAP_NO_SUCH_ATTRIBUTE;
                }
-       } else if ( a->a_desc->ad_type->sat_flags & SLAP_AT_ORDERED ) {
-       /* For an ordered attribute, renumber the value indices */
+       } else if ( a->a_desc->ad_type->sat_flags & SLAP_AT_ORDERED_VAL ) {
+               /* For an ordered attribute, renumber the value indices */
                ordered_value_sort( a, 1 );
        }
 
@@ -432,14 +432,16 @@ slap_mod_free(
 
 void
 slap_mods_free(
-    Modifications      *ml )
+    Modifications      *ml,
+    int                        freevals )
 {
        Modifications *next;
 
        for ( ; ml != NULL; ml = next ) {
                next = ml->sml_next;
 
-               slap_mod_free( &ml->sml_mod, 0 );
+               if ( freevals )
+                       slap_mod_free( &ml->sml_mod, 0 );
                free( ml );
        }
 }