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) {
  
  
  

Reply via email to