[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