cvsuser     04/03/21 08:18:29

  Modified:    src      objects.c
  Log:
  classoffset speed up
  
  Revision  Changes    Path
  1.64      +16 -1     parrot/src/objects.c
  
  Index: objects.c
  ===================================================================
  RCS file: /cvs/public/parrot/src/objects.c,v
  retrieving revision 1.63
  retrieving revision 1.64
  diff -u -w -r1.63 -r1.64
  --- objects.c 21 Mar 2004 11:07:33 -0000      1.63
  +++ objects.c 21 Mar 2004 16:18:29 -0000      1.64
  @@ -1,6 +1,6 @@
   /*
   Copyright: 2001-2003 The Perl Foundation.  All Rights Reserved.
  -$Id: objects.c,v 1.63 2004/03/21 11:07:33 leo Exp $
  +$Id: objects.c,v 1.64 2004/03/21 16:18:29 leo Exp $
   
   =head1 NAME
   
  @@ -1085,17 +1085,32 @@
       PMC *offset_hash;
       PMC *class_pmc;
       INTVAL offset;
  +    HashBucket *b;
   
       class_pmc = get_attrib_num((SLOTTYPE *)PMC_data(object),
                                  POD_CLASS);
       offset_hash = get_attrib_num((SLOTTYPE *)PMC_data(class_pmc),
                                    PCD_ATTRIB_OFFS);
  +#if 0
       if (VTABLE_exists_keyed_str(interpreter, offset_hash, class)) {
           offset = VTABLE_get_integer_keyed_str(interpreter, offset_hash, class);
       }
       else {
           offset = -1;
       }
  +#else
  +    /*
  +     * cheat a bit--the offset_hash is an OrderedHash PMC
  +     */
  +    b = hash_get_bucket(interpreter,
  +                (Hash*) PMC_struct_val(offset_hash), class);
  +    if (!b)
  +        offset = -1;
  +    else {
  +        offset = VTABLE_get_integer_keyed_int(interpreter, offset_hash,
  +                PMC_int_val((PMC*)b->value));
  +    }
  +#endif
       return offset;
   }
   
  
  
  

Reply via email to