- (RULE) = OBJECT_CONTAINING(cls_table_next_rule(TABLE, \
- &(RULE)->MEMBER), \
- RULE, MEMBER))
-
-#define CLASSIFIER_FOR_EACH_EXACT_RULE(RULE, MEMBER, CLS) \
- CLS_TABLE_FOR_EACH_RULE (RULE, MEMBER, classifier_exact_table(CLS))
+ ASSIGN_CONTAINER(RULE, cls_cursor_next(CURSOR, &(RULE)->MEMBER), \
+ MEMBER))
+
+#define CLS_CURSOR_FOR_EACH_SAFE(RULE, NEXT, MEMBER, CURSOR) \
+ for (ASSIGN_CONTAINER(RULE, cls_cursor_first(CURSOR), MEMBER); \
+ (&(RULE)->MEMBER != NULL \
+ ? ASSIGN_CONTAINER(NEXT, cls_cursor_next(CURSOR, &(RULE)->MEMBER), \
+ MEMBER) \
+ : 0); \
+ (RULE) = (NEXT))