[svn:parrot] r40377 - branches/keys_cleanup/src

bacek at svn.parrot.org bacek at svn.parrot.org
Sun Aug 2 11:36:19 UTC 2009


Author: bacek
Date: Sun Aug  2 11:36:19 2009
New Revision: 40377
URL: https://trac.parrot.org/parrot/changeset/40377

Log:
Fix marking next key in key_next. bacek-- for stupid mistake in "if" rewrite.

Modified:
   branches/keys_cleanup/src/key.c

Modified: branches/keys_cleanup/src/key.c
==============================================================================
--- branches/keys_cleanup/src/key.c	Sun Aug  2 11:26:40 2009	(r40376)
+++ branches/keys_cleanup/src/key.c	Sun Aug  2 11:36:19 2009	(r40377)
@@ -606,6 +606,7 @@
 key_mark(PARROT_INTERP, ARGIN(PMC *key))
 {
     ASSERT_ARGS(key_mark)
+    PMC          *next_key;
     const UINTVAL flags = PObj_get_FLAGS(key) & KEY_type_FLAGS;
 
     if (flags == KEY_string_FLAG) {
@@ -617,13 +618,10 @@
         Parrot_gc_mark_PObj_alive(interp, (PObj *)str_key);
     }
 
-    if (flags == KEY_pmc_FLAG || flags == KEY_string_FLAG) {
-        PMC *next_key;
-        /* if iteration hasn't started, above flag isn't set yet */
-        GETATTR_Key_next_key(interp, key, next_key);
-        if (next_key)
-            Parrot_gc_mark_PObj_alive(interp, (PObj *)next_key);
-    }
+    /* Mark next key */
+    GETATTR_Key_next_key(interp, key, next_key);
+    if (next_key)
+        Parrot_gc_mark_PObj_alive(interp, (PObj *)next_key);
 
 }
 


More information about the parrot-commits mailing list