[svn:parrot] r41181 - trunk/src

chromatic at svn.parrot.org chromatic at svn.parrot.org
Thu Sep 10 19:36:42 UTC 2009


Author: chromatic
Date: Thu Sep 10 19:36:40 2009
New Revision: 41181
URL: https://trac.parrot.org/parrot/changeset/41181

Log:
[sub] Coalesced repeated calls to Parrot_pcc_get_pc() in
Parrot_Context_get_info(); it's a minor optimization.

Modified:
   trunk/src/sub.c

Modified: trunk/src/sub.c
==============================================================================
--- trunk/src/sub.c	Thu Sep 10 05:55:12 2009	(r41180)
+++ trunk/src/sub.c	Thu Sep 10 19:36:40 2009	(r41181)
@@ -190,6 +190,7 @@
     ASSERT_ARGS(Parrot_Context_get_info)
     PMC                   *subpmc;
     Parrot_Sub_attributes *sub;
+    opcode_t              *pc;
 
     /* set file/line/pc defaults */
     info->file     = CONST_STRING(interp, "(unknown file)");
@@ -228,15 +229,17 @@
         info->fullname = Parrot_full_sub_name(interp, subpmc);
     }
 
+    pc = Parrot_pcc_get_pc(interp, ctx);
+
     /* return here if there is no current pc */
-    if (Parrot_pcc_get_pc(interp, ctx) == NULL)
+    if (!pc)
         return 1;
 
     /* calculate the current pc */
-    info->pc = Parrot_pcc_get_pc(interp, ctx) - sub->seg->base.data;
+    info->pc = pc - sub->seg->base.data;
 
     /* determine the current source file/line */
-    if (Parrot_pcc_get_pc(interp, ctx)) {
+    if (pc) {
         const size_t offs = info->pc;
         size_t i, n;
         opcode_t *pc = sub->seg->base.data;
@@ -261,6 +264,7 @@
             pc += op_info->op_count + var_args;
         }
     }
+
     return 1;
 }
 


More information about the parrot-commits mailing list