[svn:parrot] r41455 - in branches/pcc_arg_unify_2_0: include/parrot src src/call src/ops

bacek at svn.parrot.org bacek at svn.parrot.org
Thu Sep 24 23:05:32 UTC 2009


Author: bacek
Date: Thu Sep 24 23:05:31 2009
New Revision: 41455
URL: https://trac.parrot.org/parrot/changeset/41455

Log:
Fix some merge errors

Modified:
   branches/pcc_arg_unify_2_0/include/parrot/call.h
   branches/pcc_arg_unify_2_0/src/call/context.c
   branches/pcc_arg_unify_2_0/src/call/pcc.c
   branches/pcc_arg_unify_2_0/src/debug.c
   branches/pcc_arg_unify_2_0/src/exceptions.c
   branches/pcc_arg_unify_2_0/src/ops/core.ops

Modified: branches/pcc_arg_unify_2_0/include/parrot/call.h
==============================================================================
--- branches/pcc_arg_unify_2_0/include/parrot/call.h	Thu Sep 24 23:04:50 2009	(r41454)
+++ branches/pcc_arg_unify_2_0/include/parrot/call.h	Thu Sep 24 23:05:31 2009	(r41455)
@@ -250,7 +250,7 @@
 
 PARROT_EXPORT
 PARROT_WARN_UNUSED_RESULT
-PARROT_CANNOT_RETURN_NULL
+PARROT_CAN_RETURN_NULL
 PMC* Parrot_pcc_build_sig_object_returns_from_op(PARROT_INTERP,
     ARGIN_NULLOK(PMC *signature),
     ARGIN(PMC *raw_sig),
@@ -427,49 +427,49 @@
     && PARROT_ASSERT_ARG(sig)
 #define ASSERT_ARGS_parrot_pass_args __attribute__unused__ int _ASSERT_ARGS_CHECK = \
        PARROT_ASSERT_ARG(interp) \
-    || PARROT_ASSERT_ARG(src_ctx) \
-    || PARROT_ASSERT_ARG(dest_ctx)
+    && PARROT_ASSERT_ARG(src_ctx) \
+    && PARROT_ASSERT_ARG(dest_ctx)
 #define ASSERT_ARGS_Parrot_pcc_build_sig_object_from_op \
      __attribute__unused__ int _ASSERT_ARGS_CHECK = \
        PARROT_ASSERT_ARG(interp) \
-    || PARROT_ASSERT_ARG(raw_sig) \
-    || PARROT_ASSERT_ARG(raw_args)
+    && PARROT_ASSERT_ARG(raw_sig) \
+    && PARROT_ASSERT_ARG(raw_args)
 #define ASSERT_ARGS_Parrot_pcc_build_sig_object_from_varargs \
      __attribute__unused__ int _ASSERT_ARGS_CHECK = \
        PARROT_ASSERT_ARG(interp) \
-    || PARROT_ASSERT_ARG(sig)
+    && PARROT_ASSERT_ARG(sig)
 #define ASSERT_ARGS_Parrot_pcc_build_sig_object_returns_from_op \
      __attribute__unused__ int _ASSERT_ARGS_CHECK = \
        PARROT_ASSERT_ARG(interp) \
-    || PARROT_ASSERT_ARG(raw_sig) \
-    || PARROT_ASSERT_ARG(raw_args)
+    && PARROT_ASSERT_ARG(raw_sig) \
+    && PARROT_ASSERT_ARG(raw_args)
 #define ASSERT_ARGS_Parrot_pcc_fill_params_from_c_args \
      __attribute__unused__ int _ASSERT_ARGS_CHECK = \
        PARROT_ASSERT_ARG(interp) \
-    || PARROT_ASSERT_ARG(call_object) \
-    || PARROT_ASSERT_ARG(signature)
+    && PARROT_ASSERT_ARG(call_object) \
+    && PARROT_ASSERT_ARG(signature)
 #define ASSERT_ARGS_Parrot_pcc_fill_params_from_op \
      __attribute__unused__ int _ASSERT_ARGS_CHECK = \
        PARROT_ASSERT_ARG(interp) \
-    || PARROT_ASSERT_ARG(call_object) \
-    || PARROT_ASSERT_ARG(raw_sig) \
-    || PARROT_ASSERT_ARG(raw_params)
+    && PARROT_ASSERT_ARG(call_object) \
+    && PARROT_ASSERT_ARG(raw_sig) \
+    && PARROT_ASSERT_ARG(raw_params)
 #define ASSERT_ARGS_Parrot_pcc_fill_returns_from_c_args \
      __attribute__unused__ int _ASSERT_ARGS_CHECK = \
        PARROT_ASSERT_ARG(interp) \
-    || PARROT_ASSERT_ARG(call_object) \
-    || PARROT_ASSERT_ARG(signature)
+    && PARROT_ASSERT_ARG(call_object) \
+    && PARROT_ASSERT_ARG(signature)
 #define ASSERT_ARGS_Parrot_pcc_fill_returns_from_op \
      __attribute__unused__ int _ASSERT_ARGS_CHECK = \
        PARROT_ASSERT_ARG(interp) \
-    || PARROT_ASSERT_ARG(call_object) \
-    || PARROT_ASSERT_ARG(raw_sig) \
-    || PARROT_ASSERT_ARG(raw_returns)
+    && PARROT_ASSERT_ARG(call_object) \
+    && PARROT_ASSERT_ARG(raw_sig) \
+    && PARROT_ASSERT_ARG(raw_returns)
 #define ASSERT_ARGS_Parrot_pcc_invoke_from_sig_object \
      __attribute__unused__ int _ASSERT_ARGS_CHECK = \
        PARROT_ASSERT_ARG(interp) \
-    || PARROT_ASSERT_ARG(sub_obj) \
-    || PARROT_ASSERT_ARG(call_object)
+    && PARROT_ASSERT_ARG(sub_obj) \
+    && PARROT_ASSERT_ARG(call_object)
 #define ASSERT_ARGS_Parrot_pcc_invoke_method_from_c_args \
      __attribute__unused__ int _ASSERT_ARGS_CHECK = \
        PARROT_ASSERT_ARG(interp) \
@@ -926,6 +926,12 @@
 
 PARROT_EXPORT
 PARROT_CAN_RETURN_NULL
+PMC* Parrot_pcc_get_caller_sig(PARROT_INTERP, ARGIN(PMC *ctx))
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2);
+
+PARROT_EXPORT
+PARROT_CAN_RETURN_NULL
 Parrot_Context* Parrot_pcc_get_context_struct(PARROT_INTERP,
     ARGIN_NULLOK(PMC *ctx))
         __attribute__nonnull__(1);
@@ -937,6 +943,12 @@
         __attribute__nonnull__(2);
 
 PARROT_EXPORT
+PARROT_CAN_RETURN_NULL
+PMC* Parrot_pcc_get_current_sig(PARROT_INTERP, ARGIN(PMC *ctx))
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2);
+
+PARROT_EXPORT
 PARROT_CANNOT_RETURN_NULL
 FLOATVAL * Parrot_pcc_get_FLOATVAL_reg(PARROT_INTERP,
     ARGIN(PMC *ctx),
@@ -1096,6 +1108,13 @@
         __attribute__nonnull__(3);
 
 PARROT_EXPORT
+void Parrot_pcc_set_caller_sig(PARROT_INTERP,
+    ARGIN(PMC *ctx),
+    ARGIN_NULLOK(PMC *sig))
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2);
+
+PARROT_EXPORT
 PARROT_CAN_RETURN_NULL
 void Parrot_pcc_set_constants(PARROT_INTERP,
     ARGIN(PMC *ctx),
@@ -1111,6 +1130,13 @@
         __attribute__nonnull__(2);
 
 PARROT_EXPORT
+void Parrot_pcc_set_current_sig(PARROT_INTERP,
+    ARGIN(PMC *ctx),
+    ARGIN_NULLOK(PMC *sig))
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2);
+
+PARROT_EXPORT
 void Parrot_pcc_set_handers(PARROT_INTERP,
     ARGIN(PMC *ctx),
     ARGIN(PMC *handlers))
@@ -1314,11 +1340,17 @@
 #define ASSERT_ARGS_Parrot_pcc_get_caller_ctx __attribute__unused__ int _ASSERT_ARGS_CHECK = \
        PARROT_ASSERT_ARG(interp) \
     && PARROT_ASSERT_ARG(ctx)
+#define ASSERT_ARGS_Parrot_pcc_get_caller_sig __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+       PARROT_ASSERT_ARG(interp) \
+    && PARROT_ASSERT_ARG(ctx)
 #define ASSERT_ARGS_Parrot_pcc_get_context_struct __attribute__unused__ int _ASSERT_ARGS_CHECK = \
        PARROT_ASSERT_ARG(interp)
 #define ASSERT_ARGS_Parrot_pcc_get_continuation __attribute__unused__ int _ASSERT_ARGS_CHECK = \
        PARROT_ASSERT_ARG(interp) \
     && PARROT_ASSERT_ARG(ctx)
+#define ASSERT_ARGS_Parrot_pcc_get_current_sig __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+       PARROT_ASSERT_ARG(interp) \
+    && PARROT_ASSERT_ARG(ctx)
 #define ASSERT_ARGS_Parrot_pcc_get_FLOATVAL_reg __attribute__unused__ int _ASSERT_ARGS_CHECK = \
        PARROT_ASSERT_ARG(interp) \
     && PARROT_ASSERT_ARG(ctx)
@@ -1399,12 +1431,18 @@
        PARROT_ASSERT_ARG(interp) \
     && PARROT_ASSERT_ARG(ctx) \
     && PARROT_ASSERT_ARG(caller_ctx)
+#define ASSERT_ARGS_Parrot_pcc_set_caller_sig __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+       PARROT_ASSERT_ARG(interp) \
+    && PARROT_ASSERT_ARG(ctx)
 #define ASSERT_ARGS_Parrot_pcc_set_constants __attribute__unused__ int _ASSERT_ARGS_CHECK = \
        PARROT_ASSERT_ARG(interp) \
     && PARROT_ASSERT_ARG(ctx)
 #define ASSERT_ARGS_Parrot_pcc_set_continuation __attribute__unused__ int _ASSERT_ARGS_CHECK = \
        PARROT_ASSERT_ARG(interp) \
     && PARROT_ASSERT_ARG(ctx)
+#define ASSERT_ARGS_Parrot_pcc_set_current_sig __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+       PARROT_ASSERT_ARG(interp) \
+    && PARROT_ASSERT_ARG(ctx)
 #define ASSERT_ARGS_Parrot_pcc_set_handers __attribute__unused__ int _ASSERT_ARGS_CHECK = \
        PARROT_ASSERT_ARG(interp) \
     && PARROT_ASSERT_ARG(ctx) \

Modified: branches/pcc_arg_unify_2_0/src/call/context.c
==============================================================================
--- branches/pcc_arg_unify_2_0/src/call/context.c	Thu Sep 24 23:04:50 2009	(r41454)
+++ branches/pcc_arg_unify_2_0/src/call/context.c	Thu Sep 24 23:05:31 2009	(r41455)
@@ -783,8 +783,7 @@
 
 /*
 
-=item C<void Parrot_pcc_set_caller_sig(PARROT_INTERP, PMC *ctx, PMC
-*sig)>
+=item C<void Parrot_pcc_set_caller_sig(PARROT_INTERP, PMC *ctx, PMC *sig)>
 
 TODO
 
@@ -823,8 +822,7 @@
 
 /*
 
-=item C<void Parrot_pcc_set_current_sig(PARROT_INTERP, PMC *ctx, PMC
-*sig)>
+=item C<void Parrot_pcc_set_current_sig(PARROT_INTERP, PMC *ctx, PMC *sig)>
 
 TODO
 

Modified: branches/pcc_arg_unify_2_0/src/call/pcc.c
==============================================================================
--- branches/pcc_arg_unify_2_0/src/call/pcc.c	Thu Sep 24 23:04:50 2009	(r41454)
+++ branches/pcc_arg_unify_2_0/src/call/pcc.c	Thu Sep 24 23:05:31 2009	(r41455)
@@ -105,19 +105,6 @@
         __attribute__nonnull__(2)
         FUNC_MODIFIES(*st);
 
-PARROT_CANNOT_RETURN_NULL
-static PMC * count_signature_elements(PARROT_INTERP,
-    ARGIN(const char *signature),
-    ARGMOD(PMC *args_sig),
-    ARGMOD(PMC *results_sig),
-    int flag)
-        __attribute__nonnull__(1)
-        __attribute__nonnull__(2)
-        __attribute__nonnull__(3)
-        __attribute__nonnull__(4)
-        FUNC_MODIFIES(*args_sig)
-        FUNC_MODIFIES(*results_sig);
-
 static void dissect_aggregate_arg(PARROT_INTERP,
     ARGMOD(PMC *call_object),
     ARGIN(PMC *aggregate))
@@ -218,18 +205,6 @@
         FUNC_MODIFIES(*indexes)
         FUNC_MODIFIES(*result_list);
 
-static void set_context_sig_returns_varargs(PARROT_INTERP,
-    ARGMOD(PMC *ctx),
-    ARGMOD(opcode_t **indexes),
-    ARGIN(const char *ret_x),
-    va_list returns)
-        __attribute__nonnull__(1)
-        __attribute__nonnull__(2)
-        __attribute__nonnull__(3)
-        __attribute__nonnull__(4)
-        FUNC_MODIFIES(*ctx)
-        FUNC_MODIFIES(*indexes);
-
 static int set_retval_util(PARROT_INTERP,
     ARGIN(const char *sig),
     ARGIN(PMC *ctx),
@@ -303,21 +278,16 @@
 #define ASSERT_ARGS_convert_arg_from_str __attribute__unused__ int _ASSERT_ARGS_CHECK = \
        PARROT_ASSERT_ARG(interp) \
     && PARROT_ASSERT_ARG(st)
-#define ASSERT_ARGS_count_signature_elements __attribute__unused__ int _ASSERT_ARGS_CHECK = \
-       PARROT_ASSERT_ARG(interp) \
-    || PARROT_ASSERT_ARG(signature) \
-    || PARROT_ASSERT_ARG(args_sig) \
-    || PARROT_ASSERT_ARG(results_sig)
 #define ASSERT_ARGS_dissect_aggregate_arg __attribute__unused__ int _ASSERT_ARGS_CHECK = \
        PARROT_ASSERT_ARG(interp) \
-    || PARROT_ASSERT_ARG(call_object) \
-    || PARROT_ASSERT_ARG(aggregate)
+    && PARROT_ASSERT_ARG(call_object) \
+    && PARROT_ASSERT_ARG(aggregate)
 #define ASSERT_ARGS_extract_named_arg_from_op __attribute__unused__ int _ASSERT_ARGS_CHECK = \
        PARROT_ASSERT_ARG(interp) \
-    || PARROT_ASSERT_ARG(call_object) \
-    || PARROT_ASSERT_ARG(name) \
-    || PARROT_ASSERT_ARG(raw_sig) \
-    || PARROT_ASSERT_ARG(raw_args)
+    && PARROT_ASSERT_ARG(call_object) \
+    && PARROT_ASSERT_ARG(name) \
+    && PARROT_ASSERT_ARG(raw_sig) \
+    && PARROT_ASSERT_ARG(raw_args)
 #define ASSERT_ARGS_fetch_arg_op __attribute__unused__ int _ASSERT_ARGS_CHECK = \
        PARROT_ASSERT_ARG(interp) \
     && PARROT_ASSERT_ARG(st)
@@ -339,9 +309,9 @@
        PARROT_ASSERT_ARG(st)
 #define ASSERT_ARGS_parse_signature_string __attribute__unused__ int _ASSERT_ARGS_CHECK = \
        PARROT_ASSERT_ARG(interp) \
-    || PARROT_ASSERT_ARG(signature) \
-    || PARROT_ASSERT_ARG(arg_flags) \
-    || PARROT_ASSERT_ARG(return_flags)
+    && PARROT_ASSERT_ARG(signature) \
+    && PARROT_ASSERT_ARG(arg_flags) \
+    && PARROT_ASSERT_ARG(return_flags)
 #define ASSERT_ARGS_set_context_sig_params __attribute__unused__ int _ASSERT_ARGS_CHECK = \
        PARROT_ASSERT_ARG(interp) \
     && PARROT_ASSERT_ARG(signature) \
@@ -355,12 +325,6 @@
     && PARROT_ASSERT_ARG(ctx) \
     && PARROT_ASSERT_ARG(indexes) \
     && PARROT_ASSERT_ARG(result_list)
-#define ASSERT_ARGS_set_context_sig_returns_varargs \
-     __attribute__unused__ int _ASSERT_ARGS_CHECK = \
-       PARROT_ASSERT_ARG(interp) \
-    && PARROT_ASSERT_ARG(ctx) \
-    && PARROT_ASSERT_ARG(indexes) \
-    && PARROT_ASSERT_ARG(ret_x)
 #define ASSERT_ARGS_set_retval_util __attribute__unused__ int _ASSERT_ARGS_CHECK = \
        PARROT_ASSERT_ARG(interp) \
     && PARROT_ASSERT_ARG(sig) \
@@ -411,7 +375,7 @@
     PMC            *call_object;
     INTVAL          arg_index;
     INTVAL          arg_count  = VTABLE_elements(interp, raw_sig);
-    Parrot_Context *ctx        = CONTEXT(interp);
+    PMC            *ctx        = CURRENT_CONTEXT(interp);
     STRING         *string_sig = Parrot_str_new(interp, "", 0);
 
     if (PMC_IS_NULL(signature)) {
@@ -442,7 +406,7 @@
                 string_sig = Parrot_str_append(interp, string_sig, CONST_STRING(interp, "N"));
                 if (constant)
                     VTABLE_push_float(interp, call_object,
-                            ctx->constants[raw_index]->u.number);
+                            Parrot_pcc_get_num_constant(interp, ctx, raw_index));
                 else
                     VTABLE_push_float(interp, call_object, CTX_REG_NUM(ctx, raw_index));
                 break;
@@ -453,7 +417,7 @@
                 if (constant)
                     /* ensure that callees don't modify constant caller strings */
                     string_value = Parrot_str_new_COW(interp,
-                                            ctx->constants[raw_index]->u.string);
+                                            Parrot_pcc_get_string_constant(interp, ctx, raw_index));
                 else
                     string_value = CTX_REG_STR(ctx, raw_index);
 
@@ -472,7 +436,7 @@
                 PMC *pmc_value;
                 string_sig = Parrot_str_append(interp, string_sig, CONST_STRING(interp, "P"));
                 if (constant)
-                    pmc_value = ctx->constants[raw_index]->u.key;
+                    pmc_value = Parrot_pcc_get_pmc_constant(interp, ctx, raw_index);
                 else
                     pmc_value = CTX_REG_PMC(ctx, raw_index);
 
@@ -513,7 +477,7 @@
         INTVAL arg_index)
 {
     ASSERT_ARGS(extract_named_arg_from_op)
-    Parrot_Context *ctx = CONTEXT(interp);
+    PMC   *ctx = CURRENT_CONTEXT(interp);
     INTVAL arg_flags = VTABLE_get_integer_keyed_int(interp,
                     raw_sig, arg_index);
 
@@ -534,7 +498,7 @@
             string_sig = Parrot_str_append(interp, string_sig, CONST_STRING(interp, "N"));
             if (constant)
                 VTABLE_set_number_keyed_str(interp, call_object, name,
-                        ctx->constants[raw_index]->u.number);
+                        Parrot_pcc_get_num_constant(interp, ctx, raw_index));
             else
                 VTABLE_set_number_keyed_str(interp, call_object, name,
                         CTX_REG_NUM(ctx, raw_index));
@@ -545,7 +509,7 @@
                 /* ensure that callees don't modify constant caller strings */
                 VTABLE_set_string_keyed_str(interp, call_object, name,
                         Parrot_str_new_COW(interp,
-                                        ctx->constants[raw_index]->u.string));
+                                Parrot_pcc_get_string_constant(interp, ctx, raw_index)));
             else
                 VTABLE_set_string_keyed_str(interp, call_object, name,
                         CTX_REG_STR(ctx, raw_index));
@@ -554,7 +518,7 @@
             string_sig = Parrot_str_append(interp, string_sig, CONST_STRING(interp, "P"));
             if (constant)
                 VTABLE_set_pmc_keyed_str(interp, call_object, name,
-                        ctx->constants[raw_index]->u.key);
+                        Parrot_pcc_get_pmc_constant(interp, ctx, raw_index));
             else
                 VTABLE_set_pmc_keyed_str(interp, call_object, name,
                         CTX_REG_PMC(ctx, raw_index));
@@ -643,7 +607,7 @@
     STRING         *string_sig;
     INTVAL          arg_index;
     INTVAL          arg_count = VTABLE_elements(interp, raw_sig);
-    Parrot_Context *ctx       = CONTEXT(interp);
+    PMC            *ctx       = CURRENT_CONTEXT(interp);
     PMC            *returns   = pmc_new(interp, enum_class_ResizablePMCArray);
 
     if (PMC_IS_NULL(signature)) {
@@ -816,6 +780,7 @@
                         i++; /* skip 'i' */
                     }
                     break;
+                }
                 case '-':
                     i++; /* skip '>' */
                     in_return_sig = 1;
@@ -862,7 +827,7 @@
         ARGIN(PMC *raw_sig), ARGIN(opcode_t *raw_params))
 {
     ASSERT_ARGS(Parrot_pcc_fill_params_from_op)
-    Parrot_Context *ctx = CONTEXT(interp);
+    PMC    *ctx = CURRENT_CONTEXT(interp);
     INTVAL  positional_elements = VTABLE_elements(interp, call_object);
     INTVAL  param_count    = VTABLE_elements(interp, raw_sig);
     STRING *param_name     = NULL;
@@ -933,7 +898,7 @@
             /* Just store the name for now (this parameter is only the
              * name). The next parameter is the actual value. */
             param_name = PARROT_ARG_CONSTANT_ISSET(param_flags)
-                               ? ctx->constants[raw_index]->u.string
+                               ? Parrot_pcc_get_string_constant(interp, ctx, raw_index)
                                : CTX_REG_STR(ctx, raw_index);
 
             continue;
@@ -1341,7 +1306,7 @@
 {
     ASSERT_ARGS(Parrot_pcc_fill_returns_from_op)
     INTVAL return_list_elements;
-    Parrot_Context *ctx = CONTEXT(interp);
+    PMC        *ctx = CURRENT_CONTEXT(interp);
     PMC * const return_list = VTABLE_get_attr_str(interp, call_object, CONST_STRING(interp, "returns"));
     PMC * const caller_return_flags = VTABLE_get_attr_str(interp, call_object, CONST_STRING(interp, "return_flags"));
     INTVAL raw_return_count     = VTABLE_elements(interp, raw_sig);
@@ -1408,7 +1373,7 @@
                 }
                 if (constant)
                     VTABLE_set_number_native(interp, result_item,
-                            ctx->constants[raw_index]->u.number);
+                            Parrot_pcc_get_num_constant(interp, ctx, raw_index));
                 else
                     VTABLE_set_number_native(interp, result_item, CTX_REG_NUM(ctx, raw_index));
                 return_list_index++;
@@ -1419,15 +1384,17 @@
                             pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_String)));
                 }
                 if (constant)
-                    VTABLE_set_string_native(interp, result_item, Parrot_str_new_COW(interp,
-                                        ctx->constants[raw_index]->u.string));
+                    VTABLE_set_string_native(interp, result_item,
+                            Parrot_str_new_COW(interp,
+                                    Parrot_pcc_get_string_constant(interp, ctx, raw_index)));
                 else
                     VTABLE_set_string_native(interp, result_item, CTX_REG_STR(ctx, raw_index));
                 return_list_index++;
                 break;
             case PARROT_ARG_PMC:
                 if (constant)
-                    VTABLE_set_pmc(interp, result_item, ctx->constants[raw_index]->u.key);
+                    VTABLE_set_pmc(interp, result_item,
+                            Parrot_pcc_get_pmc_constant(interp, ctx, raw_index));
                 else
                     VTABLE_set_pmc(interp, result_item, CTX_REG_PMC(ctx, raw_index));
                 return_list_index++;
@@ -3849,13 +3816,13 @@
 
     opcode_t *dest;
     INTVAL n_regs_used[] = { 0, 0, 0, 0, 0, 0, 0, 0 };
-    Parrot_Context *ctx  = Parrot_push_context(interp, n_regs_used);
+    PMC        *ctx      = Parrot_push_context(interp, n_regs_used);
     PMC * const ret_cont = new_ret_continuation_pmc(interp, NULL);
 
-    ctx->current_sig             = call_object;
-    ctx->current_cont            = ret_cont;
+    Parrot_pcc_set_current_sig(interp, ctx, call_object);
+    Parrot_pcc_set_continuation(interp, ctx, ret_cont);
     interp->current_cont         = NEED_CONTINUATION;
-    PMC_cont(ret_cont)->from_ctx = Parrot_context_ref(interp, ctx);
+    PMC_cont(ret_cont)->from_ctx = ctx;
 
     /* Invoke the function */
     dest = VTABLE_invoke(interp, sub_obj, NULL);
@@ -3874,7 +3841,7 @@
         interp->run_core = old_core;
     }
     gc_unregister_pmc(interp, call_object);
-    ctx->current_sig = NULL;
+    Parrot_pcc_set_current_sig(interp, ctx, NULL);
     Parrot_pop_context(interp);
 }
 

Modified: branches/pcc_arg_unify_2_0/src/debug.c
==============================================================================
--- branches/pcc_arg_unify_2_0/src/debug.c	Thu Sep 24 23:04:50 2009	(r41454)
+++ branches/pcc_arg_unify_2_0/src/debug.c	Thu Sep 24 23:05:31 2009	(r41455)
@@ -3588,7 +3588,7 @@
             break;
 
 
-        str = Parrot_Context_infostr(interp, ctx->caller_ctx);
+        str = Parrot_Context_infostr(interp, Parrot_pcc_get_caller_ctx(interp, ctx));
 
 
         if (!str)

Modified: branches/pcc_arg_unify_2_0/src/exceptions.c
==============================================================================
--- branches/pcc_arg_unify_2_0/src/exceptions.c	Thu Sep 24 23:04:50 2009	(r41454)
+++ branches/pcc_arg_unify_2_0/src/exceptions.c	Thu Sep 24 23:05:31 2009	(r41455)
@@ -38,9 +38,7 @@
         __attribute__nonnull__(3);
 
 PARROT_CAN_RETURN_NULL
-static void pass_exception_args(PARROT_INTERP,
-    ARGIN(const char *sig),
-    ...)
+static void pass_exception_args(PARROT_INTERP, ARGIN(const char *sig), ...)
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
@@ -49,7 +47,7 @@
     && PARROT_ASSERT_ARG(format)
 #define ASSERT_ARGS_pass_exception_args __attribute__unused__ int _ASSERT_ARGS_CHECK = \
        PARROT_ASSERT_ARG(interp) \
-    || PARROT_ASSERT_ARG(sig)
+    && PARROT_ASSERT_ARG(sig)
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 /* HEADERIZER END: static */
 
@@ -248,7 +246,7 @@
 
 /*
 
-=item C<static opcode_t * pass_exception_args(PARROT_INTERP, const char *sig, ...)>
+=item C<static void pass_exception_args(PARROT_INTERP, const char *sig, ...)>
 
 Passes arguments to the exception handler routine. These are retrieved with
 the .get_results() directive in PIR code.

Modified: branches/pcc_arg_unify_2_0/src/ops/core.ops
==============================================================================
--- branches/pcc_arg_unify_2_0/src/ops/core.ops	Thu Sep 24 23:04:50 2009	(r41454)
+++ branches/pcc_arg_unify_2_0/src/ops/core.ops	Thu Sep 24 23:05:31 2009	(r41455)
@@ -535,8 +535,8 @@
 
     Parrot_pcc_set_current_sig(interp, CURRENT_CONTEXT(interp),
             Parrot_pcc_build_sig_object_returns_from_op(interp,
-            Parrot_pcc_get_current_sig(interp, CURRENT_CONTEXT(interp)),
-            signature, raw_returns);
+                Parrot_pcc_get_current_sig(interp, CURRENT_CONTEXT(interp)),
+                signature, raw_returns));
 
     argc = VTABLE_elements(interp, signature);
     goto OFFSET(argc + 2);
@@ -550,7 +550,7 @@
     INTVAL argc;
 
     ctx = CURRENT_CONTEXT(interp);
-    ccont = Parrot_pcc_get_current_continuation(interp, ctx);
+    ccont = Parrot_pcc_get_continuation(interp, ctx);
 
     caller_ctx = Parrot_pcc_get_caller_ctx(interp, ctx);
     call_object = Parrot_pcc_get_current_sig(interp, caller_ctx);
@@ -575,7 +575,7 @@
     INTVAL argc;
 
     ctx = CURRENT_CONTEXT(interp);
-    ccont = Parrot_pcc_get_current_continuation(interp, ctx);
+    ccont = Parrot_pcc_get_continuation(interp, ctx);
 
     caller_ctx = Parrot_pcc_get_caller_ctx(interp, ctx);
     call_object = Parrot_pcc_get_current_sig(interp, caller_ctx);


More information about the parrot-commits mailing list