loci: replace of_list_iter_t with of_object_t *
All known callers have been switched over.
diff --git a/c_gen/c_code_gen.py b/c_gen/c_code_gen.py
index 239034a..d66f19a 100644
--- a/c_gen/c_code_gen.py
+++ b/c_gen/c_code_gen.py
@@ -1076,13 +1076,13 @@
e_type = loxi_utils.list_to_entry_type(cls)
out.write("""
extern int %(cls)s_first(
- %(cls)s_t *list, of_list_iter_t iter);
+ %(cls)s_t *list, of_object_t *iter);
extern int %(cls)s_next(
- %(cls)s_t *list, of_list_iter_t iter);
+ %(cls)s_t *list, of_object_t *iter);
extern int %(cls)s_append_bind(
- %(cls)s_t *list, of_list_iter_t iter);
+ %(cls)s_t *list, of_object_t *iter);
extern int %(cls)s_append(
- %(cls)s_t *list, of_list_iter_t iter);
+ %(cls)s_t *list, of_object_t *iter);
/**
* Iteration macro for list of type %(cls)s
diff --git a/c_gen/templates/list.c b/c_gen/templates/list.c
index d39af9a..5eb45c6 100644
--- a/c_gen/templates/list.c
+++ b/c_gen/templates/list.c
@@ -42,10 +42,9 @@
*/
int
-${cls}_first(${cls}_t *list, of_list_iter_t iter)
+${cls}_first(${cls}_t *list, of_object_t *obj)
{
int rv;
- of_object_t *obj = iter.obj;
${e_cls}_init(obj, list->version, -1, 1);
@@ -73,10 +72,9 @@
*/
int
-${cls}_next(${cls}_t *list, of_list_iter_t iter)
+${cls}_next(${cls}_t *list, of_object_t *obj)
{
int rv;
- of_object_t *obj = iter.obj;
if ((rv = of_list_next(list, obj)) < 0) {
return rv;
@@ -105,9 +103,9 @@
*/
int
-${cls}_append_bind(${cls}_t *list, of_list_iter_t iter)
+${cls}_append_bind(${cls}_t *list, of_object_t *obj)
{
- return of_list_append_bind(list, iter.obj);
+ return of_list_append_bind(list, obj);
}
/**
@@ -119,7 +117,7 @@
*/
int
-${cls}_append(${cls}_t *list, of_list_iter_t iter)
+${cls}_append(${cls}_t *list, of_object_t *obj)
{
- return of_list_append(list, iter.obj);
+ return of_list_append(list, obj);
}
diff --git a/c_gen/templates/loci_classes.h b/c_gen/templates/loci_classes.h
index 86fe36b..c5147cb 100644
--- a/c_gen/templates/loci_classes.h
+++ b/c_gen/templates/loci_classes.h
@@ -36,22 +36,6 @@
void ${uclass.name}_push_wire_types(of_object_t *obj);
:: #endfor
-/*
- * Transparent union used for list iteration
- *
- * This will be removed when all callers are converted to of_object_t.
- */
-union of_list_iter_u {
- of_object_t *obj;
-:: for uclass in loxi_globals.unified.classes:
-:: if uclass.virtual and not uclass.superclass:
- union ${uclass.name}_u *${uclass.name};
-:: #endif
-:: #endfor
-} __attribute__ ((__transparent_union__));
-
-typedef union of_list_iter_u of_list_iter_t;
-
${legacy_code}
#endif