char *new_dn = NULL, *new_ndn = NULL;
Entry *e, *p = NULL;
Entry *matched;
- int rootlock = 0;
- int rc = -1, rc_id = 0;
+ int rootlock = 0;
+#define CAN_ROLLBACK -1
+#define MUST_DESTROY 1
+ int rc = CAN_ROLLBACK;
+ int rc_id = 0;
ID id = NOID;
const char *text = NULL;
char textbuf[SLAP_TEXT_BUFLEN];
goto return_results;
}
- rc = -1;
+ rc = MUST_DESTROY;
(void) cache_update_entry( &li->li_cache, e );
/* free entry and writer lock */
cache_return_entry_w( &li->li_cache, e );
- if ( rc ) {
- /* if rc != 0 the entry is uncached and its private data
- * is destroyed; the entry must be freed */
+ if ( rc == MUST_DESTROY ) {
+ /* if rc == MUST_DESTROY the entry is uncached
+ * and its private data is destroyed;
+ * the entry must be freed */
entry_free( e );
}
return( rc );