muck with flags only when needed (ITS#5898)

This commit is contained in:
Pierangelo Masarati 2009-01-30 01:29:32 +00:00
parent 8f7ec6b6ca
commit 97bd3479c4

View File

@ -452,12 +452,13 @@ dynlist_prepare_entry( Operation *op, SlapReply *rs, dynlist_info_t *dli )
o.o_groups = NULL;
}
e_flags = rs->sr_flags;
if ( !( rs->sr_flags & REP_ENTRY_MODIFIABLE ) ) {
e = entry_dup( rs->sr_entry );
e_flags |= ( REP_ENTRY_MODIFIABLE | REP_ENTRY_MUSTBEFREED );
} else {
e = rs->sr_entry;
}
e_flags = rs->sr_flags | ( REP_ENTRY_MODIFIABLE | REP_ENTRY_MUSTBEFREED );
dlc.dlc_e = e;
dlc.dlc_dli = dli;
@ -855,6 +856,8 @@ done:;
if ( r.sr_flags & REP_ENTRY_MUSTBEFREED ) {
entry_free( r.sr_entry );
r.sr_entry = NULL;
r.sr_flags ^= REP_ENTRY_MUSTBEFREED;
}
}