static fz_error pspop(psstack *st) { if (!pscheckoverflow(st, 1)) return fz_stackoverflow; ++st->sp; return fz_okay; }
static fz_error psindex(psstack *st, int i) { if (!pscheckoverflow(st, 1)) return fz_stackoverflow; --st->sp; st->stack[st->sp] = st->stack[st->sp + 1 + i]; return fz_okay; }
static fz_error pspushreal(psstack *st, float real) { if (!pscheckoverflow(st, 1)) return fz_stackoverflow; st->stack[--st->sp].type = PSREAL; st->stack[st->sp].u.f = real; return fz_okay; }
static fz_error pspushint(psstack *st, int intg) { if (!pscheckoverflow(st, 1)) return fz_stackoverflow; st->stack[--st->sp].type = PSINT; st->stack[st->sp].u.i = intg; return fz_okay; }
static fz_error pspushbool(psstack *st, int booln) { if (!pscheckoverflow(st, 1)) return fz_stackoverflow; st->stack[--st->sp].type = PSBOOL; st->stack[st->sp].u.b = booln; return fz_okay; }
static fz_error pscopy(psstack *st, int n) { int i; if (!pscheckoverflow(st, n)) return fz_stackoverflow; for (i = 0; i < n; i++) { st->stack[st->sp - n + i] = st->stack[st->sp + i]; } st->sp -= n; return fz_okay; }
static fz_error * pscopy(psstack *st, int n) { int i; if (!pscheckoverflow(st, n)) return fz_stackoverflow; for (i = st->sp + n - 1; i <= st->sp; ++i) { st->stack[i - n] = st->stack[i]; } st->sp -= n; return fz_okay; }