[svn:parrot] r47148 - trunk/src/ops

jonathan at svn.parrot.org jonathan at svn.parrot.org
Sun May 30 12:58:11 UTC 2010


Author: jonathan
Date: Sun May 30 12:58:10 2010
New Revision: 47148
URL: https://trac.parrot.org/parrot/changeset/47148

Log:
[core] One more tweak for better annotation reporting, from feedback by masak++; this gets us able to identify the correct line number that a failed sub call happened on.

Modified:
   trunk/src/ops/core_ops.c
   trunk/src/ops/var.ops

Modified: trunk/src/ops/core_ops.c
==============================================================================
--- trunk/src/ops/core_ops.c	Sun May 30 11:21:33 2010	(r47147)
+++ trunk/src/ops/core_ops.c	Sun May 30 12:58:10 2010	(r47148)
@@ -14343,7 +14343,7 @@
 
     if (!PMC_IS_NULL(signature))
         Parrot_pcc_set_object(interp, signature, NULL);
-    interp->current_cont   = NEED_CONTINUATION;    
+    interp->current_cont   = NEED_CONTINUATION;
     dest                   = VTABLE_invoke(interp, p, dest);return (opcode_t *)dest;
 }
 
@@ -23292,7 +23292,9 @@
     PMC *sub = Parrot_find_name_op(interp, SREG(2), dest);
 
     if (PMC_IS_NULL(sub)) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, dest,
+        opcode_t *handler;
+        Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), dest);
+        handler = Parrot_ex_throw_from_op_args(interp, dest,
                        EXCEPTION_GLOBAL_NOT_FOUND,
                        "Could not find sub %Ss", SREG(2));return (opcode_t *)handler;
     }
@@ -23308,7 +23310,9 @@
     PMC *sub = Parrot_find_name_op(interp, CONST(2)->u.string, dest);
 
     if (PMC_IS_NULL(sub)) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, dest,
+        opcode_t *handler;
+        Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), dest);
+        handler = Parrot_ex_throw_from_op_args(interp, dest,
                        EXCEPTION_GLOBAL_NOT_FOUND,
                        "Could not find sub %Ss", CONST(2)->u.string);return (opcode_t *)handler;
     }

Modified: trunk/src/ops/var.ops
==============================================================================
--- trunk/src/ops/var.ops	Sun May 30 11:21:33 2010	(r47147)
+++ trunk/src/ops/var.ops	Sun May 30 12:58:10 2010	(r47148)
@@ -482,7 +482,9 @@
     PMC *sub = Parrot_find_name_op(interp, $2, dest);
 
     if (PMC_IS_NULL(sub)) {
-        opcode_t *handler = Parrot_ex_throw_from_op_args(interp, dest,
+        opcode_t *handler;
+        Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), dest);
+        handler = Parrot_ex_throw_from_op_args(interp, dest,
                        EXCEPTION_GLOBAL_NOT_FOUND,
                        "Could not find sub %Ss", $2);
         goto ADDRESS(handler);


More information about the parrot-commits mailing list