[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