[svn:parrot] r36609 - in branches/rename_pccinvoke/src: . pmc
whiteknight at svn.parrot.org
whiteknight at svn.parrot.org
Thu Feb 12 00:05:10 UTC 2009
Author: whiteknight
Date: Thu Feb 12 00:05:09 2009
New Revision: 36609
URL: https://trac.parrot.org/parrot/changeset/36609
Log:
[rename_pccinvoke] update the calls in src/oo.c. Fix a weird place where a pointer to a PMC pointer was getting marked before it was instantiated. Don't know why this error didn't manifest with Parrot_PCCINVOKE, but whatever
Modified:
branches/rename_pccinvoke/src/oo.c
branches/rename_pccinvoke/src/pmc/cpointer.pmc
Modified: branches/rename_pccinvoke/src/oo.c
==============================================================================
--- branches/rename_pccinvoke/src/oo.c Wed Feb 11 23:55:37 2009 (r36608)
+++ branches/rename_pccinvoke/src/oo.c Thu Feb 12 00:05:09 2009 (r36609)
@@ -107,7 +107,7 @@
return;
/* Import any methods. */
- Parrot_PCCINVOKE(interp, ns, CONST_STRING(interp, "get_associated_methods"), "->P", &methods);
+ Parrot_pcc_invoke_method_from_c_args(interp, ns, CONST_STRING(interp, "get_associated_methods"), "->P", &methods);
if (!PMC_IS_NULL(methods)) {
PMC * const iter = VTABLE_get_iter(interp, methods);
@@ -121,7 +121,7 @@
}
/* Import any vtable methods. */
- Parrot_PCCINVOKE(interp, ns, CONST_STRING(interp, "get_associated_vtable_methods"), "->P", &vtable_overrides);
+ Parrot_pcc_invoke_method_from_c_args(interp, ns, CONST_STRING(interp, "get_associated_vtable_methods"), "->P", &vtable_overrides);
if (!PMC_IS_NULL(vtable_overrides)) {
PMC * const iter = VTABLE_get_iter(interp, vtable_overrides);
@@ -1079,11 +1079,11 @@
ASSERT_ARGS(Parrot_ComputeMRO_C3)
PMC *result;
PMC * const merge_list = pmc_new(interp, enum_class_ResizablePMCArray);
- PMC *immediate_parents;
+ PMC *immediate_parents = pmc_new(interp, enum_class_Undef);
int i, parent_count;
/* Now get immediate parents list. */
- Parrot_PCCINVOKE(interp, _class, CONST_STRING(interp, "parents"),
+ Parrot_pcc_invoke_method_from_c_args(interp, _class, CONST_STRING(interp, "parents"),
"->P", &immediate_parents);
if (!immediate_parents)
@@ -1168,7 +1168,7 @@
return;
/* Get the methods from the role. */
- Parrot_PCCINVOKE(interp, role, CONST_STRING(interp, "methods"), "->P", &methods);
+ Parrot_pcc_invoke_method_from_c_args(interp, role, CONST_STRING(interp, "methods"), "->P", &methods);
if (PMC_IS_NULL(methods))
return;
@@ -1313,7 +1313,7 @@
* that it did itself. Note that we already have the correct methods
* as roles "flatten" the methods they get from other roles into their
* own method list. */
- Parrot_PCCINVOKE(interp, role, CONST_STRING(interp, "roles"), "->P", &roles_of_role);
+ Parrot_pcc_invoke_method_from_c_args(interp, role, CONST_STRING(interp, "roles"), "->P", &roles_of_role);
roles_of_role_count = VTABLE_elements(interp, roles_of_role);
for (i = 0; i < roles_of_role_count; i++) {
Modified: branches/rename_pccinvoke/src/pmc/cpointer.pmc
==============================================================================
--- branches/rename_pccinvoke/src/pmc/cpointer.pmc Wed Feb 11 23:55:37 2009 (r36608)
+++ branches/rename_pccinvoke/src/pmc/cpointer.pmc Thu Feb 12 00:05:09 2009 (r36609)
@@ -90,6 +90,7 @@
if (data->sig)
pobject_lives(interp, (PObj *)data->sig);
+
if (data->pointer) {
if (Parrot_str_not_equal(interp, data->sig, CONST_STRING(interp, "P")) == 0) {
PMC **pmc_pointer = (PMC **) data->pointer;
@@ -102,6 +103,7 @@
pobject_lives(interp, (PObj *) *str_pointer);
}
}
+
}
/*
More information about the parrot-commits
mailing list