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