On Wednesday 04 June 2008 11:28:58 Geoffrey Broadwell wrote:

> The op '$P0 = iter $P1' doesn't work if $P1 is a ResizableStringArray.
> I haven't tested, but I suspect the same may be true of the some other
> *Array PMCs as well.
>
> This should be fixed up, so we can move the 'iter' op from experimental
> to standard status.

This should do it.  If you want to work up some tests, we can get this 
applied.

-- c

=== src/pmc/fixedstringarray.pmc
==================================================================
--- src/pmc/fixedstringarray.pmc	(revision 28076)
+++ src/pmc/fixedstringarray.pmc	(local)
@@ -128,6 +128,17 @@
         return (INTVAL)(size != 0);
     }
 
+    VTABLE PMC *get_iter() {
+        PMC * const iter     = pmc_new_init(INTERP, enum_class_Iterator, SELF);
+        PMC * const key      = pmc_new(INTERP, enum_class_Key);
+        PMC_struct_val(iter) = key;
+        PObj_get_FLAGS(key) |= KEY_integer_FLAG;
+        VTABLE_set_integer_native(INTERP, key,
+                VTABLE_get_bool(INTERP, SELF) ? 0 : -1);
+
+        return iter;
+    }
+
 /*
 
 =item C<INTVAL elements()>

Reply via email to