221 return NULL;
222
223 state = get_state(my_id, name, NULL);
224 free_string(name);
225 return state;
226 }
227
228 struct expression_list *get_conditions(struct expression *expr)
229 {
230 struct smatch_state *state;
231
232 state = get_state_expr(link_id, expr);
233 if (!state)
234 return NULL;
235 return state->data;
236 }
237
238 void register_stored_conditions(int id)
239 {
240 my_id = id;
241 }
242
243 void register_stored_conditions_links(int id)
244 {
245 link_id = id;
246 add_merge_hook(link_id, &merge_links);
247 add_modification_hook(link_id, &match_link_modify);
248 }
249
250 #define RECURSE_LIMIT 50
251
252 static void filter_by_sm(struct sm_state *sm,
253 struct state_list **true_stack,
254 struct state_list **false_stack,
255 int *recurse_cnt)
256 {
257 if (!sm)
258 return;
259
260 if ((*recurse_cnt)++ > RECURSE_LIMIT)
261 return;
262
263 if (strcmp(sm->state->name, "true") == 0) {
264 add_ptr_list(true_stack, sm);
265 } else if (strcmp(sm->state->name, "false") == 0) {
|
221 return NULL;
222
223 state = get_state(my_id, name, NULL);
224 free_string(name);
225 return state;
226 }
227
228 struct expression_list *get_conditions(struct expression *expr)
229 {
230 struct smatch_state *state;
231
232 state = get_state_expr(link_id, expr);
233 if (!state)
234 return NULL;
235 return state->data;
236 }
237
238 void register_stored_conditions(int id)
239 {
240 my_id = id;
241 set_dynamic_states(my_id);
242 }
243
244 void register_stored_conditions_links(int id)
245 {
246 link_id = id;
247 db_ignore_states(link_id);
248 set_dynamic_states(link_id);
249 add_merge_hook(link_id, &merge_links);
250 add_modification_hook(link_id, &match_link_modify);
251 }
252
253 #define RECURSE_LIMIT 50
254
255 static void filter_by_sm(struct sm_state *sm,
256 struct state_list **true_stack,
257 struct state_list **false_stack,
258 int *recurse_cnt)
259 {
260 if (!sm)
261 return;
262
263 if ((*recurse_cnt)++ > RECURSE_LIMIT)
264 return;
265
266 if (strcmp(sm->state->name, "true") == 0) {
267 add_ptr_list(true_stack, sm);
268 } else if (strcmp(sm->state->name, "false") == 0) {
|