Author: allison
Date: Tue Oct 2 15:26:09 2007
New Revision: 21763
Modified:
branches/pdd15oo/src/pmc/fixedpmcarray.pmc
branches/pdd15oo/src/pmc/resizablepmcarray.pmc
Log:
[pdd15oo] Add checks for a null return value from indexed array access.
Modified: branches/pdd15oo/src/pmc/fixedpmcarray.pmc
==============================================================================
--- branches/pdd15oo/src/pmc/fixedpmcarray.pmc (original)
+++ branches/pdd15oo/src/pmc/fixedpmcarray.pmc Tue Oct 2 15:26:09 2007
@@ -283,6 +283,8 @@
INTVAL get_integer_keyed_int(INTVAL key) {
PMC *tempPMC = DYNSELF.get_pmc_keyed_int(key);
+ if (PMC_IS_NULL(tempPMC))
+ return 0;
return VTABLE_get_integer(INTERP, tempPMC);
}
@@ -343,6 +345,8 @@
STRING *get_string_keyed_int(INTVAL key) {
PMC *tempPMC = DYNSELF.get_pmc_keyed_int(key);
+ if (PMC_IS_NULL(tempPMC))
+ return string_from_literal(interp, "");
return VTABLE_get_string(INTERP, tempPMC);
}
Modified: branches/pdd15oo/src/pmc/resizablepmcarray.pmc
==============================================================================
--- branches/pdd15oo/src/pmc/resizablepmcarray.pmc (original)
+++ branches/pdd15oo/src/pmc/resizablepmcarray.pmc Tue Oct 2 15:26:09 2007
@@ -208,7 +208,7 @@
data = PMC_data_typed(SELF, PMC **);
if (PMC_IS_NULL(data[key]))
- data[key] = PMCNULL;
+ return PMCNULL;
return data[key];
}