Author: cotto Date: Wed Jan 21 06:07:37 2009 New Revision: 35863 Modified: trunk/src/global.c trunk/src/pmc/boolean.pmc trunk/src/pmc/integer.pmc trunk/src/pmc/iterator.pmc trunk/src/pmc/string.pmc
Log: [pmc] another batch of PMC_x_val -> VTABLE conversions Modified: trunk/src/global.c ============================================================================== --- trunk/src/global.c (original) +++ trunk/src/global.c Wed Jan 21 06:07:37 2009 @@ -780,7 +780,8 @@ return nsroot; /* If we have a String, do a string lookup */ else if (nsname->vtable->base_type == enum_class_String) - return Parrot_make_namespace_keyed_str(interp, nsroot, PMC_str_val(nsname)); + return Parrot_make_namespace_keyed_str(interp, nsroot, + VTABLE_get_string(interp,nsname)); /* Otherwise, do a PMC lookup */ else return Parrot_make_namespace_keyed(interp, nsroot, nsname); Modified: trunk/src/pmc/boolean.pmc ============================================================================== --- trunk/src/pmc/boolean.pmc (original) +++ trunk/src/pmc/boolean.pmc Wed Jan 21 06:07:37 2009 @@ -41,7 +41,7 @@ PMC * const res = pmc_new(interp, enum_class_Boolean); if (argcP) - PMC_int_val(res) = VTABLE_get_bool(interp, REG_PMC(interp, 5)); + SELF.set_bool(VTABLE_get_bool(interp, REG_PMC(interp, 5))); return PMCNULL; /* TODO */ } @@ -90,7 +90,7 @@ */ VTABLE void set_number_native(FLOATVAL value) { - PMC_int_val(SELF) = !FLOAT_IS_ZERO(value); + SELF.set_bool(!FLOAT_IS_ZERO(value)); } /* @@ -104,7 +104,7 @@ */ VTABLE void set_string_native(STRING *value) { - PMC_int_val(SELF) = string_bool(INTERP, value); + SELF.set_bool(string_bool(INTERP, value)); } } Modified: trunk/src/pmc/integer.pmc ============================================================================== --- trunk/src/pmc/integer.pmc (original) +++ trunk/src/pmc/integer.pmc Wed Jan 21 06:07:37 2009 @@ -93,7 +93,7 @@ VTABLE void init() { - PMC_int_val(SELF) = 0; + SELF.set_integer_native(0); } @@ -114,7 +114,7 @@ : pmc_new(INTERP, type); /* RT #46623 bigint overflow */ - PMC_int_val(res) = string_to_int(INTERP, rep); + VTABLE_set_integer_native(INTERP, res, string_to_int(INTERP, rep)); return res; } @@ -130,7 +130,7 @@ */ VTABLE void set_pmc(PMC *value) { - PMC_int_val(SELF) = VTABLE_get_integer(INTERP, value); + SELF.set_integer_native(VTABLE_get_integer(INTERP, value)); } @@ -252,7 +252,7 @@ */ VTABLE void set_integer_same(PMC *value) { - PMC_int_val(SELF) = VTABLE_get_integer(INTERP, value); + SELF.set_integer_native(VTABLE_get_integer(INTERP, value)); } @@ -1342,7 +1342,7 @@ VTABLE void freeze(visit_info *info) { IMAGE_IO * const io = info->image_io; SUPER(info); - VTABLE_push_integer(INTERP, io, PMC_int_val(SELF)); + VTABLE_push_integer(INTERP, io, SELF.get_integer()); } @@ -1359,7 +1359,7 @@ IMAGE_IO * const io = info->image_io; SUPER(info); if (info->extra_flags == EXTRA_IS_NULL) - PMC_int_val(SELF) = VTABLE_shift_integer(INTERP, io); + SELF.set_integer_native(VTABLE_shift_integer(INTERP, io)); } } Modified: trunk/src/pmc/iterator.pmc ============================================================================== --- trunk/src/pmc/iterator.pmc (original) +++ trunk/src/pmc/iterator.pmc Wed Jan 21 06:07:37 2009 @@ -125,8 +125,8 @@ pobject_lives(INTERP, (PObj *)PMC_struct_val(SELF)); /* the aggregate */ - if (PMC_pmc_val(SELF)) - pobject_lives(INTERP, (PObj *)PMC_pmc_val(SELF)); + if (SELF.get_pmc() != PMCNULL) + pobject_lives(INTERP, (PObj *)SELF.get_pmc()); } /* @@ -143,7 +143,7 @@ STRING *name = CONST_STRING(interp, "set_key"); PMC * const key = (PMC *)PMC_struct_val(SELF); PMC * const res = pmc_new_init(INTERP, SELF->vtable->base_type, - PMC_pmc_val(SELF)); + SELF.get_pmc()); Parrot_PCCINVOKE(interp, res, name, "P->", VTABLE_clone(interp, key)); return res; } @@ -187,7 +187,7 @@ */ VTABLE INTVAL get_integer_keyed(PMC *key) { - return VTABLE_get_integer_keyed(INTERP, PMC_pmc_val(SELF), key); + return VTABLE_get_integer_keyed(INTERP, SELF.get_pmc(), key); } /* @@ -202,7 +202,7 @@ VTABLE INTVAL get_integer_keyed_int(INTVAL idx) { PMC * const key = (PMC *)PMC_struct_val(SELF); - PMC * const agg = PMC_pmc_val(SELF); + PMC * const agg = SELF.get_pmc(); return VTABLE_get_integer_keyed_int(INTERP, agg, PMC_int_val(key) +idx); } @@ -215,7 +215,7 @@ */ VTABLE FLOATVAL get_number_keyed(PMC *key) { - return VTABLE_get_number_keyed(INTERP, PMC_pmc_val(SELF), key); + return VTABLE_get_number_keyed(INTERP, SELF.get_pmc(), key); } /* @@ -230,7 +230,7 @@ VTABLE FLOATVAL get_number_keyed_int(INTVAL idx) { PMC * const key = (PMC *)PMC_struct_val(SELF); - PMC * const agg = PMC_pmc_val(SELF); + PMC * const agg = SELF.get_pmc(); return VTABLE_get_number_keyed_int(INTERP, agg, PMC_int_val(key) + idx); } @@ -245,7 +245,7 @@ */ VTABLE STRING *get_string_keyed(PMC *key) { - return VTABLE_get_string_keyed(INTERP, PMC_pmc_val(SELF), key); + return VTABLE_get_string_keyed(INTERP, SELF.get_pmc(), key); } /* @@ -260,7 +260,7 @@ VTABLE STRING *get_string_keyed_int(INTVAL idx) { PMC * const key = (PMC *)PMC_struct_val(SELF); - PMC * const agg = PMC_pmc_val(SELF); + PMC * const agg = SELF.get_pmc(); return VTABLE_get_string_keyed_int(INTERP, agg, PMC_int_val(key) + idx); } @@ -290,11 +290,24 @@ */ VTABLE INTVAL elements() { - return VTABLE_elements(INTERP, PMC_pmc_val(SELF)); + return VTABLE_elements(INTERP, SELF.get_pmc()); } /* +=item C<PMC *get_pmc()> + +Returns this Interator's aggregate. + +=cut + +*/ + + VTABLE PMC *get_pmc() { + return PMC_pmc_val(SELF) ? PMC_pmc_val(SELF) : PMCNULL; + } + +/* =item C<PMC *get_pmc_keyed(PMC *key)> Returns the element for C<*key>. @@ -304,7 +317,7 @@ */ VTABLE PMC *get_pmc_keyed(PMC *key) { - return VTABLE_get_pmc_keyed(INTERP, PMC_pmc_val(SELF), key); + return VTABLE_get_pmc_keyed(INTERP, SELF.get_pmc(), key); } /* @@ -319,7 +332,7 @@ VTABLE PMC *get_pmc_keyed_int(INTVAL idx) { PMC * const key = (PMC *)PMC_struct_val(SELF); - PMC * const agg = PMC_pmc_val(SELF); + PMC * const agg = SELF.get_pmc(); return VTABLE_get_pmc_keyed_int(INTERP, agg, PMC_int_val(key) + idx); } @@ -344,7 +357,7 @@ "Illegal set_integer on iterator"); /* reset iterator on aggregate */ - agg = PMC_pmc_val(SELF); + agg = SELF.get_pmc(); if (agg->vtable->base_type == enum_class_Slice) { /* it's an xrange serving as its own aggregate */ @@ -372,7 +385,7 @@ VTABLE INTVAL pop_integer() { PMC * const key = (PMC *)PMC_struct_val(SELF); - PMC * const agg = PMC_pmc_val(SELF); + PMC * const agg = SELF.get_pmc(); const INTVAL ret = VTABLE_get_integer_keyed(INTERP, agg, key); PMC_struct_val(SELF) = VTABLE_nextkey_keyed(INTERP, key, agg, ITERATE_GET_PREV); @@ -390,7 +403,7 @@ VTABLE FLOATVAL pop_float() { PMC * const key = (PMC *)PMC_struct_val(SELF); - PMC * const agg = PMC_pmc_val(SELF); + PMC * const agg = SELF.get_pmc(); const FLOATVAL ret = VTABLE_get_number_keyed(INTERP, agg, key); PMC_struct_val(SELF) = VTABLE_nextkey_keyed(INTERP, key, agg, ITERATE_GET_PREV); @@ -408,7 +421,7 @@ VTABLE STRING *pop_string() { PMC * const key = (PMC *)PMC_struct_val(SELF); - PMC * const agg = PMC_pmc_val(SELF); + PMC * const agg = SELF.get_pmc(); STRING * const ret = VTABLE_get_string_keyed(INTERP, agg, key); PMC_struct_val(SELF) = VTABLE_nextkey_keyed(INTERP, key, agg, ITERATE_GET_PREV); @@ -428,7 +441,7 @@ VTABLE PMC *pop_pmc() { PMC * const key = (PMC *)PMC_struct_val(SELF); - PMC * const agg = PMC_pmc_val(SELF); + PMC * const agg = SELF.get_pmc(); PMC * const ret = VTABLE_get_pmc_keyed(INTERP, agg, key); PMC_struct_val(SELF) = VTABLE_nextkey_keyed(INTERP, key, agg, ITERATE_GET_PREV); @@ -449,7 +462,7 @@ VTABLE INTVAL shift_integer() { PMC * const key = (PMC *)PMC_struct_val(SELF); - PMC * const agg = PMC_pmc_val(SELF); + PMC * const agg = SELF.get_pmc(); const INTVAL ret = VTABLE_get_integer_keyed(INTERP, agg, key); PMC_struct_val(SELF) = VTABLE_nextkey_keyed(INTERP, key, agg, ITERATE_GET_NEXT); @@ -497,7 +510,7 @@ REG_INT(interp, 3) = REG_INT(interp, 4) = 0; - agg = PMC_pmc_val(SELF); + agg = SELF.get_pmc(); if (agg->vtable->base_type == enum_class_IntList) { const INTVAL ires = SELF.shift_integer(); @@ -523,7 +536,7 @@ VTABLE FLOATVAL shift_float() { PMC * const key = (PMC *)PMC_struct_val(SELF); - PMC * const agg = PMC_pmc_val(SELF); + PMC * const agg = SELF.get_pmc(); const FLOATVAL ret = VTABLE_get_number_keyed(INTERP, agg, key); PMC_struct_val(SELF) = VTABLE_nextkey_keyed(INTERP, key, agg, ITERATE_GET_NEXT); @@ -541,7 +554,7 @@ VTABLE STRING *shift_string() { PMC * const key = (PMC *)PMC_struct_val(SELF); - PMC * const agg = PMC_pmc_val(SELF); + PMC * const agg = SELF.get_pmc(); STRING * const ret = VTABLE_get_string_keyed(INTERP, agg, key); PMC_struct_val(SELF) = VTABLE_nextkey_keyed(INTERP, key, agg, ITERATE_GET_NEXT); @@ -561,7 +574,7 @@ VTABLE PMC *shift_pmc() { PMC * const key = (PMC *)PMC_struct_val(SELF); - PMC * const agg = PMC_pmc_val(SELF); + PMC * const agg = SELF.get_pmc(); PMC *ret; if (PMC_int_val(key) == -1) @@ -587,7 +600,7 @@ */ VTABLE INTVAL exists_keyed(PMC *key) { - return VTABLE_exists_keyed(INTERP, PMC_pmc_val(SELF), key); + return VTABLE_exists_keyed(INTERP, SELF.get_pmc(), key); } /* @@ -602,7 +615,7 @@ VTABLE INTVAL exists_keyed_int(INTVAL idx) { PMC * const key = (PMC *)PMC_struct_val(SELF); - PMC * const agg = PMC_pmc_val(SELF); + PMC * const agg = SELF.get_pmc(); return VTABLE_exists_keyed_int(INTERP, agg, PMC_int_val(key) + idx); } @@ -617,7 +630,7 @@ */ VTABLE INTVAL defined() { - return (INTVAL)(PMC_pmc_val(SELF) != 0); + return (INTVAL)(SELF.get_pmc() != PMCNULL); } /* @@ -629,7 +642,7 @@ */ VTABLE INTVAL defined_keyed(PMC *key) { - return VTABLE_defined_keyed(INTERP, PMC_pmc_val(SELF), key); + return VTABLE_defined_keyed(INTERP, SELF.get_pmc(), key); } /* @@ -644,7 +657,7 @@ VTABLE INTVAL defined_keyed_int(INTVAL idx) { PMC * const key = (PMC *)PMC_struct_val(SELF); - PMC * const agg = PMC_pmc_val(SELF); + PMC * const agg = SELF.get_pmc(); return VTABLE_defined_keyed_int(INTERP, agg, PMC_int_val(key) + idx); } Modified: trunk/src/pmc/string.pmc ============================================================================== --- trunk/src/pmc/string.pmc (original) +++ trunk/src/pmc/string.pmc Wed Jan 21 06:07:37 2009 @@ -89,7 +89,7 @@ VTABLE PMC *clone() { PMC * const dest = pmc_new_noinit(INTERP, SELF->vtable->base_type); PObj_custom_mark_SET(dest); - PMC_str_val(dest) = string_copy(INTERP, SELF.get_string()); + VTABLE_set_string_native(INTERP, dest, string_copy(INTERP, SELF.get_string())); return dest; } @@ -235,7 +235,7 @@ */ VTABLE void assign_string_native(STRING *value) { - PMC_str_val(SELF) = string_set(INTERP, PMC_str_val(SELF), value); + PMC_str_val(SELF) = string_set(INTERP, SELF.get_string(), value); } /*