[svn:parrot] r49406 - trunk/src/runcore
plobsing at svn.parrot.org
plobsing at svn.parrot.org
Sat Oct 2 03:48:11 UTC 2010
Author: plobsing
Date: Sat Oct 2 03:48:10 2010
New Revision: 49406
URL: https://trac.parrot.org/parrot/changeset/49406
Log:
fix trace core for dynop_mapping
Modified:
trunk/src/runcore/trace.c
Modified: trunk/src/runcore/trace.c
==============================================================================
--- trunk/src/runcore/trace.c Sat Oct 2 02:44:30 2010 (r49405)
+++ trunk/src/runcore/trace.c Sat Oct 2 03:48:10 2010 (r49406)
@@ -28,6 +28,7 @@
#include "parrot/context.h"
#include "pmc/pmc_sub.h"
#include "pmc/pmc_callcontext.h"
+#include "parrot/oplib/core_ops.h"
/* HEADERIZER HFILE: include/parrot/runcore_trace.h */
@@ -298,6 +299,7 @@
ASSERT_ARGS(trace_op_dump)
Interp * const debugger = debugger_or_interp(interp);
op_info_t * const info = interp->code->op_info_table[*pc];
+ op_lib_t * core_ops = PARROT_GET_CORE_OPLIB(interp);
PMC *sig = PMCNULL;
INTVAL n = info->op_count;
INTVAL s = 1;
@@ -309,10 +311,10 @@
#define ARGS_COLUMN 40
- if (*pc == PARROT_OP_set_args_pc
- || *pc == PARROT_OP_get_results_pc
- || *pc == PARROT_OP_get_params_pc
- || *pc == PARROT_OP_set_returns_pc) {
+ if (OPCODE_IS(interp, interp->code, *pc, core_ops, PARROT_OP_set_args_pc)
+ || OPCODE_IS(interp, interp->code, *pc, core_ops, PARROT_OP_get_results_pc)
+ || OPCODE_IS(interp, interp->code, *pc, core_ops, PARROT_OP_get_params_pc)
+ || OPCODE_IS(interp, interp->code, *pc, core_ops, PARROT_OP_set_returns_pc)) {
sig = interp->code->const_table->pmc.constants[pc[1]];
if (!sig)
@@ -333,7 +335,7 @@
if (i < info->op_count)
type = info->types[i - 1];
else {
- if (!sig)
+ if (PMC_IS_NULL(sig))
Parrot_ex_throw_from_c_args(interp, NULL, 1,
"NULL sig PMC detected in trace_op_dump");
More information about the parrot-commits
mailing list