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,