[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