From fd442a08dab443b1c11ece101a62193b8110047f Mon Sep 17 00:00:00 2001 From: Jimmy Zhuo Date: Fri, 22 Mar 2013 15:08:17 +0800 Subject: [PATCH] get rid of NCI pmc --- MANIFEST | 2 - config/gen/makefiles/root.in | 7 - include/parrot/interpreter.h | 17 -- src/interp/api.c | 34 ---- src/multidispatch.c | 51 ----- src/nci/core_thunks.c | 1 - src/nci/extra_thunks.c | 265 ++++++++++++------------- src/oo.c | 2 - src/pmc/namespace.pmc | 3 +- src/pmc/nci.pmc | 370 ----------------------------------- src/pmc/pmc.num | 53 +++-- src/pmc/unmanagedstruct.pmc | 12 -- src/utils.c | 6 - 13 files changed, 153 insertions(+), 670 deletions(-) delete mode 100644 src/pmc/nci.pmc diff --git a/MANIFEST b/MANIFEST index e92201a504..2c8ad9759b 100644 --- a/MANIFEST +++ b/MANIFEST @@ -1345,7 +1345,6 @@ src/pmc/mappedbytearray.pmc [] src/pmc/multisub.pmc [] src/pmc/namespace.pmc [] src/pmc/nativepccmethod.pmc [] -src/pmc/nci.pmc [] src/pmc/null.pmc [] src/pmc/object.pmc [] src/pmc/opcode.pmc [] @@ -1864,7 +1863,6 @@ t/pmc/namespace-old.t [test] t/pmc/namespace-subs.t [test] t/pmc/namespace.t [test] t/pmc/nativepccmethod.t [test] -t/pmc/nci.t [test] t/pmc/null.t [test] t/pmc/object-meths.t [test] t/pmc/object-mro.t [test] diff --git a/config/gen/makefiles/root.in b/config/gen/makefiles/root.in index 544e000e7d..b04c1aa97e 100644 --- a/config/gen/makefiles/root.in +++ b/config/gen/makefiles/root.in @@ -1784,7 +1784,6 @@ src/multidispatch$(O) : \ $(INC_DIR)/oplib/ops.h \ $(PARROT_H_HEADERS) \ $(INC_PMC_DIR)/pmc_nativepccmethod.h \ - $(INC_PMC_DIR)/pmc_nci.h \ $(INC_PMC_DIR)/pmc_sub.h src/packfile/api$(O) : \ @@ -1973,18 +1972,15 @@ src/nci/api$(O) : src/nci/api.str \ src/nci/core_thunks$(O) : src/nci/core_thunks.str \ src/nci/core_thunks.c \ $(PARROT_H_HEADERS) \ - $(INC_PMC_DIR)/pmc_nci.h src/nci/libffi$(O) : src/nci/libffi.c \ $(PARROT_H_HEADERS) \ - $(INC_PMC_DIR)/pmc_nci.h \ $(INC_PMC_DIR)/pmc_unmanagedstruct.h \ $(INC_PMC_DIR)/pmc_managedstruct.h \ ## SUFFIX OVERRIDE src/nci/extra_thunks$(O) : \ $(PARROT_H_HEADERS) \ - $(INC_PMC_DIR)/pmc_nci.h \ src/nci/extra_thunks.str \ src/nci/extra_thunks.c $(CC) $(CFLAGS) @optimize::src/nci/extra_thunks.c@ @ccwarn::src/nci/extra_thunks.c@ \ @@ -1992,7 +1988,6 @@ src/nci/extra_thunks$(O) : \ src/nci/libffi$(O) : src/nci/libffi.c \ $(PARROT_H_HEADERS) \ - $(INC_PMC_DIR)/pmc_nci.h \ $(INC_PMC_DIR)/pmc_unmanagedstruct.h \ $(INC_PMC_DIR)/pmc_managedstruct.h @@ -2020,7 +2015,6 @@ src/warnings$(O) : $(PARROT_H_HEADERS) src/warnings.c src/utils$(O) : \ $(PARROT_H_HEADERS) \ - $(INC_PMC_DIR)/pmc_nci.h \ src/utils.c \ $(EXTEND_HEADERS) @@ -3206,7 +3200,6 @@ bootstrap-nci : src/nci/core_thunks.nci src/nci/extra_thunks.nci ## SUFFIX OVERRIDE src/extra_nci_thunks$(O) : $(PARROT_H_HEADERS) src/extra_nci_thunks.c \ - $(INC_PMC_DIR)/pmc_nci.h $(CC) $(CFLAGS) @optimize::src/extra_nci_thunks.c@ @ccwarn::src/extra_nci_thunks.c@ @cc_shared@ -I$(@D)/. @cc_o_out@$@ -c src/extra_nci_thunks.c # emacs etags diff --git a/include/parrot/interpreter.h b/include/parrot/interpreter.h index 0f8f97c025..271708e20f 100644 --- a/include/parrot/interpreter.h +++ b/include/parrot/interpreter.h @@ -445,17 +445,6 @@ void Parrot_interp_register_native_pcc_method_in_ns(PARROT_INTERP, __attribute__nonnull__(4) __attribute__nonnull__(5); -PARROT_EXPORT -void Parrot_interp_register_nci_method(PARROT_INTERP, - const int type, - ARGIN(void *func), - ARGIN(const char *name), - ARGIN(const char *proto)) - __attribute__nonnull__(1) - __attribute__nonnull__(3) - __attribute__nonnull__(4) - __attribute__nonnull__(5); - PARROT_EXPORT void Parrot_interp_set_compiler(PARROT_INTERP, ARGIN(STRING *type), @@ -561,12 +550,6 @@ void Parrot_interp_really_destroy(PARROT_INTERP, int exit_code, void *arg) , PARROT_ASSERT_ARG(func) \ , PARROT_ASSERT_ARG(name) \ , PARROT_ASSERT_ARG(signature)) -#define ASSERT_ARGS_Parrot_interp_register_nci_method \ - __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ - PARROT_ASSERT_ARG(interp) \ - , PARROT_ASSERT_ARG(func) \ - , PARROT_ASSERT_ARG(name) \ - , PARROT_ASSERT_ARG(proto)) #define ASSERT_ARGS_Parrot_interp_set_compiler __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ PARROT_ASSERT_ARG(interp) \ , PARROT_ASSERT_ARG(type) \ diff --git a/src/interp/api.c b/src/interp/api.c index 636c5c5580..d08ec9e6b2 100644 --- a/src/interp/api.c +++ b/src/interp/api.c @@ -551,40 +551,6 @@ Parrot_interp_clear_emergency_interpreter(void) } - -/* - -=item C - -Create an entry in the C for the given NCI method of PMC -class C. - -=cut - -*/ - -PARROT_EXPORT -void -Parrot_interp_register_nci_method(PARROT_INTERP, const int type, ARGIN(void *func), - ARGIN(const char *name), ARGIN(const char *proto)) -{ - ASSERT_ARGS(Parrot_interp_register_nci_method) - PMC * const method = Parrot_pmc_new(interp, enum_class_NCI); - STRING * const method_name = Parrot_str_new_init(interp, name, strlen(name), - Parrot_default_encoding_ptr, PObj_constant_FLAG|PObj_external_FLAG); - - /* create call func */ - VTABLE_set_pointer_keyed_str(interp, method, - Parrot_str_new_init(interp, proto, strlen(proto), - Parrot_default_encoding_ptr, PObj_constant_FLAG|PObj_external_FLAG), - func); - - /* insert it into namespace */ - VTABLE_set_pmc_keyed_str(interp, interp->vtables[type]->_namespace, - method_name, method); -} - /* =item Cvtable->base_type == enum_class_NCI) { - GETATTR_NCI_multi_sig(interp, pmc, multi_sig); - if (PMC_IS_NULL(multi_sig)) { - STRING *long_sig; - - GETATTR_NCI_long_signature(interp, pmc, long_sig); - multi_sig = mmd_build_type_tuple_from_long_sig(interp, long_sig); - PARROT_GC_WRITE_BARRIER(interp, pmc); - SETATTR_NCI_multi_sig(interp, pmc, multi_sig); - } - } else { PMC_get_sub(interp, pmc, sub); @@ -970,9 +958,6 @@ Parrot_mmd_add_multi_from_long_sig(PARROT_INTERP, if (sub_obj->vtable->base_type == enum_class_NativePCCMethod) { SETATTR_NativePCCMethod_mmd_multi_sig(interp, sub_obj, multi_sig); } - else if (sub_obj->vtable->base_type == enum_class_NCI) { - SETATTR_NCI_multi_sig(interp, sub_obj, multi_sig); - } else if (VTABLE_isa(interp, sub_obj, sub_str)) { PMC_get_sub(interp, sub_obj, sub); sub->multi_signature = multi_sig; @@ -1008,22 +993,6 @@ Parrot_mmd_add_multi_from_c_args(PARROT_INTERP, STRING *short_sig_str = Parrot_str_new_constant(interp, short_sig); PMC *type_list = Parrot_str_split(interp, comma, long_sig_str); STRING *ns_name = VTABLE_get_string_keyed_int(interp, type_list, 0); - - /* Create an NCI sub for the C function */ - PMC *sub_obj = Parrot_pmc_new(interp, enum_class_NCI); - PMC *multi_sig = mmd_build_type_tuple_from_long_sig(interp, - long_sig_str); - - PARROT_GC_WRITE_BARRIER(interp, sub_obj); - - VTABLE_set_pointer_keyed_str(interp, sub_obj, short_sig_str, - F2DPTR(multi_func_ptr)); - - /* Attach a type tuple array to the NCI sub for multi dispatch */ - SETATTR_NCI_multi_sig(interp, sub_obj, multi_sig); - - mmd_add_multi_to_namespace(interp, ns_name, sub_name_str, sub_obj); - mmd_add_multi_global(interp, sub_name_str, sub_obj); } /* @@ -1051,26 +1020,6 @@ Parrot_mmd_add_multi_list_from_c_args(PARROT_INTERP, ASSERT_ARGS(Parrot_mmd_add_multi_list_from_c_args) INTVAL i; for (i = 0; i < elements; ++i) { - funcptr_t func_ptr = mmd_info[i].func_ptr; - - STRING *sub_name = mmd_info[i].multi_name; - STRING *long_sig = mmd_info[i].full_sig; - STRING *short_sig = mmd_info[i].short_sig; - STRING *ns_name = mmd_info[i].ns_name; - - /* Create an NCI sub for the C function */ - PMC *sub_obj = Parrot_pmc_new(interp, enum_class_NCI); - - PARROT_GC_WRITE_BARRIER(interp, sub_obj); - - VTABLE_set_pointer_keyed_str(interp, sub_obj, short_sig, - F2DPTR(func_ptr)); - - /* Attach a type tuple array to the NCI sub for multi dispatch */ - SETATTR_NCI_long_signature(interp, sub_obj, long_sig); - - mmd_add_multi_to_namespace(interp, ns_name, sub_name, sub_obj); - mmd_add_multi_global(interp, sub_name, sub_obj); } } diff --git a/src/nci/core_thunks.c b/src/nci/core_thunks.c index d3a3e004f1..1e89f4b7cb 100644 --- a/src/nci/core_thunks.c +++ b/src/nci/core_thunks.c @@ -17,7 +17,6 @@ #include "parrot/parrot.h" #include "parrot/nci.h" -#include "pmc/pmc_nci.h" #ifdef PARROT_IN_EXTENSION diff --git a/src/nci/extra_thunks.c b/src/nci/extra_thunks.c index 206132f083..a9b2ab3fb2 100644 --- a/src/nci/extra_thunks.c +++ b/src/nci/extra_thunks.c @@ -17,8 +17,6 @@ #include "parrot/parrot.h" #include "parrot/nci.h" -#include "pmc/pmc_nci.h" - #ifdef PARROT_IN_EXTENSION /* external libraries can't have strings statically compiled into parrot */ @@ -50,7 +48,6 @@ pcf_int_int_ptr(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) Parrot_pcc_fill_params_from_c_args(interp, call_object, "IP", &t_1, &t_2); v_1 = t_1; v_2 = PMC_IS_NULL(t_2) ? NULL : VTABLE_get_pointer(interp, t_2);; - GETATTR_NCI_orig_func(interp, nci, orig_func); fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2); t_0 = v_0; @@ -68,7 +65,6 @@ pcf_int_ptr(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) PMC * t_1; void * v_1; Parrot_pcc_fill_params_from_c_args(interp, call_object, "P", &t_1); v_1 = PMC_IS_NULL(t_1) ? NULL : VTABLE_get_pointer(interp, t_1);; - GETATTR_NCI_orig_func(interp, nci, orig_func); fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1); t_0 = v_0; @@ -85,7 +81,6 @@ pcf_void_ptr(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) PMC * t_1; void * v_1; Parrot_pcc_fill_params_from_c_args(interp, call_object, "P", &t_1); v_1 = PMC_IS_NULL(t_1) ? NULL : VTABLE_get_pointer(interp, t_1);; - GETATTR_NCI_orig_func(interp, nci, orig_func); fn_pointer = (func_t)D2FPTR(orig_func); (*fn_pointer)(v_1); Parrot_pcc_set_call_from_c_args(interp, call_object, ""); @@ -105,7 +100,7 @@ pcf_void_ptr_ptr_ptr(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_1 = PMC_IS_NULL(t_1) ? NULL : VTABLE_get_pointer(interp, t_1);; v_2 = PMC_IS_NULL(t_2) ? NULL : VTABLE_get_pointer(interp, t_2);; v_3 = PMC_IS_NULL(t_3) ? NULL : VTABLE_get_pointer(interp, t_3);; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); (*fn_pointer)(v_1, v_2, v_3); Parrot_pcc_set_call_from_c_args(interp, call_object, ""); @@ -121,7 +116,6 @@ pcf_void(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) ; Parrot_pcc_fill_params_from_c_args(interp, call_object, ""); ; - GETATTR_NCI_orig_func(interp, nci, orig_func); fn_pointer = (func_t)D2FPTR(orig_func); (*fn_pointer)(); Parrot_pcc_set_call_from_c_args(interp, call_object, ""); @@ -137,7 +131,6 @@ pcf_void_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) INTVAL t_1; int v_1; Parrot_pcc_fill_params_from_c_args(interp, call_object, "I", &t_1); v_1 = t_1; - GETATTR_NCI_orig_func(interp, nci, orig_func); fn_pointer = (func_t)D2FPTR(orig_func); (*fn_pointer)(v_1); Parrot_pcc_set_call_from_c_args(interp, call_object, ""); @@ -155,7 +148,6 @@ pcf_void_int_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) Parrot_pcc_fill_params_from_c_args(interp, call_object, "II", &t_1, &t_2); v_1 = t_1; v_2 = t_2; - GETATTR_NCI_orig_func(interp, nci, orig_func); fn_pointer = (func_t)D2FPTR(orig_func); (*fn_pointer)(v_1, v_2); Parrot_pcc_set_call_from_c_args(interp, call_object, ""); @@ -187,7 +179,6 @@ pcf_void_int_long_long_long_long_long_long_long_long(PARROT_INTERP, PMC *nci, SH v_7 = t_7; v_8 = t_8; v_9 = t_9; - GETATTR_NCI_orig_func(interp, nci, orig_func); fn_pointer = (func_t)D2FPTR(orig_func); (*fn_pointer)(v_1, v_2, v_3, v_4, v_5, v_6, v_7, v_8, v_9); Parrot_pcc_set_call_from_c_args(interp, call_object, ""); @@ -203,7 +194,6 @@ pcf_void_long(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) INTVAL t_1; long v_1; Parrot_pcc_fill_params_from_c_args(interp, call_object, "I", &t_1); v_1 = t_1; - GETATTR_NCI_orig_func(interp, nci, orig_func); fn_pointer = (func_t)D2FPTR(orig_func); (*fn_pointer)(v_1); Parrot_pcc_set_call_from_c_args(interp, call_object, ""); @@ -221,7 +211,6 @@ pcf_void_ptr_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) Parrot_pcc_fill_params_from_c_args(interp, call_object, "PI", &t_1, &t_2); v_1 = PMC_IS_NULL(t_1) ? NULL : VTABLE_get_pointer(interp, t_1);; v_2 = t_2; - GETATTR_NCI_orig_func(interp, nci, orig_func); fn_pointer = (func_t)D2FPTR(orig_func); (*fn_pointer)(v_1, v_2); Parrot_pcc_set_call_from_c_args(interp, call_object, ""); @@ -245,7 +234,6 @@ pcf_void_ptr_int_int_int_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_3 = t_3; v_4 = t_4; v_5 = t_5; - GETATTR_NCI_orig_func(interp, nci, orig_func); fn_pointer = (func_t)D2FPTR(orig_func); (*fn_pointer)(v_1, v_2, v_3, v_4, v_5); Parrot_pcc_set_call_from_c_args(interp, call_object, ""); @@ -263,7 +251,7 @@ pcf_void_ptr_long(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) Parrot_pcc_fill_params_from_c_args(interp, call_object, "PI", &t_1, &t_2); v_1 = PMC_IS_NULL(t_1) ? NULL : VTABLE_get_pointer(interp, t_1);; v_2 = t_2; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); (*fn_pointer)(v_1, v_2); Parrot_pcc_set_call_from_c_args(interp, call_object, ""); @@ -281,7 +269,6 @@ pcf_void_ptr_ptr(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) Parrot_pcc_fill_params_from_c_args(interp, call_object, "PP", &t_1, &t_2); v_1 = PMC_IS_NULL(t_1) ? NULL : VTABLE_get_pointer(interp, t_1);; v_2 = PMC_IS_NULL(t_2) ? NULL : VTABLE_get_pointer(interp, t_2);; - GETATTR_NCI_orig_func(interp, nci, orig_func); fn_pointer = (func_t)D2FPTR(orig_func); (*fn_pointer)(v_1, v_2); Parrot_pcc_set_call_from_c_args(interp, call_object, ""); @@ -298,7 +285,7 @@ pcf_int_PMC(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) PMC * t_1; PMC * v_1; Parrot_pcc_fill_params_from_c_args(interp, call_object, "P", &t_1); v_1 = t_1; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1); t_0 = v_0; @@ -320,7 +307,7 @@ pcf_int_ptr_ptr_double(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_1 = PMC_IS_NULL(t_1) ? NULL : VTABLE_get_pointer(interp, t_1);; v_2 = PMC_IS_NULL(t_2) ? NULL : VTABLE_get_pointer(interp, t_2);; v_3 = t_3; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3); t_0 = v_0; @@ -344,7 +331,7 @@ pcf_int_ptr_int_ptr_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_2 = t_2; v_3 = PMC_IS_NULL(t_3) ? NULL : VTABLE_get_pointer(interp, t_3);; v_4 = t_4; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4); t_0 = v_0; @@ -366,7 +353,7 @@ pcf_ptr_ptr_ptr_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_1 = PMC_IS_NULL(t_1) ? NULL : VTABLE_get_pointer(interp, t_1);; v_2 = PMC_IS_NULL(t_2) ? NULL : VTABLE_get_pointer(interp, t_2);; v_3 = t_3; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3); if (v_0 != NULL) { @@ -396,7 +383,7 @@ pcf_ptr_ptr_ptr_ptr_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_2 = PMC_IS_NULL(t_2) ? NULL : VTABLE_get_pointer(interp, t_2);; v_3 = PMC_IS_NULL(t_3) ? NULL : VTABLE_get_pointer(interp, t_3);; v_4 = t_4; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4); if (v_0 != NULL) { @@ -428,7 +415,7 @@ pcf_ptr_ptr_ptr_ptr_ptr_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_3 = PMC_IS_NULL(t_3) ? NULL : VTABLE_get_pointer(interp, t_3);; v_4 = PMC_IS_NULL(t_4) ? NULL : VTABLE_get_pointer(interp, t_4);; v_5 = t_5; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4, v_5); if (v_0 != NULL) { @@ -451,7 +438,7 @@ pcf_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) INTVAL t_0; int v_0; Parrot_pcc_fill_params_from_c_args(interp, call_object, ""); ; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(); t_0 = v_0; @@ -475,7 +462,7 @@ pcf_long_long_ptr_ptr_long(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_2 = PMC_IS_NULL(t_2) ? NULL : VTABLE_get_pointer(interp, t_2);; v_3 = PMC_IS_NULL(t_3) ? NULL : VTABLE_get_pointer(interp, t_3);; v_4 = t_4; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4); t_0 = v_0; @@ -497,7 +484,7 @@ pcf_int_ptr_int_ptr(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_1 = PMC_IS_NULL(t_1) ? NULL : VTABLE_get_pointer(interp, t_1);; v_2 = t_2; v_3 = PMC_IS_NULL(t_3) ? NULL : VTABLE_get_pointer(interp, t_3);; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3); t_0 = v_0; @@ -519,7 +506,7 @@ pcf_int_ptr_int_STRING(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_1 = PMC_IS_NULL(t_1) ? NULL : VTABLE_get_pointer(interp, t_1);; v_2 = t_2; v_3 = t_3; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3); t_0 = v_0; @@ -537,7 +524,7 @@ pcf_STRING_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) INTVAL t_1; int v_1; Parrot_pcc_fill_params_from_c_args(interp, call_object, "I", &t_1); v_1 = t_1; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1); t_0 = v_0; @@ -555,7 +542,7 @@ pcf_long_ptr(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) PMC * t_1; void * v_1; Parrot_pcc_fill_params_from_c_args(interp, call_object, "P", &t_1); v_1 = PMC_IS_NULL(t_1) ? NULL : VTABLE_get_pointer(interp, t_1);; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1); t_0 = v_0; @@ -573,7 +560,7 @@ pcf_char_ptr(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) PMC * t_1; void * v_1; Parrot_pcc_fill_params_from_c_args(interp, call_object, "P", &t_1); v_1 = PMC_IS_NULL(t_1) ? NULL : VTABLE_get_pointer(interp, t_1);; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1); t_0 = v_0; @@ -597,7 +584,7 @@ pcf_char_ptr_ptr_ptr_ptr(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_2 = PMC_IS_NULL(t_2) ? NULL : VTABLE_get_pointer(interp, t_2);; v_3 = PMC_IS_NULL(t_3) ? NULL : VTABLE_get_pointer(interp, t_3);; v_4 = PMC_IS_NULL(t_4) ? NULL : VTABLE_get_pointer(interp, t_4);; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4); t_0 = v_0; @@ -617,7 +604,7 @@ pcf_ptr_ptr_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) Parrot_pcc_fill_params_from_c_args(interp, call_object, "PI", &t_1, &t_2); v_1 = PMC_IS_NULL(t_1) ? NULL : VTABLE_get_pointer(interp, t_1);; v_2 = t_2; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2); if (v_0 != NULL) { @@ -641,7 +628,7 @@ pcf_ptr_ptr(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) PMC * t_1; void * v_1; Parrot_pcc_fill_params_from_c_args(interp, call_object, "P", &t_1); v_1 = PMC_IS_NULL(t_1) ? NULL : VTABLE_get_pointer(interp, t_1);; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1); if (v_0 != NULL) { @@ -675,7 +662,7 @@ pcf_int_ptr_ptr_ptr_ptr_ptr_ptr(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_4 = PMC_IS_NULL(t_4) ? NULL : VTABLE_get_pointer(interp, t_4);; v_5 = PMC_IS_NULL(t_5) ? NULL : VTABLE_get_pointer(interp, t_5);; v_6 = PMC_IS_NULL(t_6) ? NULL : VTABLE_get_pointer(interp, t_6);; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4, v_5, v_6); t_0 = v_0; @@ -697,7 +684,7 @@ pcf_long_ptr_ptr_long(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_1 = PMC_IS_NULL(t_1) ? NULL : VTABLE_get_pointer(interp, t_1);; v_2 = PMC_IS_NULL(t_2) ? NULL : VTABLE_get_pointer(interp, t_2);; v_3 = t_3; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3); t_0 = v_0; @@ -721,7 +708,7 @@ pcf_long_ptr_ptr_ptr_long(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_2 = PMC_IS_NULL(t_2) ? NULL : VTABLE_get_pointer(interp, t_2);; v_3 = PMC_IS_NULL(t_3) ? NULL : VTABLE_get_pointer(interp, t_3);; v_4 = t_4; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4); t_0 = v_0; @@ -741,7 +728,7 @@ pcf_int_ptr_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) Parrot_pcc_fill_params_from_c_args(interp, call_object, "PI", &t_1, &t_2); v_1 = PMC_IS_NULL(t_1) ? NULL : VTABLE_get_pointer(interp, t_1);; v_2 = t_2; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2); t_0 = v_0; @@ -761,7 +748,7 @@ pcf_int_ptr_long(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) Parrot_pcc_fill_params_from_c_args(interp, call_object, "PI", &t_1, &t_2); v_1 = PMC_IS_NULL(t_1) ? NULL : VTABLE_get_pointer(interp, t_1);; v_2 = t_2; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2); t_0 = v_0; @@ -778,7 +765,7 @@ pcf_long(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) INTVAL t_0; long v_0; Parrot_pcc_fill_params_from_c_args(interp, call_object, ""); ; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(); t_0 = v_0; @@ -798,7 +785,7 @@ pcf_ptr_ptr_ptr(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) Parrot_pcc_fill_params_from_c_args(interp, call_object, "PP", &t_1, &t_2); v_1 = PMC_IS_NULL(t_1) ? NULL : VTABLE_get_pointer(interp, t_1);; v_2 = PMC_IS_NULL(t_2) ? NULL : VTABLE_get_pointer(interp, t_2);; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2); if (v_0 != NULL) { @@ -836,7 +823,7 @@ pcf_ptr_ptr_ptr_ptr_ptr_ptr_int_ptr_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self) v_6 = t_6; v_7 = PMC_IS_NULL(t_7) ? NULL : VTABLE_get_pointer(interp, t_7);; v_8 = t_8; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4, v_5, v_6, v_7, v_8); if (v_0 != NULL) { @@ -864,7 +851,7 @@ pcf_ptr_ptr_ptr_PMC(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_1 = PMC_IS_NULL(t_1) ? NULL : VTABLE_get_pointer(interp, t_1);; v_2 = PMC_IS_NULL(t_2) ? NULL : VTABLE_get_pointer(interp, t_2);; v_3 = t_3; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3); if (v_0 != NULL) { @@ -900,7 +887,7 @@ pcf_ptr_ptr_ptr_int_ptr_ptr_ptr_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_5 = PMC_IS_NULL(t_5) ? NULL : VTABLE_get_pointer(interp, t_5);; v_6 = PMC_IS_NULL(t_6) ? NULL : VTABLE_get_pointer(interp, t_6);; v_7 = t_7; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4, v_5, v_6, v_7); if (v_0 != NULL) { @@ -938,7 +925,7 @@ pcf_ptr_ptr_ptr_int_ptr_ptr_ptr_ptr_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self) v_6 = PMC_IS_NULL(t_6) ? NULL : VTABLE_get_pointer(interp, t_6);; v_7 = PMC_IS_NULL(t_7) ? NULL : VTABLE_get_pointer(interp, t_7);; v_8 = t_8; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4, v_5, v_6, v_7, v_8); if (v_0 != NULL) { @@ -970,7 +957,7 @@ pcf_ptr_ptr_ptr_ptr_int_ptr(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_3 = PMC_IS_NULL(t_3) ? NULL : VTABLE_get_pointer(interp, t_3);; v_4 = t_4; v_5 = PMC_IS_NULL(t_5) ? NULL : VTABLE_get_pointer(interp, t_5);; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4, v_5); if (v_0 != NULL) { @@ -1000,7 +987,7 @@ pcf_ptr_int_int_int_long(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_2 = t_2; v_3 = t_3; v_4 = t_4; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4); if (v_0 != NULL) { @@ -1028,7 +1015,7 @@ pcf_int_ptr_ptr_long(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_1 = PMC_IS_NULL(t_1) ? NULL : VTABLE_get_pointer(interp, t_1);; v_2 = PMC_IS_NULL(t_2) ? NULL : VTABLE_get_pointer(interp, t_2);; v_3 = t_3; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3); t_0 = v_0; @@ -1049,7 +1036,7 @@ pcf_void_ptr_int_ptr(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_1 = PMC_IS_NULL(t_1) ? NULL : VTABLE_get_pointer(interp, t_1);; v_2 = t_2; v_3 = PMC_IS_NULL(t_3) ? NULL : VTABLE_get_pointer(interp, t_3);; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); (*fn_pointer)(v_1, v_2, v_3); Parrot_pcc_set_call_from_c_args(interp, call_object, ""); @@ -1070,7 +1057,7 @@ pcf_int_ptr_ptr_ptr(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_1 = PMC_IS_NULL(t_1) ? NULL : VTABLE_get_pointer(interp, t_1);; v_2 = PMC_IS_NULL(t_2) ? NULL : VTABLE_get_pointer(interp, t_2);; v_3 = PMC_IS_NULL(t_3) ? NULL : VTABLE_get_pointer(interp, t_3);; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3); t_0 = v_0; @@ -1094,7 +1081,7 @@ pcf_ptr_ptr_ptr_int_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_2 = PMC_IS_NULL(t_2) ? NULL : VTABLE_get_pointer(interp, t_2);; v_3 = t_3; v_4 = t_4; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4); if (v_0 != NULL) { @@ -1122,7 +1109,7 @@ pcf_ptr_ptr_ptr_ptr(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_1 = PMC_IS_NULL(t_1) ? NULL : VTABLE_get_pointer(interp, t_1);; v_2 = PMC_IS_NULL(t_2) ? NULL : VTABLE_get_pointer(interp, t_2);; v_3 = PMC_IS_NULL(t_3) ? NULL : VTABLE_get_pointer(interp, t_3);; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3); if (v_0 != NULL) { @@ -1156,7 +1143,7 @@ pcf_int_ptr_ptr_int_int_ptr_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_4 = t_4; v_5 = PMC_IS_NULL(t_5) ? NULL : VTABLE_get_pointer(interp, t_5);; v_6 = t_6; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4, v_5, v_6); t_0 = v_0; @@ -1173,7 +1160,7 @@ pcf_char(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) INTVAL t_0; char v_0; Parrot_pcc_fill_params_from_c_args(interp, call_object, ""); ; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(); t_0 = v_0; @@ -1193,7 +1180,7 @@ pcf_char_ptr_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) Parrot_pcc_fill_params_from_c_args(interp, call_object, "PI", &t_1, &t_2); v_1 = PMC_IS_NULL(t_1) ? NULL : VTABLE_get_pointer(interp, t_1);; v_2 = t_2; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2); t_0 = v_0; @@ -1210,7 +1197,7 @@ pcf_double(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) FLOATVAL t_0; double v_0; Parrot_pcc_fill_params_from_c_args(interp, call_object, ""); ; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(); t_0 = v_0; @@ -1228,7 +1215,7 @@ pcf_double_double(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) FLOATVAL t_1; double v_1; Parrot_pcc_fill_params_from_c_args(interp, call_object, "N", &t_1); v_1 = t_1; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1); t_0 = v_0; @@ -1245,7 +1232,7 @@ pcf_float(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) FLOATVAL t_0; float v_0; Parrot_pcc_fill_params_from_c_args(interp, call_object, ""); ; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(); t_0 = v_0; @@ -1265,7 +1252,7 @@ pcf_float_float_float(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) Parrot_pcc_fill_params_from_c_args(interp, call_object, "NN", &t_1, &t_2); v_1 = t_1; v_2 = t_2; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2); t_0 = v_0; @@ -1285,7 +1272,7 @@ pcf_float_int_short(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) Parrot_pcc_fill_params_from_c_args(interp, call_object, "II", &t_1, &t_2); v_1 = t_1; v_2 = t_2; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2); t_0 = v_0; @@ -1303,7 +1290,7 @@ pcf_int_double(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) FLOATVAL t_1; double v_1; Parrot_pcc_fill_params_from_c_args(interp, call_object, "N", &t_1); v_1 = t_1; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1); t_0 = v_0; @@ -1321,7 +1308,7 @@ pcf_int_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) INTVAL t_1; int v_1; Parrot_pcc_fill_params_from_c_args(interp, call_object, "I", &t_1); v_1 = t_1; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1); t_0 = v_0; @@ -1341,7 +1328,7 @@ pcf_int_int_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) Parrot_pcc_fill_params_from_c_args(interp, call_object, "II", &t_1, &t_2); v_1 = t_1; v_2 = t_2; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2); t_0 = v_0; @@ -1365,7 +1352,7 @@ pcf_int_int_int_int_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_2 = t_2; v_3 = t_3; v_4 = t_4; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4); t_0 = v_0; @@ -1393,7 +1380,7 @@ pcf_int_int_int_int_long_short_ptr(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_4 = t_4; v_5 = t_5; v_6 = PMC_IS_NULL(t_6) ? NULL : VTABLE_get_pointer(interp, t_6);; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4, v_5, v_6); t_0 = v_0; @@ -1415,7 +1402,7 @@ pcf_int_int_int_long(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_1 = t_1; v_2 = t_2; v_3 = t_3; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3); t_0 = v_0; @@ -1439,7 +1426,7 @@ pcf_int_int_int_long_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_2 = t_2; v_3 = t_3; v_4 = t_4; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4); t_0 = v_0; @@ -1461,7 +1448,7 @@ pcf_int_int_int_ptr(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_1 = t_1; v_2 = t_2; v_3 = PMC_IS_NULL(t_3) ? NULL : VTABLE_get_pointer(interp, t_3);; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3); t_0 = v_0; @@ -1485,7 +1472,7 @@ pcf_int_int_int_ptr_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_2 = t_2; v_3 = PMC_IS_NULL(t_3) ? NULL : VTABLE_get_pointer(interp, t_3);; v_4 = t_4; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4); t_0 = v_0; @@ -1509,7 +1496,7 @@ pcf_int_int_long_short_ptr(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_2 = t_2; v_3 = t_3; v_4 = PMC_IS_NULL(t_4) ? NULL : VTABLE_get_pointer(interp, t_4);; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4); t_0 = v_0; @@ -1527,7 +1514,7 @@ pcf_int_long(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) INTVAL t_1; long v_1; Parrot_pcc_fill_params_from_c_args(interp, call_object, "I", &t_1); v_1 = t_1; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1); t_0 = v_0; @@ -1547,7 +1534,7 @@ pcf_int_long_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) Parrot_pcc_fill_params_from_c_args(interp, call_object, "II", &t_1, &t_2); v_1 = t_1; v_2 = t_2; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2); t_0 = v_0; @@ -1567,7 +1554,7 @@ pcf_int_long_ptr(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) Parrot_pcc_fill_params_from_c_args(interp, call_object, "IP", &t_1, &t_2); v_1 = t_1; v_2 = PMC_IS_NULL(t_2) ? NULL : VTABLE_get_pointer(interp, t_2);; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2); t_0 = v_0; @@ -1589,7 +1576,7 @@ pcf_int_long_short_ptr(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_1 = t_1; v_2 = t_2; v_3 = PMC_IS_NULL(t_3) ? NULL : VTABLE_get_pointer(interp, t_3);; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3); t_0 = v_0; @@ -1611,7 +1598,7 @@ pcf_int_ptr_int_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_1 = PMC_IS_NULL(t_1) ? NULL : VTABLE_get_pointer(interp, t_1);; v_2 = t_2; v_3 = t_3; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3); t_0 = v_0; @@ -1635,7 +1622,7 @@ pcf_int_ptr_int_int_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_2 = t_2; v_3 = t_3; v_4 = t_4; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4); t_0 = v_0; @@ -1665,7 +1652,7 @@ pcf_int_ptr_int_int_int_int_int_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_5 = t_5; v_6 = t_6; v_7 = t_7; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4, v_5, v_6, v_7); t_0 = v_0; @@ -1695,7 +1682,7 @@ pcf_int_ptr_int_int_int_long_short_ptr(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_5 = t_5; v_6 = t_6; v_7 = PMC_IS_NULL(t_7) ? NULL : VTABLE_get_pointer(interp, t_7);; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4, v_5, v_6, v_7); t_0 = v_0; @@ -1719,7 +1706,7 @@ pcf_int_ptr_int_int_long(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_2 = t_2; v_3 = t_3; v_4 = t_4; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4); t_0 = v_0; @@ -1745,7 +1732,7 @@ pcf_int_ptr_int_int_long_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_3 = t_3; v_4 = t_4; v_5 = t_5; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4, v_5); t_0 = v_0; @@ -1769,7 +1756,7 @@ pcf_int_ptr_int_int_ptr(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_2 = t_2; v_3 = t_3; v_4 = PMC_IS_NULL(t_4) ? NULL : VTABLE_get_pointer(interp, t_4);; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4); t_0 = v_0; @@ -1793,7 +1780,7 @@ pcf_int_ptr_int_ptr_long(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_2 = t_2; v_3 = PMC_IS_NULL(t_3) ? NULL : VTABLE_get_pointer(interp, t_3);; v_4 = t_4; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4); t_0 = v_0; @@ -1819,7 +1806,7 @@ pcf_int_ptr_int_long_short_ptr(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_3 = t_3; v_4 = t_4; v_5 = PMC_IS_NULL(t_5) ? NULL : VTABLE_get_pointer(interp, t_5);; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4, v_5); t_0 = v_0; @@ -1845,7 +1832,7 @@ pcf_int_ptr_int_int_ptr_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_3 = t_3; v_4 = PMC_IS_NULL(t_4) ? NULL : VTABLE_get_pointer(interp, t_4);; v_5 = t_5; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4, v_5); t_0 = v_0; @@ -1867,7 +1854,7 @@ pcf_int_ptr_long_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_1 = PMC_IS_NULL(t_1) ? NULL : VTABLE_get_pointer(interp, t_1);; v_2 = t_2; v_3 = t_3; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3); t_0 = v_0; @@ -1889,7 +1876,7 @@ pcf_int_ptr_long_long(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_1 = PMC_IS_NULL(t_1) ? NULL : VTABLE_get_pointer(interp, t_1);; v_2 = t_2; v_3 = t_3; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3); t_0 = v_0; @@ -1923,7 +1910,7 @@ pcf_int_ptr_long_long_long_long_long_long_long_long(PARROT_INTERP, PMC *nci, SHI v_7 = t_7; v_8 = t_8; v_9 = t_9; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4, v_5, v_6, v_7, v_8, v_9); t_0 = v_0; @@ -1945,7 +1932,7 @@ pcf_int_ptr_long_ptr(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_1 = PMC_IS_NULL(t_1) ? NULL : VTABLE_get_pointer(interp, t_1);; v_2 = t_2; v_3 = PMC_IS_NULL(t_3) ? NULL : VTABLE_get_pointer(interp, t_3);; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3); t_0 = v_0; @@ -1969,7 +1956,7 @@ pcf_int_ptr_long_short_ptr(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_2 = t_2; v_3 = t_3; v_4 = PMC_IS_NULL(t_4) ? NULL : VTABLE_get_pointer(interp, t_4);; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4); t_0 = v_0; @@ -1989,7 +1976,7 @@ pcf_int_ptr_ptr(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) Parrot_pcc_fill_params_from_c_args(interp, call_object, "PP", &t_1, &t_2); v_1 = PMC_IS_NULL(t_1) ? NULL : VTABLE_get_pointer(interp, t_1);; v_2 = PMC_IS_NULL(t_2) ? NULL : VTABLE_get_pointer(interp, t_2);; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2); t_0 = v_0; @@ -2011,7 +1998,7 @@ pcf_int_ptr_ptr_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_1 = PMC_IS_NULL(t_1) ? NULL : VTABLE_get_pointer(interp, t_1);; v_2 = PMC_IS_NULL(t_2) ? NULL : VTABLE_get_pointer(interp, t_2);; v_3 = t_3; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3); t_0 = v_0; @@ -2047,7 +2034,7 @@ pcf_int_ptr_ptr_int_int_int_int_int_int_int_int(PARROT_INTERP, PMC *nci, SHIM(PM v_8 = t_8; v_9 = t_9; v_10 = t_10; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4, v_5, v_6, v_7, v_8, v_9, v_10); t_0 = v_0; @@ -2071,7 +2058,7 @@ pcf_int_ptr_ptr_ptr_ptr(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_2 = PMC_IS_NULL(t_2) ? NULL : VTABLE_get_pointer(interp, t_2);; v_3 = PMC_IS_NULL(t_3) ? NULL : VTABLE_get_pointer(interp, t_3);; v_4 = PMC_IS_NULL(t_4) ? NULL : VTABLE_get_pointer(interp, t_4);; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4); t_0 = v_0; @@ -2093,7 +2080,7 @@ pcf_int_ptr_short_ptr(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_1 = PMC_IS_NULL(t_1) ? NULL : VTABLE_get_pointer(interp, t_1);; v_2 = t_2; v_3 = PMC_IS_NULL(t_3) ? NULL : VTABLE_get_pointer(interp, t_3);; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3); t_0 = v_0; @@ -2111,7 +2098,7 @@ pcf_int_short(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) INTVAL t_1; short v_1; Parrot_pcc_fill_params_from_c_args(interp, call_object, "I", &t_1); v_1 = t_1; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1); t_0 = v_0; @@ -2131,7 +2118,7 @@ pcf_int_short_ptr(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) Parrot_pcc_fill_params_from_c_args(interp, call_object, "IP", &t_1, &t_2); v_1 = t_1; v_2 = PMC_IS_NULL(t_2) ? NULL : VTABLE_get_pointer(interp, t_2);; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2); t_0 = v_0; @@ -2153,7 +2140,7 @@ pcf_int_short_short_short(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_1 = t_1; v_2 = t_2; v_3 = t_3; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3); t_0 = v_0; @@ -2177,7 +2164,7 @@ pcf_int_short_short_short_short(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_2 = t_2; v_3 = t_3; v_4 = t_4; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4); t_0 = v_0; @@ -2197,7 +2184,7 @@ pcf_long_int_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) Parrot_pcc_fill_params_from_c_args(interp, call_object, "II", &t_1, &t_2); v_1 = t_1; v_2 = t_2; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2); t_0 = v_0; @@ -2217,7 +2204,7 @@ pcf_long_ptr_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) Parrot_pcc_fill_params_from_c_args(interp, call_object, "PI", &t_1, &t_2); v_1 = PMC_IS_NULL(t_1) ? NULL : VTABLE_get_pointer(interp, t_1);; v_2 = t_2; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2); t_0 = v_0; @@ -2239,7 +2226,7 @@ pcf_long_ptr_int_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_1 = PMC_IS_NULL(t_1) ? NULL : VTABLE_get_pointer(interp, t_1);; v_2 = t_2; v_3 = t_3; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3); t_0 = v_0; @@ -2256,7 +2243,7 @@ pcf_ptr(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) PMC * t_0; void * v_0; Parrot_pcc_fill_params_from_c_args(interp, call_object, ""); ; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(); if (v_0 != NULL) { @@ -2280,7 +2267,7 @@ pcf_ptr_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) INTVAL t_1; int v_1; Parrot_pcc_fill_params_from_c_args(interp, call_object, "I", &t_1); v_1 = t_1; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1); if (v_0 != NULL) { @@ -2306,7 +2293,7 @@ pcf_ptr_int_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) Parrot_pcc_fill_params_from_c_args(interp, call_object, "II", &t_1, &t_2); v_1 = t_1; v_2 = t_2; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2); if (v_0 != NULL) { @@ -2336,7 +2323,7 @@ pcf_ptr_int_int_int_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_2 = t_2; v_3 = t_3; v_4 = t_4; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4); if (v_0 != NULL) { @@ -2370,7 +2357,7 @@ pcf_ptr_int_int_int_int_int_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_4 = t_4; v_5 = t_5; v_6 = t_6; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4, v_5, v_6); if (v_0 != NULL) { @@ -2408,7 +2395,7 @@ pcf_ptr_int_int_int_int_int_int_int_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self) v_6 = t_6; v_7 = t_7; v_8 = t_8; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4, v_5, v_6, v_7, v_8); if (v_0 != NULL) { @@ -2436,7 +2423,7 @@ pcf_ptr_ptr_int_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_1 = PMC_IS_NULL(t_1) ? NULL : VTABLE_get_pointer(interp, t_1);; v_2 = t_2; v_3 = t_3; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3); if (v_0 != NULL) { @@ -2468,7 +2455,7 @@ pcf_ptr_ptr_int_int_int_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_3 = t_3; v_4 = t_4; v_5 = t_5; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4, v_5); if (v_0 != NULL) { @@ -2504,7 +2491,7 @@ pcf_ptr_ptr_ptr_ptr_ptr_ptr_ptr_ptr(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_5 = PMC_IS_NULL(t_5) ? NULL : VTABLE_get_pointer(interp, t_5);; v_6 = PMC_IS_NULL(t_6) ? NULL : VTABLE_get_pointer(interp, t_6);; v_7 = PMC_IS_NULL(t_7) ? NULL : VTABLE_get_pointer(interp, t_7);; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4, v_5, v_6, v_7); if (v_0 != NULL) { @@ -2527,7 +2514,7 @@ pcf_short(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) INTVAL t_0; short v_0; Parrot_pcc_fill_params_from_c_args(interp, call_object, ""); ; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(); t_0 = v_0; @@ -2547,7 +2534,7 @@ pcf_int_ptr_PMC(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) Parrot_pcc_fill_params_from_c_args(interp, call_object, "PP", &t_1, &t_2); v_1 = PMC_IS_NULL(t_1) ? NULL : VTABLE_get_pointer(interp, t_1);; v_2 = t_2; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2); t_0 = v_0; @@ -2567,7 +2554,7 @@ pcf_int_short_char(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) Parrot_pcc_fill_params_from_c_args(interp, call_object, "II", &t_1, &t_2); v_1 = t_1; v_2 = t_2; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2); t_0 = v_0; @@ -2587,7 +2574,7 @@ pcf_short_short_char(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) Parrot_pcc_fill_params_from_c_args(interp, call_object, "II", &t_1, &t_2); v_1 = t_1; v_2 = t_2; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2); t_0 = v_0; @@ -2607,7 +2594,7 @@ pcf_char_short_char(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) Parrot_pcc_fill_params_from_c_args(interp, call_object, "II", &t_1, &t_2); v_1 = t_1; v_2 = t_2; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2); t_0 = v_0; @@ -2629,7 +2616,7 @@ pcf_int_int_int_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_1 = t_1; v_2 = t_2; v_3 = t_3; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3); t_0 = v_0; @@ -2646,7 +2633,7 @@ pcf_void_PMC(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) PMC * t_1; PMC * v_1; Parrot_pcc_fill_params_from_c_args(interp, call_object, "P", &t_1); v_1 = t_1; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); (*fn_pointer)(v_1); Parrot_pcc_set_call_from_c_args(interp, call_object, ""); @@ -2664,7 +2651,7 @@ pcf_void_ptr_PMC(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) Parrot_pcc_fill_params_from_c_args(interp, call_object, "PP", &t_1, &t_2); v_1 = PMC_IS_NULL(t_1) ? NULL : VTABLE_get_pointer(interp, t_1);; v_2 = t_2; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); (*fn_pointer)(v_1, v_2); Parrot_pcc_set_call_from_c_args(interp, call_object, ""); @@ -2683,7 +2670,7 @@ pcf_ptr_int_ptr(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) Parrot_pcc_fill_params_from_c_args(interp, call_object, "IP", &t_1, &t_2); v_1 = t_1; v_2 = PMC_IS_NULL(t_2) ? NULL : VTABLE_get_pointer(interp, t_2);; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2); if (v_0 != NULL) { @@ -2710,7 +2697,7 @@ pcf_void_ptr_int_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_1 = PMC_IS_NULL(t_1) ? NULL : VTABLE_get_pointer(interp, t_1);; v_2 = t_2; v_3 = t_3; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); (*fn_pointer)(v_1, v_2, v_3); Parrot_pcc_set_call_from_c_args(interp, call_object, ""); @@ -2735,7 +2722,7 @@ pcf_ptr_ptr_ptr_int_int_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_3 = t_3; v_4 = t_4; v_5 = t_5; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4, v_5); if (v_0 != NULL) { @@ -2775,7 +2762,7 @@ pcf_ptr_ptr_ptr_int_int_int_int_int_int_int(PARROT_INTERP, PMC *nci, SHIM(PMC *s v_7 = t_7; v_8 = t_8; v_9 = t_9; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4, v_5, v_6, v_7, v_8, v_9); if (v_0 != NULL) { @@ -2805,7 +2792,7 @@ pcf_int_ptr_ptr_int_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_2 = PMC_IS_NULL(t_2) ? NULL : VTABLE_get_pointer(interp, t_2);; v_3 = t_3; v_4 = t_4; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4); t_0 = v_0; @@ -2831,7 +2818,7 @@ pcf_int_ptr_ptr_int_int_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_3 = t_3; v_4 = t_4; v_5 = t_5; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4, v_5); t_0 = v_0; @@ -2859,7 +2846,7 @@ pcf_int_ptr_ptr_int_int_int_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_4 = t_4; v_5 = t_5; v_6 = t_6; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4, v_5, v_6); t_0 = v_0; @@ -2889,7 +2876,7 @@ pcf_int_ptr_ptr_int_int_int_int_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_5 = t_5; v_6 = t_6; v_7 = t_7; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4, v_5, v_6, v_7); t_0 = v_0; @@ -2921,7 +2908,7 @@ pcf_int_ptr_ptr_int_int_int_int_int_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self) v_6 = t_6; v_7 = t_7; v_8 = t_8; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4, v_5, v_6, v_7, v_8); t_0 = v_0; @@ -2945,7 +2932,7 @@ pcf_int_ptr_ptr_ptr_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_2 = PMC_IS_NULL(t_2) ? NULL : VTABLE_get_pointer(interp, t_2);; v_3 = PMC_IS_NULL(t_3) ? NULL : VTABLE_get_pointer(interp, t_3);; v_4 = t_4; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4); t_0 = v_0; @@ -2971,7 +2958,7 @@ pcf_int_ptr_ptr_ptr_int_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_3 = PMC_IS_NULL(t_3) ? NULL : VTABLE_get_pointer(interp, t_3);; v_4 = t_4; v_5 = t_5; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4, v_5); t_0 = v_0; @@ -3001,7 +2988,7 @@ pcf_int_ptr_ptr_ptr_int_int_int_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_5 = t_5; v_6 = t_6; v_7 = t_7; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4, v_5, v_6, v_7); t_0 = v_0; @@ -3037,7 +3024,7 @@ pcf_int_ptr_ptr_ptr_ptr_int_int_int_int_int_int(PARROT_INTERP, PMC *nci, SHIM(PM v_8 = t_8; v_9 = t_9; v_10 = t_10; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4, v_5, v_6, v_7, v_8, v_9, v_10); t_0 = v_0; @@ -3058,7 +3045,7 @@ pcf_void_float_float_float(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_1 = t_1; v_2 = t_2; v_3 = t_3; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); (*fn_pointer)(v_1, v_2, v_3); Parrot_pcc_set_call_from_c_args(interp, call_object, ""); @@ -3079,7 +3066,7 @@ pcf_int_ptr_int_double(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_1 = PMC_IS_NULL(t_1) ? NULL : VTABLE_get_pointer(interp, t_1);; v_2 = t_2; v_3 = t_3; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3); t_0 = v_0; @@ -3105,7 +3092,7 @@ pcf_int_ptr_int_ptr_int_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_3 = PMC_IS_NULL(t_3) ? NULL : VTABLE_get_pointer(interp, t_3);; v_4 = t_4; v_5 = t_5; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4, v_5); t_0 = v_0; @@ -3125,7 +3112,7 @@ pcf_ptr_ptr_STRING(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) Parrot_pcc_fill_params_from_c_args(interp, call_object, "PS", &t_1, &t_2); v_1 = PMC_IS_NULL(t_1) ? NULL : VTABLE_get_pointer(interp, t_1);; v_2 = t_2; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2); if (v_0 != NULL) { @@ -3157,7 +3144,7 @@ pcf_ptr_ptr_int_ptrref_intref_ptr(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_3 = PMC_IS_NULL(t_3) ? NULL : VTABLE_get_pointer(interp, t_3);; v_4 = t_4; v_5 = PMC_IS_NULL(t_5) ? NULL : VTABLE_get_pointer(interp, t_5);; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, &v_3, &v_4, v_5); if (v_0 != NULL) { @@ -3203,7 +3190,7 @@ pcf_int_ptr_ptr_ptr_int_int_int_ptr_int(PARROT_INTERP, PMC *nci, SHIM(PMC *self) v_6 = t_6; v_7 = PMC_IS_NULL(t_7) ? NULL : VTABLE_get_pointer(interp, t_7);; v_8 = t_8; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3, v_4, v_5, v_6, v_7, v_8); t_0 = v_0; @@ -3223,7 +3210,7 @@ pcf_PMC_ptr_STRING(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) Parrot_pcc_fill_params_from_c_args(interp, call_object, "PS", &t_1, &t_2); v_1 = PMC_IS_NULL(t_1) ? NULL : VTABLE_get_pointer(interp, t_1);; v_2 = t_2; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2); t_0 = v_0; @@ -3243,7 +3230,7 @@ pcf_INTVAL_ptr_STRING(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) Parrot_pcc_fill_params_from_c_args(interp, call_object, "PS", &t_1, &t_2); v_1 = PMC_IS_NULL(t_1) ? NULL : VTABLE_get_pointer(interp, t_1);; v_2 = t_2; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2); t_0 = v_0; @@ -3263,7 +3250,7 @@ pcf_STRING_ptr_INTVAL(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) Parrot_pcc_fill_params_from_c_args(interp, call_object, "PI", &t_1, &t_2); v_1 = PMC_IS_NULL(t_1) ? NULL : VTABLE_get_pointer(interp, t_1);; v_2 = t_2; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2); t_0 = v_0; @@ -3285,7 +3272,7 @@ pcf_STRING_ptr_ptr_INTVAL(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) v_1 = PMC_IS_NULL(t_1) ? NULL : VTABLE_get_pointer(interp, t_1);; v_2 = PMC_IS_NULL(t_2) ? NULL : VTABLE_get_pointer(interp, t_2);; v_3 = t_3; - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(v_1, v_2, v_3); t_0 = v_0; @@ -3301,7 +3288,7 @@ pcf_ptr_void(PARROT_INTERP, PMC *nci, SHIM(PMC *self)) PMC * const call_object = Parrot_pcc_get_signature(interp, ctx); PMC * t_0; void * v_0; Parrot_pcc_fill_params_from_c_args(interp, call_object, ""); - GETATTR_NCI_orig_func(interp, nci, orig_func); + fn_pointer = (func_t)D2FPTR(orig_func); v_0 = (*fn_pointer)(); if (v_0 != NULL) { diff --git a/src/oo.c b/src/oo.c index 7bfcbea37f..5bb72d7182 100644 --- a/src/oo.c +++ b/src/oo.c @@ -120,8 +120,6 @@ debug_trace_find_meth(PARROT_INTERP, ARGIN(const PMC *_class), if (sub) { if (sub->vtable->base_type == enum_class_NativePCCMethod) result = "NativePCCMethod"; - else if (sub->vtable->base_type == enum_class_NCI) - result = "NCI"; else result = "Sub"; } diff --git a/src/pmc/namespace.pmc b/src/pmc/namespace.pmc index 2b5c1c7f22..2d407d773a 100644 --- a/src/pmc/namespace.pmc +++ b/src/pmc/namespace.pmc @@ -253,8 +253,7 @@ add_native_to_namespace(PARROT_INTERP, ARGIN(PMC *SELF), ARGIN(STRING *key), ASSERT_ARGS(add_native_to_namespace) if (!PMC_IS_NULL(value) - && (value->vtable->base_type == enum_class_NativePCCMethod || - value->vtable->base_type == enum_class_NCI)) { + && (value->vtable->base_type == enum_class_NativePCCMethod)) { Parrot_NameSpace_attributes * const nsinfo = PARROT_NAMESPACE(SELF); PMC * const classobj = VTABLE_get_class(interp, SELF); diff --git a/src/pmc/nci.pmc b/src/pmc/nci.pmc deleted file mode 100644 index 79b7a34a52..0000000000 --- a/src/pmc/nci.pmc +++ /dev/null @@ -1,370 +0,0 @@ -/* -Copyright (C) 2001-2012, Parrot Foundation. - -=head1 NAME - -src/pmc/nci.pmc - Native Call Interface - -=head1 DESCRIPTION - -The vtable functions for the native C call functions. - -=head2 Methods - -=over 4 - -=cut - -*/ - -/* HEADERIZER HFILE: none */ -/* HEADERIZER BEGIN: static */ -/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */ - -PARROT_IGNORABLE_RESULT -static nci_thunk_t /*@alt void@*/ -build_func(PARROT_INTERP, - ARGIN(PMC *obj), - ARGMOD(Parrot_NCI_attributes *nci)) - __attribute__nonnull__(1) - __attribute__nonnull__(2) - __attribute__nonnull__(3) - FUNC_MODIFIES(*nci); - -#define ASSERT_ARGS_build_func __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ - PARROT_ASSERT_ARG(interp) \ - , PARROT_ASSERT_ARG(obj) \ - , PARROT_ASSERT_ARG(nci)) -/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */ -/* HEADERIZER END: static */ - -/* - -=item C - -Actually build the NCI thunk. - -=cut - -*/ - -PARROT_IGNORABLE_RESULT -static nci_thunk_t -build_func(PARROT_INTERP, ARGIN(PMC *obj), ARGMOD(Parrot_NCI_attributes *nci)) -{ - ASSERT_ARGS(build_func) - - Parrot_nci_sig_to_pcc(interp, nci->signature, - &nci->pcc_params_signature, - &nci->pcc_return_signature); - - /* Arity is length of the signature minus one (the return type). */ - nci->arity = VTABLE_elements(interp, nci->signature) - 1; - - /* Build call function. */ - nci->fb_info = build_call_func(interp, nci->signature); - nci->func = F2DPTR(VTABLE_get_pointer(interp, nci->fb_info)); - PARROT_GC_WRITE_BARRIER(interp, obj); - - return (nci_thunk_t)nci->func; -} - - -pmclass NCI auto_attrs provides invokable { - /* NCI thunk handling attributes */ - ATTR PMC *signature; /* parsed signature */ - ATTR void *func; /* function pointer to call */ - ATTR PMC *fb_info; /* frame-builder info */ - ATTR void *orig_func; /* pointer to wrapped function */ - - /* Parrot Sub-ish attributes */ - ATTR STRING *pcc_params_signature; - ATTR STRING *pcc_return_signature; - ATTR INTVAL arity; - - /* MMD fields */ - ATTR STRING *long_signature; - ATTR PMC *multi_sig; - -/* - -=item C - -Return the MMD signature PMC, if any or C. - -=cut - -*/ - - METHOD get_multisig() { - PMC *sig; - GET_ATTR_multi_sig(INTERP, SELF, sig); - if (PMC_IS_NULL(sig)) - sig = PMCNULL; - RETURN(PMC *sig); - } - -/* - -=item C - -Initializes the NCI with a C function pointer. - -=cut - -*/ - - VTABLE void init() { - UNUSED(INTERP) - PObj_custom_mark_SET(SELF); - } - - VTABLE void *get_pointer() { - UNUSED(INTERP) - return PARROT_NCI(SELF)->orig_func; - } - -/* - -=item C - -=item C - -Call the equivalent C function. - -=cut - -*/ - - VTABLE void set_pmc_keyed(PMC *key, PMC *p) { - STATICSELF.set_pointer_keyed(key, VTABLE_get_pointer(INTERP, p)); - } - - VTABLE void set_pmc_keyed_str(STRING *key, PMC *p) { - STATICSELF.set_pointer_keyed_str(key, VTABLE_get_pointer(INTERP, p)); - } - -/* - -=item C - -Sets the specified function pointer and signature (C<*key>). - -=item C - -Sets the specified function pointer and siganture as described in the string C. - -=cut - -*/ - - VTABLE void set_pointer_keyed(PMC *key, void *func) { - /* Store the original function and signature. */ - SET_ATTR_orig_func(INTERP, SELF, func); - SET_ATTR_signature(INTERP, SELF, key); - } - - VTABLE void set_pointer_keyed_str(STRING *key, void *func) { - SELF.set_pointer_keyed(Parrot_nci_parse_signature(INTERP, key), func); - } - -/* - -=item C - -Mark any referenced strings and PMCs. - -=cut - -*/ - VTABLE void mark() { - if (PARROT_NCI(SELF)) { - Parrot_NCI_attributes * const nci_info = PARROT_NCI(SELF); - - Parrot_gc_mark_PMC_alive(interp, nci_info->signature); - Parrot_gc_mark_PMC_alive(interp, nci_info->fb_info); - Parrot_gc_mark_PMC_alive(interp, nci_info->multi_sig); - - Parrot_gc_mark_STRING_alive(interp, nci_info->long_signature); - Parrot_gc_mark_STRING_alive(interp, nci_info->pcc_params_signature); - Parrot_gc_mark_STRING_alive(interp, nci_info->pcc_return_signature); - } - } - -/* - -=item C - -Creates and returns a clone of the NCI. - -=cut - -*/ - - VTABLE PMC *clone() { - Parrot_NCI_attributes * const nci_info_self = PARROT_NCI(SELF); - - PMC * const ret = Parrot_pmc_new(INTERP, SELF->vtable->base_type); - Parrot_NCI_attributes * const nci_info_ret = PARROT_NCI(ret); - - /* FIXME if data is malloced (JIT/i386!) then we need - * the length of data here, to memcpy it - * ManagedStruct or Buffer? - */ - nci_info_ret->func = nci_info_self->func; - nci_info_ret->fb_info = nci_info_self->fb_info; - nci_info_ret->orig_func = nci_info_self->orig_func; - nci_info_ret->signature = nci_info_self->signature; - nci_info_ret->pcc_params_signature = nci_info_self->pcc_params_signature; - nci_info_ret->pcc_return_signature = nci_info_self->pcc_params_signature; - nci_info_ret->arity = nci_info_self->arity; - PObj_get_FLAGS(ret) = PObj_get_FLAGS(SELF); - - return ret; - } - -/* - -=item C - -Returns whether the NCI is defined. - -=cut - -*/ - - VTABLE INTVAL defined() { - UNUSED(INTERP) - const Parrot_NCI_attributes * const nci_info = PARROT_NCI(SELF); - return nci_info->orig_func != NULL; - } - -/* - -=item C - -Calls the associated C function, returning C<*next>. If the invocant is a -class, the PMC arguments are shifted down. - -=cut - -*/ - - VTABLE opcode_t *invoke(void *next) { - Parrot_NCI_attributes * const nci_info = PARROT_NCI(SELF); - nci_thunk_t func; - PMC *fb_info; - PMC *cont; - - func = (nci_thunk_t)D2FPTR(nci_info->func); - - if (!func) { - /* build the thunk only when necessary */ - func = build_func(interp, SELF, nci_info); - - if (!func) - Parrot_ex_throw_from_c_args(INTERP, NULL, - EXCEPTION_INVALID_OPERATION, - "attempt to call NULL function"); - } - - GET_ATTR_fb_info(INTERP, SELF, fb_info); - - cont = INTERP->current_cont; - func(INTERP, SELF, fb_info); - - /* - * If the NCI function was tailcalled, the return result - * is already passed back to the caller of this frame - * - see Parrot_init_ret_nci(). We therefore invoke the - * return continuation here, which gets rid of this frame - * and returns the real return address - */ - if (!PMC_IS_NULL(cont) - && (PObj_get_FLAGS(cont) & SUB_FLAG_TAILCALL)) { - cont = Parrot_pcc_get_continuation(interp, CURRENT_CONTEXT(interp)); - next = VTABLE_invoke(INTERP, cont, next); - } - - return (opcode_t *)next; - } - -/* - -=item C - -Returns the function pointer as an integer. - -=cut - -*/ - - VTABLE INTVAL get_integer() { - Parrot_NCI_attributes * const nci_info = PARROT_NCI(SELF); - if (!nci_info->func) - build_func(INTERP, SELF, nci_info); - return (INTVAL)nci_info->func; - } - -/* - -=item C - -Returns the boolean value of the pointer. - -=cut - -*/ - - VTABLE INTVAL get_bool() { - UNUSED(INTERP) - const Parrot_NCI_attributes * const nci_info = PARROT_NCI(SELF); - return (0 != (INTVAL)nci_info->orig_func); - } - -/* - -=item C - -Return the arity of the NCI (the number of arguments). - -=cut - -*/ - METHOD arity() { - Parrot_NCI_attributes * const nci_info = PARROT_NCI(SELF); - - if (nci_info) { - if (!nci_info->func) - build_func(INTERP, SELF, nci_info); - if (nci_info->func) { - const INTVAL arity = nci_info->arity; - RETURN(INTVAL arity); - } - } - - Parrot_ex_throw_from_c_args(INTERP, NULL, - EXCEPTION_INVALID_OPERATION, - "You cannot get the arity of an undefined NCI."); - } -} - -/* - -=back - -=head1 SEE ALSO - -F. - -=cut - -*/ - -/* - * Local variables: - * c-file-style: "parrot" - * End: - * vim: expandtab shiftwidth=4 cinoptions='\:2=2' : - */ diff --git a/src/pmc/pmc.num b/src/pmc/pmc.num index 61c9ccc623..01bff76902 100644 --- a/src/pmc/pmc.num +++ b/src/pmc/pmc.num @@ -36,47 +36,46 @@ retcontinuation.pmc 22 exception_handler.pmc 23 coroutine.pmc 24 eval.pmc 25 -nci.pmc 26 # scalars # base types -float.pmc 27 -integer.pmc 28 -bigint.pmc 29 -complex.pmc 30 -string.pmc 31 +float.pmc 26 +integer.pmc 27 +bigint.pmc 28 +complex.pmc 29 +string.pmc 30 # abstract perlscalar.pmc -perlint.pmc 32 -perlstring.pmc 33 -perlundef.pmc 34 -boolean.pmc 35 +perlint.pmc 31 +perlstring.pmc 32 +perlundef.pmc 33 +boolean.pmc 34 -ref.pmc 36 -sharedref.pmc 37 +ref.pmc 35 +sharedref.pmc 36 # arrays XXX this list isn't complete -fixedintegerarray.pmc 38 -iterator.pmc 39 -perlarray.pmc 40 -pmcarray.pmc 41 -sarray.pmc 42 -constsarray.pmc 43 -fixedstringarray.pmc 44 +fixedintegerarray.pmc 37 +iterator.pmc 38 +perlarray.pmc 39 +pmcarray.pmc 40 +sarray.pmc 41 +constsarray.pmc 42 +fixedstringarray.pmc 43 # hashes -hash.pmc 45 -perlhash.pmc 46 -orderedhash.pmc 47 +hash.pmc 44 +perlhash.pmc 45 +orderedhash.pmc 46 # other -parrotclass.pmc 48 -parrotobject.pmc 49 +parrotclass.pmc 47 +parrotobject.pmc 48 -oplib.pmc 50 -opcode.pmc 51 +oplib.pmc 49 +opcode.pmc 50 -callcontext.pmc 52 +callcontext.pmc 51 diff --git a/src/pmc/unmanagedstruct.pmc b/src/pmc/unmanagedstruct.pmc index 976b4dcd3b..4edd2f605e 100644 --- a/src/pmc/unmanagedstruct.pmc +++ b/src/pmc/unmanagedstruct.pmc @@ -529,18 +529,6 @@ ret_pmc(PARROT_INTERP, ARGIN(PMC *pmc), ARGIN(char *p), int type, INTVAL idx) /* this is a raw function pointer - not a PMC */ ret = *(PMC**) p; - /* now check if initializer has a signature attached */ - if (PMC_metadata(ptr)) { - STRING *signature_str = CONST_STRING(interp, "_signature"); - PMC * const sig = Parrot_pmc_getprop(interp, ptr, signature_str); - if (VTABLE_defined(interp, sig)) { - STRING * const sig_str = VTABLE_get_string(interp, sig); - ret = Parrot_pmc_new(interp, enum_class_NCI); - VTABLE_set_pointer_keyed_str(interp, ret, sig_str, - *(PMC **)p); - } - } - return ret; case enum_type_struct_ptr: /* check the metadata for an initializer */ diff --git a/src/utils.c b/src/utils.c index 6d9847dc92..7a4b487ac0 100644 --- a/src/utils.c +++ b/src/utils.c @@ -19,7 +19,6 @@ Opcode helper functions that don't really fit elsewhere. #include "parrot/parrot.h" #include "parrot/extend.h" -#include "pmc/pmc_nci.h" typedef unsigned short _rand_buf[3]; @@ -681,11 +680,6 @@ COMPARE(PARROT_INTERP, ARGIN(void *_a), ARGIN(void *_b), if (PMC_IS_NULL(cmp)) return VTABLE_cmp(interp, (PMC *)_a, (PMC *)_b); - if (cmp->vtable->base_type == enum_class_NCI) { - const sort_func_t f = (sort_func_t)D2FPTR(PARROT_NCI(cmp)->func); - return f(interp, _a, _b); - } - Parrot_ext_call(interp, cmp, cmp_signature, _a, _b, &result); return result; }