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
 

Reply via email to