id	summary	reporter	owner	description	type	status	priority	milestone	component	version	severity	resolution	keywords	cc	lang	patch	platform
1348	[patch]changed addrregistry.pmc to use GET_ATTR syntax	jimmy		"changed addrregistry.pmc to use GET_ATTR syntax

{{{
Index: src/pmc/addrregistry.pmc
===================================================================
--- src/pmc/addrregistry.pmc	(版本 42868)
+++ src/pmc/addrregistry.pmc	(工作副本)
@@ -73,8 +73,11 @@
 */
 
     VTABLE INTVAL get_integer_keyed(PMC *key) {
-        Hash   *hash  = (Hash *)SELF.get_pointer();
-        void   *value = parrot_hash_get(INTERP, hash, key);
+        Hash       *hash;
+        const void *value;
+	
+        GET_ATTR_hash(interp, SELF, hash);
+        value = parrot_hash_get(INTERP, hash, key);
 
         if (value)
             return (INTVAL)value;
@@ -83,11 +86,19 @@
     }
 
     VTABLE INTVAL elements() {
-        return parrot_hash_size(INTERP, (Hash *)SELF.get_pointer());
+        const Hash *hash;
+
+        GET_ATTR_hash(interp, SELF, hash);
+
+        return parrot_hash_size(INTERP, hash);
     }
 
     VTABLE INTVAL get_bool() {
-        return parrot_hash_size(INTERP, (Hash *)SELF.get_pointer()) != 0;
+        const Hash *hash;
+
+        GET_ATTR_hash(interp, SELF, hash);
+
+        return parrot_hash_size(INTERP, hash) != 0;
     }
 /*
 
@@ -111,11 +122,15 @@
 */
 
     VTABLE void set_pmc_keyed(PMC *key, PMC *value) {
-        Hash       * const hash = (Hash *)SELF.get_pointer();
-        void       *oldval      = parrot_hash_get(INTERP, hash, key);
-        long        newval      = 1;
+        const void *oldval;
+	long        newval = 1;
+	Hash       *hash;
         UNUSED(value);
 
+        GET_ATTR_hash(interp, SELF, hash);
+
+        oldval = parrot_hash_get(INTERP, hash, key);
+
         if (oldval)
             newval += (long)oldval;
 
@@ -123,14 +138,18 @@
     }
 
     VTABLE void set_integer_keyed(PMC *key, INTVAL value) {
-        Hash *hash = (Hash *)SELF.get_pointer();
+        Hash *hash;
+        GET_ATTR_hash(interp, SELF, hash);
         parrot_hash_put(INTERP, hash, key, (void *)value);
     }
 
     VTABLE void delete_keyed(PMC *key) {
-        Hash       * const hash  = (Hash *)SELF.get_pointer();
-        void              *value = parrot_hash_get(INTERP, hash, key);
+        Hash       *hash;
+        void       *value;
 
+        GET_ATTR_hash(interp, SELF, hash);
+        value = parrot_hash_get(INTERP, hash, key);
+
         /* these casts look bad, but they avoid type punning warnings with -O */
         if (value) {
             long val = (long)value;

}}}
"	patch	closed	normal		core	1.8.0	medium	fixed				new	
