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;
}
Exemplo n.º 7
0
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;
}