[svn:parrot] r40376 - in branches/keys_cleanup: include/parrot src

bacek at svn.parrot.org bacek at svn.parrot.org
Sun Aug 2 11:26:41 UTC 2009


Author: bacek
Date: Sun Aug  2 11:26:40 2009
New Revision: 40376
URL: https://trac.parrot.org/parrot/changeset/40376

Log:
[cage] Drop KEY_iterator_FLAGS. It's not used anymore

Modified:
   branches/keys_cleanup/include/parrot/key.h
   branches/keys_cleanup/src/key.c

Modified: branches/keys_cleanup/include/parrot/key.h
==============================================================================
--- branches/keys_cleanup/include/parrot/key.h	Sun Aug  2 11:26:16 2009	(r40375)
+++ branches/keys_cleanup/include/parrot/key.h	Sun Aug  2 11:26:40 2009	(r40376)
@@ -18,7 +18,6 @@
 typedef enum {
     KEY_integer_FLAG        = PObj_private0_FLAG,
     KEY_number_FLAG         = PObj_private1_FLAG,
-    KEY_hash_iterator_FLAGS = PObj_private0_FLAG | PObj_private1_FLAG,
     KEY_string_FLAG         = PObj_private2_FLAG,
     KEY_pmc_FLAG            = PObj_private3_FLAG,
     KEY_register_FLAG       = PObj_private4_FLAG,
@@ -27,14 +26,10 @@
                               KEY_number_FLAG          |
                               KEY_string_FLAG          |
                               KEY_pmc_FLAG             |
-                              KEY_register_FLAG        |
-                              KEY_hash_iterator_FLAGS
+                              KEY_register_FLAG
 
 } KEY_flags;
 
-#define KEY_IS_HASH_ITERATOR(k) \
-    ((PObj_get_FLAGS((k)) & KEY_type_FLAGS) == KEY_hash_iterator_FLAGS)
-
 /* HEADERIZER BEGIN: src/key.c */
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 

Modified: branches/keys_cleanup/src/key.c
==============================================================================
--- branches/keys_cleanup/src/key.c	Sun Aug  2 11:26:16 2009	(r40375)
+++ branches/keys_cleanup/src/key.c	Sun Aug  2 11:26:40 2009	(r40376)
@@ -332,8 +332,6 @@
     FLOATVAL num_key;
 
     switch (PObj_get_FLAGS(key) & KEY_type_FLAGS) {
-        case KEY_hash_iterator_FLAGS:
-
         case KEY_integer_FLAG:
             GETATTR_Key_int_key(interp, key, int_key);
             return int_key;
@@ -619,16 +617,11 @@
         Parrot_gc_mark_PObj_alive(interp, (PObj *)str_key);
     }
 
-    /*
-     * KEY_hash_iterator_FLAGS denote a hash key iteration, PMC_data() is
-     * the bucket_index and not the next key component
-     * Note to self: shoot whoever thought this was a good idea.
-     */
-    if (flags != KEY_hash_iterator_FLAGS) {
+    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 && (void *)next_key != (void *)INITBucketIndex)
+        if (next_key)
             Parrot_gc_mark_PObj_alive(interp, (PObj *)next_key);
     }
 


More information about the parrot-commits mailing list