STATICFNDEF void cleanup_trigger_hash(char *trigvn, int trigvn_len, char **values, uint4 *value_len, stringkey *set_hash, stringkey *kill_hash, boolean_t del_kill_hash, int match_index) { sgmnt_addrs *csa; uint4 len; char save_currkey[SIZEOF(gv_key) + DBKEYSIZE(MAX_KEY_SZ)]; gv_key *save_gv_currkey; gd_region *save_gv_cur_region; gv_namehead *save_gv_target; sgm_info *save_sgm_info_ptr; mstr trigger_key; DCL_THREADGBL_ACCESS; SETUP_THREADGBL_ACCESS; SAVE_TRIGGER_REGION_INFO; SWITCH_TO_DEFAULT_REGION; assert(0 != gv_target->root); if (NULL != strchr(values[CMD_SUB], 'S')) { SEARCH_AND_KILL_BY_HASH(trigvn, trigvn_len, set_hash, match_index) } if (del_kill_hash) { SEARCH_AND_KILL_BY_HASH(trigvn, trigvn_len, kill_hash, match_index); } RESTORE_TRIGGER_REGION_INFO; }
void cleanup_trigger_hash(char *trigvn, int trigvn_len, char **values, uint4 *value_len, stringkey *set_hash, stringkey *kill_hash, boolean_t del_kill_hash, int match_index) { sgmnt_addrs *csa; DCL_THREADGBL_ACCESS; SETUP_THREADGBL_ACCESS; csa = cs_addrs; assert(!gv_cur_region->read_only); /* caller should have already checked this */ assert(cs_addrs->hasht_tree == gv_target); /* should have been set up by caller */ assert(gv_target->root); /* should have been ensured by caller */ if ((NULL != strchr(values[CMD_SUB], 'S')) && (set_hash->hash_code != kill_hash->hash_code)) SEARCH_AND_KILL_BY_HASH(trigvn, trigvn_len, set_hash, match_index, csa) if (del_kill_hash) SEARCH_AND_KILL_BY_HASH(trigvn, trigvn_len, kill_hash, match_index, csa); }