cvsuser     04/04/27 05:00:43

  Modified:    src      objects.c
  Log:
  classoffset speed up
  * classoffset_hash is a plain PerlHash now
  * disabled some duplicate code in class creation or subclassing
  
  Revision  Changes    Path
  1.90      +15 -6     parrot/src/objects.c
  
  Index: objects.c
  ===================================================================
  RCS file: /cvs/public/parrot/src/objects.c,v
  retrieving revision 1.89
  retrieving revision 1.90
  diff -u -w -r1.89 -r1.90
  --- objects.c 27 Apr 2004 06:32:06 -0000      1.89
  +++ objects.c 27 Apr 2004 12:00:43 -0000      1.90
  @@ -1,6 +1,6 @@
   /*
   Copyright: 2001-2003 The Perl Foundation.  All Rights Reserved.
  -$Id: objects.c,v 1.89 2004/04/27 06:32:06 leo Exp $
  +$Id: objects.c,v 1.90 2004/04/27 12:00:43 leo Exp $
   
   =head1 NAME
   
  @@ -130,7 +130,7 @@
   
       class_slots = PMC_data(class);
       attr_offset_hash = pmc_new(interpreter, enum_class_OrderedHash);
  -    class_offset_hash = pmc_new(interpreter, enum_class_OrderedHash);
  +    class_offset_hash = pmc_new(interpreter, enum_class_PerlHash);
       parent_array = get_attrib_num(class_slots, PCD_ALL_PARENTS);
       parent_class_count = VTABLE_elements(interpreter, parent_array);
   
  @@ -296,6 +296,11 @@
       VTABLE_unshift_pmc(interpreter, temp_pmc, base_class);
       set_attrib_num(child_class_array, PCD_ALL_PARENTS, temp_pmc);
   
  +#if 0
  +    /*
  +     * recreated in rebuild_attrib_stuff
  +     * -leo
  +     */
       /* Our attribute list is our parent's attribute list */
       temp_pmc = clone_array(interpreter,
                              get_attrib_num((SLOTTYPE *)PMC_data(base_class),
  @@ -307,6 +312,7 @@
                              get_attrib_num((SLOTTYPE *)PMC_data(base_class),
                                             PCD_ATTRIBUTES));
       set_attrib_num(child_class_array, PCD_ATTRIBUTES, temp_pmc);
  +#endif
   
       /* But we have no attributes of our own. Yet */
       temp_pmc = pmc_new(interpreter, enum_class_Array);
  @@ -349,15 +355,19 @@
                      pmc_new(interpreter, enum_class_Array));
       set_attrib_num(class_array, PCD_ALL_PARENTS,
                      pmc_new(interpreter, enum_class_Array));
  +#if 0
  +    /* these two are created in rebuild_attrib_stuf
  +     * -leo
  +     */
       set_attrib_num(class_array, PCD_ATTRIB_OFFS,
               pmc_new(interpreter, enum_class_OrderedHash));
       set_attrib_num(class_array, PCD_ATTRIBUTES,
               pmc_new(interpreter, enum_class_OrderedHash));
  +#endif
       set_attrib_num(class_array, PCD_CLASS_ATTRIBUTES,
               pmc_new(interpreter, enum_class_Array));
   
   
  -
       /* Set the classname, if we have one */
       classname_pmc = pmc_new(interpreter, enum_class_PerlString);
       VTABLE_set_string_native(interpreter, classname_pmc, class_name);
  @@ -1279,15 +1289,14 @@
       }
   #else
       /*
  -     * cheat a bit--the offset_hash is an OrderedHash PMC
  +     * cheat a bit--the offset_hash is a PerlHash 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));
  +        return PMC_int_val((PMC*)b->value);
       }
   #endif
       return offset;
  
  
  

Reply via email to