- list_for_each_entry(item, &m->deny_list, mood_item_node)
- if (add_item_score(aft_row, item, &score, &score_arg_sum) > 0)
- return -E_NOT_ADMISSIBLE;
- list_for_each_entry(item, &m->accept_list, mood_item_node)
- if (add_item_score(aft_row, item, &score, &score_arg_sum) > 0)
- match = 1;
+ list_for_each_entry(item, &m->deny_list, mood_item_node) {
+ ret = get_item_score(aft_row, item, &item_score,
+ &score_arg_sum);
+ if (ret < 0)
+ return ret;
+ if (ret > 0) /* not admissible */
+ return 0;
+ score += item_score;
+ }
+ list_for_each_entry(item, &m->accept_list, mood_item_node) {
+ ret = get_item_score(aft_row, item, &item_score,
+ &score_arg_sum);
+ if (ret < 0)
+ return ret;
+ if (ret == 0)
+ continue;
+ match = 1;
+ score += item_score;
+ }