%% Unbind the operators in an executable array or packedarray. Leaves the% unbound array or the original object on the stack.%/unbind { 0 index xcheck 1 index type /arraytype eq 2 index type /packedarraytype eq or and { dup length array copy cvx dup 0 exch { dup type /operatortype eq { ( ) cvs cvn cvx } if 0 index xcheck 1 index type /arraytype eq 2 index type /packedarraytype eq or and { unbind } if 3 copy put pop 1 add } forall pop } if} def
%
% Unbind the operators in an executable array or packedarray. Leaves the
% unbound array or the original object on the stack.
%
/unbind {
0 index xcheck
1 index type /arraytype eq
2 index type /packedarraytype eq or and {
dup length array copy cvx
dup 0 exch {
dup type /operatortype eq {
( ) cvs cvn cvx
} if
0 index xcheck
1 index type /arraytype eq
2 index type /packedarraytype eq or and {
unbind
} if
3 copy put pop
1 add
} forall
pop
} if
} def