And here's the dummy classes/perlhash.pmc patch. Once again, this need
not be applied if my upcoming hashtable patch is accepted instead.

Index: classes/perlhash.pmc
===================================================================
RCS file: /home/perlcvs/parrot/classes/perlhash.pmc,v
retrieving revision 1.16
diff -u -r1.16 perlhash.pmc
--- classes/perlhash.pmc        2 Apr 2002 20:32:42 -0000       1.16
+++ classes/perlhash.pmc        14 May 2002 22:38:46 -0000
@@ -23,8 +23,6 @@
     }
 
     void init (INTVAL size) {
-       SELF->data = key_new(INTERP);
-       key_set_size(INTERP,SELF->data,0);
     }
 
     void clone (PMC* dest) { 
@@ -42,7 +40,6 @@
     }
 
     void destroy () {
-       key_destroy(INTERP,SELF->data);
     }
 
     INTVAL get_integer () {
@@ -50,7 +47,6 @@
     }
 
     INTVAL get_integer_keyed (KEY * key) {
-        KEY_PAIR* kp;
         INTVAL ix;
         PMC* value;
         internal_exception(OUT_OF_BOUNDS, "Hash not implemented yet!\n");
@@ -59,12 +55,9 @@
             return 0;
         }
 
-        kp = &key->keys[0];
-        ix = kp->cache.int_val;
+        ix = key->atom.val.int_val;
 
         if (ix > SELF->cache.int_val) {
-            /* XXX I don't think this will work quite yet */
-            /* key_set_size(kp,ix); */
             internal_exception(OUT_OF_BOUNDS, "Array element out of bounds!\n");
         }
         if (ix < 0) {
@@ -80,7 +73,6 @@
     }
 
     FLOATVAL get_number_keyed (KEY * key) {
-        KEY_PAIR* kp;
         INTVAL ix;
         PMC* value;
         internal_exception(OUT_OF_BOUNDS, "Hash not implemented yet!\n");
@@ -89,8 +81,7 @@
             return 0;
         }
 
-        kp = &key->keys[0];
-        ix = kp->cache.int_val;
+        ix = key->atom.val.int_val;
 
         if (ix > SELF->cache.int_val) {
             /* XXX I don't think this will work quite yet */
@@ -110,7 +101,6 @@
     }
 
     STRING* get_string_keyed (KEY * key) {
-        KEY_PAIR* kp;
         INTVAL ix;
         PMC* value;
         internal_exception(OUT_OF_BOUNDS, "Hash not implemented yet!\n");
@@ -119,8 +109,7 @@
             return 0;
         }
 
-        kp = &key->keys[0];
-        ix = kp->cache.int_val;
+        ix = key->atom.val.int_val;
 
         if (ix > SELF->cache.int_val) {
             /* XXX I don't think this will work quite yet */
@@ -153,11 +142,9 @@
 
     void set_integer (PMC* value) {
        INTVAL size = value->vtable->get_integer(INTERP,value);
-       key_set_size(INTERP,SELF->data,size);
     }
 
     void set_integer_native (INTVAL size) {
-       key_set_size(INTERP,SELF->data,size);
     }
 
     void set_integer_bigint (BIGINT value) {
@@ -165,11 +152,9 @@
 
     void set_integer_same (PMC * value) {
        INTVAL size = value->cache.int_val;
-       key_set_size(INTERP,SELF->data,size);
     }
 
     void set_integer_keyed (KEY * key, INTVAL value) {
-        KEY_PAIR* kp;
         INTVAL ix;
         PMC* pmc2;
 
@@ -177,8 +162,7 @@
             return;
         }
 
-        kp = &key->keys[0];
-        ix = kp->cache.int_val;
+        ix = key->atom.val.int_val;
 
         if (ix > SELF->cache.int_val) {
             /* XXX I don't think this will work quite yet */
@@ -195,11 +179,9 @@
 
     void set_number (PMC * value) {
        INTVAL size = (INTVAL)value->cache.num_val;
-       key_set_size(INTERP,SELF->data,size);
     }
 
     void set_number_native (FLOATVAL size) {
-       key_set_size(INTERP,SELF->data,(INTVAL)size);
     }
 
     void set_number_bigfloat (BIGFLOAT value) {
@@ -207,11 +189,9 @@
 
     void set_number_same (PMC * value) {
        INTVAL size = value->cache.int_val;
-       key_set_size(INTERP,SELF->data,size);
     }
 
     void set_number_keyed (KEY * key, FLOATVAL value) {
-        KEY_PAIR* kp;
         INTVAL ix;
         PMC* pmc2;
 
@@ -219,8 +199,7 @@
             return;
         }
 
-        kp = &key->keys[0];
-        ix = kp->cache.int_val;
+        ix = key->atom.val.int_val;
 
         if (ix > SELF->cache.int_val) {
             /* XXX I don't think this will work quite yet */
@@ -251,7 +230,6 @@
     }
 
     void set_string_keyed (KEY * key, STRING * value) {
-        KEY_PAIR* kp;
         INTVAL ix;
         PMC* pmc2;
 
@@ -259,8 +237,7 @@
             return;
         }
 
-        kp = &key->keys[0];
-        ix = kp->cache.int_val;
+        ix = key->atom.val.int_val;
 
         if (ix > SELF->cache.int_val) {
             /* XXX I don't think this will work quite yet */

Reply via email to