EnumStackEltType stackEltType = pointer.getType();
if (!stackEltType.equals(type.getLowType())) {
throw new EnhanceException("type mismatch " + stackEltType
+ " in the stack for " + type.getLowType() + " expected");
}
StackElement newPointer = pointer.getPrevious();
if (type.getCategory() == 2) {
if (newPointer == null) {
throw new EnhanceException(EMPTY_STACK);
}
stackEltType = newPointer.getType();
if (!stackEltType.equals(type.getHighType())) {
throw new EnhanceException("type mismatch " + stackEltType
+ " in the stack for " + type.getHighType()
+ " expected");
}
newPointer = newPointer.getPrevious();
}
return newPointer;
}