[svn:parrot] r43377 - branches/pmc_freeze_cleanup/src/pmc

plobsing at svn.parrot.org plobsing at svn.parrot.org
Sun Jan 3 04:02:02 UTC 2010


Author: plobsing
Date: Sun Jan  3 04:01:59 2010
New Revision: 43377
URL: https://trac.parrot.org/parrot/changeset/43377

Log:
deal properly with PMC_metadata (prophash) being PMCNULL

Modified:
   branches/pmc_freeze_cleanup/src/pmc/default.pmc

Modified: branches/pmc_freeze_cleanup/src/pmc/default.pmc
==============================================================================
--- branches/pmc_freeze_cleanup/src/pmc/default.pmc	Sat Jan  2 23:04:09 2010	(r43376)
+++ branches/pmc_freeze_cleanup/src/pmc/default.pmc	Sun Jan  3 04:01:59 2010	(r43377)
@@ -370,10 +370,10 @@
 */
 
     VTABLE PMC *getprop(STRING *key) {
-        if (PMC_metadata(SELF))
-            return VTABLE_get_pmc_keyed_str(INTERP, PMC_metadata(SELF), key);
-        else
+        if (PMC_IS_NULL(PMC_metadata(SELF)))
             return check_get_std_props(interp, SELF, key);
+        else
+            return VTABLE_get_pmc_keyed_str(INTERP, PMC_metadata(SELF), key);
     }
 
 /*
@@ -390,13 +390,10 @@
         if (check_set_std_props(INTERP, SELF, key, value))
             return;
 
-        if (PMC_metadata(SELF))
-            VTABLE_set_pmc_keyed_str(INTERP, PMC_metadata(SELF), key, value);
-        else {
-            PMC * const prop = make_prop_hash(INTERP, SELF);
+        if (PMC_IS_NULL(PMC_metadata(SELF)))
+            make_prop_hash(INTERP, SELF);
 
-            VTABLE_set_pmc_keyed_str(INTERP, prop, key, value);
-        }
+        VTABLE_set_pmc_keyed_str(INTERP, PMC_metadata(SELF), key, value);
     }
 
 /*
@@ -410,7 +407,7 @@
 */
 
     VTABLE void delprop(STRING *key) {
-        if (PMC_metadata(SELF))
+        if (!PMC_IS_NULL(PMC_metadata(SELF)))
             VTABLE_delete_keyed_str(INTERP, PMC_metadata(SELF), key);
     }
 
@@ -425,7 +422,7 @@
 */
 
     VTABLE PMC *getprops() {
-        if (!PMC_metadata(SELF)) {
+        if (PMC_IS_NULL(PMC_metadata(SELF))) {
             if (has_pending_std_props(SELF))
                 return make_prop_hash(INTERP, SELF);
             else


More information about the parrot-commits mailing list