cvsuser 03/07/20 01:35:19
Modified: classes sarray.pmc
Log:
gcc 3.2 workaround by Luke Palmer
Revision Changes Path
1.8 +17 -13 parrot/classes/sarray.pmc
Index: sarray.pmc
===================================================================
RCS file: /cvs/public/parrot/classes/sarray.pmc,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -w -r1.7 -r1.8
--- sarray.pmc 14 Jul 2003 09:54:48 -0000 1.7
+++ sarray.pmc 20 Jul 2003 08:35:19 -0000 1.8
@@ -1,7 +1,7 @@
/* sarray.pmc
* Copyright: (When this is determined...it will go here)
* CVS Info
- * $Id: sarray.pmc,v 1.7 2003/07/14 09:54:48 leo Exp $
+ * $Id: sarray.pmc,v 1.8 2003/07/20 08:35:19 leo Exp $
* Overview:
* These are the vtable functions for the SArray base class
* Data Structure and Algorithms:
@@ -145,13 +145,14 @@
INTVAL shift_integer() {
HASH_ENTRY *e = (HASH_ENTRY *) PMC_data(SELF);
+ HASH_ENTRY *ret;
if (e[0].val.int_val >= e[1].val.int_val)
internal_exception(OUT_OF_BOUNDS, "SArray index out of bounds!\n");
- e = (HASH_ENTRY *) PMC_data(SELF) + (2 + e[0].val.int_val++);
- if (e->type != enum_hash_int)
+ ret = (HASH_ENTRY *) PMC_data(SELF) + (2 + e[0].val.int_val++);
+ if (ret->type != enum_hash_int)
internal_exception(OUT_OF_BOUNDS, "SArray: Not an integer!\n");
- return e->val.int_val;
+ return ret->val.int_val;
}
FLOATVAL get_number_keyed_int (INTVAL key) {
@@ -175,13 +176,14 @@
FLOATVAL shift_float() {
HASH_ENTRY *e = (HASH_ENTRY *) PMC_data(SELF);
+ HASH_ENTRY *ret;
if (e[0].val.int_val >= e[1].val.int_val)
internal_exception(OUT_OF_BOUNDS, "SArray index out of bounds!\n");
- e = (HASH_ENTRY *) PMC_data(SELF) + (2 + e[0].val.int_val++);
- if (e->type != enum_hash_num)
+ ret = (HASH_ENTRY *) PMC_data(SELF) + (2 + e[0].val.int_val++);
+ if (ret->type != enum_hash_num)
internal_exception(OUT_OF_BOUNDS, "SArray: Not a num!\n");
- return e->val.num_val;
+ return ret->val.num_val;
}
STRING* get_string_keyed_int (INTVAL key) {
@@ -205,13 +207,14 @@
STRING* shift_string() {
HASH_ENTRY *e = (HASH_ENTRY *) PMC_data(SELF);
+ HASH_ENTRY *ret;
if (e[0].val.int_val >= e[1].val.int_val)
internal_exception(OUT_OF_BOUNDS, "SArray index out of bounds!\n");
- e = (HASH_ENTRY *) PMC_data(SELF) + (2 + e[0].val.int_val++);
- if (e->type != enum_hash_string)
+ ret = (HASH_ENTRY *) PMC_data(SELF) + (2 + e[0].val.int_val++);
+ if (ret->type != enum_hash_string)
internal_exception(OUT_OF_BOUNDS, "SArray: Not a string!\n");
- return e->val.string_val;
+ return ret->val.string_val;
}
PMC* get_pmc_keyed_int (INTVAL key) {
@@ -252,13 +255,14 @@
PMC* shift_pmc() {
HASH_ENTRY *e = (HASH_ENTRY *) PMC_data(SELF);
+ HASH_ENTRY *ret;
if (e[0].val.int_val >= e[1].val.int_val)
internal_exception(OUT_OF_BOUNDS, "SArray index out of bounds!\n");
- e = (HASH_ENTRY *) PMC_data(SELF) + (2 + e[0].val.int_val++);
- if (e->type != enum_hash_pmc)
+ ret = (HASH_ENTRY *) PMC_data(SELF) + (2 + e[0].val.int_val++);
+ if (ret->type != enum_hash_pmc)
internal_exception(OUT_OF_BOUNDS, "SArray: Not a pmc!\n");
- return e->val.pmc_val;
+ return ret->val.pmc_val;
}
void set_integer (PMC* value) {