[svn:parrot] r45001 - branches/pcc_megrecells/src/pmc

bacek at svn.parrot.org bacek at svn.parrot.org
Thu Mar 18 09:48:29 UTC 2010


Author: bacek
Date: Thu Mar 18 09:48:29 2010
New Revision: 45001
URL: https://trac.parrot.org/parrot/changeset/45001

Log:
Store new size on push_foo

Modified:
   branches/pcc_megrecells/src/pmc/callcontext.pmc

Modified: branches/pcc_megrecells/src/pmc/callcontext.pmc
==============================================================================
--- branches/pcc_megrecells/src/pmc/callcontext.pmc	Thu Mar 18 09:47:59 2010	(r45000)
+++ branches/pcc_megrecells/src/pmc/callcontext.pmc	Thu Mar 18 09:48:29 2010	(r45001)
@@ -797,27 +797,35 @@
     }
 
     VTABLE void push_integer(INTVAL value) {
-        Pcc_cell *cell = get_cell_at(INTERP, SELF, 1 + STATICSELF.elements());
+        INTVAL    pos  = STATICSELF.elements();
+        Pcc_cell *cell = get_cell_at(INTERP, SELF, pos + 1);
         cell->u.i      = value;
         cell->type     = INTCELL;
+        SET_ATTR_num_positionals(INTERP, SELF, pos + 1);
     }
 
     VTABLE void push_float(FLOATVAL value) {
-        Pcc_cell *cell = get_cell_at(INTERP, SELF, 1 + STATICSELF.elements());
+        INTVAL    pos  = STATICSELF.elements();
+        Pcc_cell *cell = get_cell_at(INTERP, SELF, pos + 1);
         cell->u.n      = value;
         cell->type     = FLOATCELL;
+        SET_ATTR_num_positionals(INTERP, SELF, pos + 1);
     }
 
     VTABLE void push_string(STRING *value) {
-        Pcc_cell *cell = get_cell_at(INTERP, SELF, 1 + STATICSELF.elements());
+        INTVAL    pos  = STATICSELF.elements();
+        Pcc_cell *cell = get_cell_at(INTERP, SELF, pos + 1);
         cell->u.s      = value;
         cell->type     = STRINGCELL;
+        SET_ATTR_num_positionals(INTERP, SELF, pos + 1);
     }
 
     VTABLE void push_pmc(PMC *value) {
-        Pcc_cell *cell = get_cell_at(INTERP, SELF, 1 + STATICSELF.elements());
+        INTVAL    pos  = STATICSELF.elements();
+        Pcc_cell *cell = get_cell_at(INTERP, SELF, pos + 1);
         cell->u.p      = value;
         cell->type     = PMCCELL;
+        SET_ATTR_num_positionals(INTERP, SELF, pos + 1);
     }
 
 


More information about the parrot-commits mailing list