cvsuser     04/10/16 07:18:36

  Modified:    .        CREDITS
               src      objects.c
  Log:
  [perl #31987] Should predefined pmcs inherit nci methods?
  
  Fix PMC method lookup.
  
  Courtesy of Sam Ruby <[EMAIL PROTECTED]>
  
  Revision  Changes    Path
  1.34      +3 -0      parrot/CREDITS
  
  Index: CREDITS
  ===================================================================
  RCS file: /cvs/public/parrot/CREDITS,v
  retrieving revision 1.33
  retrieving revision 1.34
  diff -u -w -r1.33 -r1.34
  --- CREDITS   6 Oct 2004 12:58:20 -0000       1.33
  +++ CREDITS   16 Oct 2004 14:18:35 -0000      1.34
  @@ -272,6 +272,9 @@
   N: Ron Blaschke
   D: Win32 patches
   
  +N: Sam Ruby
  +D: Pythonic and OO patches
  +
   N: Sean O'Rourke
   D: Original Perl6 compiler
   
  
  
  
  1.119     +12 -15    parrot/src/objects.c
  
  Index: objects.c
  ===================================================================
  RCS file: /cvs/public/parrot/src/objects.c,v
  retrieving revision 1.118
  retrieving revision 1.119
  diff -u -w -r1.118 -r1.119
  --- objects.c 22 Sep 2004 09:21:45 -0000      1.118
  +++ objects.c 16 Oct 2004 14:18:36 -0000      1.119
  @@ -1,6 +1,6 @@
   /*
   Copyright: 2001-2003 The Perl Foundation.  All Rights Reserved.
  -$Id: objects.c,v 1.118 2004/09/22 09:21:45 leo Exp $
  +$Id: objects.c,v 1.119 2004/10/16 14:18:36 leo Exp $
   
   =head1 NAME
   
  @@ -1235,23 +1235,20 @@
            * TODO check vtable standard names
            */
           start = class_name->strlen + 1;
  -        for (isa = class->vtable->isa_str; ;) {
  -            if (isa->strlen <= start)
  -                break;
  +        isa = class->vtable->isa_str;
  +        while (isa->strlen > start) {
               pos = string_str_index(interpreter, isa,
                       CONST_STRING(interpreter, " "), start);
  -            if (pos == -1) {
  +            if (pos == -1) pos=isa->strlen;
                   method = Parrot_find_global(interpreter,
                           string_substr(interpreter, isa, start,
  -                            isa->strlen - start, NULL, 0),
  +                        pos - start, NULL, 0),
                           method_name);
                   TRACE_FM(interpreter, class, method_name, method);
                   if (method) {
                       return method;
                   }
  -            }
  -            /* TODO */
  -            break;
  +            start = pos + 1;
           }
           /* finally look in namespace "object" */
           method =  Parrot_find_global(interpreter,
  
  
  

Reply via email to