Author: allison
Date: Fri Dec 26 01:15:06 2008
New Revision: 34370
Modified:
branches/remove_pic/src/interpreter.c
Log:
[remove_pic] The call to 'parrot_PIC_prederef' was deleted in the refactor to
remove PIC, but that function contained some needed functionality.
Reintegrating the two critical lines of code inline. (Refer to RT #60048 for
more discussion.) After this fix t/run/options.t passes all tests.
Modified: branches/remove_pic/src/interpreter.c
==============================================================================
--- branches/remove_pic/src/interpreter.c (original)
+++ branches/remove_pic/src/interpreter.c Fri Dec 26 01:15:06 2008
@@ -282,9 +282,14 @@
switch (type) {
case PARROT_SWITCH_CORE:
case PARROT_SWITCH_JIT_CORE:
+ *pc_prederef = (void **)*pc;
+ break;
+
case PARROT_CGP_CORE:
case PARROT_CGP_JIT_CORE:
+ *pc_prederef = ((void **)interp->op_lib->op_func_table)[*pc];
break;
+
default:
Parrot_ex_throw_from_c_args(interp, NULL, 1,
"Tried to prederef wrong core");