Hi there,

I'm seeing method name truncation when trying to run code of the form:

    .local pmc app
    .local int app_type

    find_type app_type, 'SDL::App'
    app = new app_type, app_args

    .local pmc main_screen
    main_screen = app.'surface'()

surface() calls _new() on another object which calls layout() on the
invocant.  With the following patch applied (for debugging purposes, not
intended for application), i receive the following error message:

    looking for 'surface'
    looking for '_new'
    looking for 'layou'
    Method 'layou' not found
        in file '(unknown file)' near line -1

Without the patch, I only receive the exception.

Dumping the code to PIR reveals that the method names are correct
there.  I was unable to track down anything in the PIR parser that was
helpful.

The total code is fairly large, so I'm loathe to post it to the list. 
It is in the tarballs I sent out a few days ago though.

Any suggestions are welcome, even if you ask me to run more diagnostics
(and especially if you suggest where).

-- c


Index: ops/object.ops
===================================================================
RCS file: /cvs/public/parrot/ops/object.ops,v
retrieving revision 1.43
diff -u -u -r1.43 object.ops
--- ops/object.ops	4 Apr 2004 14:18:18 -0000	1.43
+++ ops/object.ops	15 Apr 2004 06:09:36 -0000
@@ -112,6 +112,7 @@
   PMC *method_pmc;
   opcode_t *next = expr NEXT();
 
+  printf( "looking for '%s'\n", string_to_cstring( interpreter, $1 ));
   REG_STR(0) = $1;
   REG_PMC(1) = new_ret_continuation_pmc(interpreter, next);
 

Reply via email to