Author: mdiep
Date: Fri Mar 2 14:16:04 2007
New Revision: 17282
Modified:
trunk/include/parrot/interpreter.h
trunk/include/parrot/resources.h
trunk/src/inter_misc.c
trunk/src/ops/core.ops
trunk/src/ops/object.ops
trunk/src/pmc/sub.pmc
trunk/src/register.c
trunk/src/sub.c
trunk/t/pmc/object-meths.t
Log:
[core]: Remove the unneeded current_method member from the interpreter struct
Modified: trunk/include/parrot/interpreter.h
==============================================================================
--- trunk/include/parrot/interpreter.h (original)
+++ trunk/include/parrot/interpreter.h Fri Mar 2 14:16:04 2007
@@ -228,7 +228,6 @@
*/
PMC *current_cont; /* the return continuation PMC */
PMC *current_object; /* current object if a method call */
- STRING *current_method; /* name of method */
opcode_t *current_pc; /* program counter of Sub invocation */
PMC *current_namespace; /* The namespace we're currently in */
INTVAL current_HLL; /* see also src/hll.c */
@@ -420,7 +419,6 @@
*/
PMC *current_cont; /* the return continuation PMC */
PMC *current_object; /* current object if a method
call */
- STRING *current_method; /* name of method */
};
/* typedef struct parrot_interp_t Interp; done in parrot.h so that
Modified: trunk/include/parrot/resources.h
==============================================================================
--- trunk/include/parrot/resources.h (original)
+++ trunk/include/parrot/resources.h Fri Mar 2 14:16:04 2007
@@ -140,7 +140,6 @@
CURRENT_LEXPAD,
/* interpinfo_s constants */
- CURRENT_METHOD,
EXECUTABLE_FULLNAME,
EXECUTABLE_BASENAME,
} Interpinfo_enum;
Modified: trunk/src/inter_misc.c
==============================================================================
--- trunk/src/inter_misc.c (original)
+++ trunk/src/inter_misc.c Fri Mar 2 14:16:04 2007
@@ -309,8 +309,6 @@
int pos;
switch (what) {
- case CURRENT_METHOD:
- return CONTEXT(interp->ctx)->current_method;
case EXECUTABLE_FULLNAME:
return VTABLE_get_string(interp,
VTABLE_get_pmc_keyed_int(interp, interp->iglobals,
Modified: trunk/src/ops/core.ops
==============================================================================
--- trunk/src/ops/core.ops (original)
+++ trunk/src/ops/core.ops Fri Mar 2 14:16:04 2007
@@ -881,7 +881,7 @@
=item B<interpinfo>(out STR, in INT)
-.CURRENT_METHOD, .EXECUTABLE_FULLNAME, .EXECUTABLE_BASENAME
+.EXECUTABLE_FULLNAME, .EXECUTABLE_BASENAME
=back
Modified: trunk/src/ops/object.ops
==============================================================================
--- trunk/src/ops/object.ops (original)
+++ trunk/src/ops/object.ops Fri Mar 2 14:16:04 2007
@@ -56,7 +56,6 @@
next = expr NEXT();
interp->current_object = object;
interp->current_cont = NEED_CONTINUATION;
- interp->current_method = meth;
method_pmc = VTABLE_find_method(interp, object, meth);
if (!method_pmc) {
real_exception(interp, next, METH_NOT_FOUND,
@@ -78,7 +77,6 @@
next = expr NEXT();
interp->current_object = object;
interp->current_cont = NEED_CONTINUATION;
- interp->current_method = VTABLE_get_string(interp, method_pmc);
dest = (opcode_t *)VTABLE_invoke(interp, method_pmc, next);
goto ADDRESS(dest);
}
@@ -94,7 +92,6 @@
next = expr NEXT();
interp->current_object = object;
interp->current_cont = $3;
- interp->current_method = meth;
method_pmc = VTABLE_find_method(interp, object, meth);
if (!method_pmc) {
real_exception(interp, next, METH_NOT_FOUND,
@@ -115,7 +112,6 @@
next = expr NEXT();
interp->current_object = object;
interp->current_cont = $3;
- interp->current_method = VTABLE_get_string(interp, method_pmc);
dest = (opcode_t *)VTABLE_invoke(interp, method_pmc, next);
goto ADDRESS(dest);
}
@@ -131,7 +127,6 @@
interp->current_cont = CONTEXT(interp->ctx)->current_cont;
PObj_get_FLAGS(interp->current_cont) |= SUB_FLAG_TAILCALL;
interp->current_object = object;
- interp->current_method = meth;
method_pmc = VTABLE_find_method(interp, object, meth);
if (!method_pmc) {
real_exception(interp, next, METH_NOT_FOUND,
@@ -151,7 +146,6 @@
interp->current_cont = CONTEXT(interp->ctx)->current_cont;
PObj_get_FLAGS(interp->current_cont) |= SUB_FLAG_TAILCALL;
interp->current_object = object;
- interp->current_method = VTABLE_get_string(interp, method_pmc);
dest = (opcode_t *)VTABLE_invoke(interp, method_pmc, next);
goto ADDRESS(dest);
}
Modified: trunk/src/pmc/sub.pmc
==============================================================================
--- trunk/src/pmc/sub.pmc (original)
+++ trunk/src/pmc/sub.pmc Fri Mar 2 14:16:04 2007
@@ -288,8 +288,6 @@
if (!PMC_IS_NULL(INTERP->current_object)) {
context->current_object = INTERP->current_object;
INTERP->current_object = NULL;
- context->current_method = INTERP->current_method;
- INTERP->current_method = NULL;
}
context->current_HLL = sub->HLL_id;
context->current_namespace = sub->namespace_stash;
Modified: trunk/src/register.c
==============================================================================
--- trunk/src/register.c (original)
+++ trunk/src/register.c Fri Mar 2 14:16:04 2007
@@ -233,7 +233,6 @@
ctx->lex_pad = PMCNULL;
ctx->outer_ctx = NULL;
ctx->current_cont = NULL;
- ctx->current_method = NULL; /* XXX who clears it? */
ctx->current_object = NULL; /* XXX who clears it? */
ctx->current_HLL = 0;
if (old) {
Modified: trunk/src/sub.c
==============================================================================
--- trunk/src/sub.c (original)
+++ trunk/src/sub.c Fri Mar 2 14:16:04 2007
@@ -57,9 +57,6 @@
obj = (PObj*)ctx->current_cont;
if (obj && !PObj_live_TEST(obj))
pobject_lives(interp, obj);
- obj = (PObj*)ctx->current_method;
- if (obj)
- pobject_lives(interp, obj);
obj = (PObj*)ctx->current_namespace;
if (obj)
pobject_lives(interp, obj);
Modified: trunk/t/pmc/object-meths.t
==============================================================================
--- trunk/t/pmc/object-meths.t (original)
+++ trunk/t/pmc/object-meths.t Fri Mar 2 14:16:04 2007
@@ -860,15 +860,15 @@
.namespace ["Foo"]
.pcc_sub meth:
print "in meth\n"
- .include "interpinfo.pasm"
- interpinfo S0, .INTERPINFO_CURRENT_METHOD
- print S0
+ getinterp P0
+ set P1, P0["sub"]
+ print P1
print "\n"
returncc
CODE
main
in meth
-meth
+parrot;Foo;meth
back
OUTPUT