public CallStackItem push(TraceInfo trace, IObject self, Memory[] args, String function, String clazz, String staticClazz) { if (callStackTop >= callStack.length){ CallStackItem[] newCallStack = new CallStackItem[callStack.length * 2]; System.arraycopy(callStack, 0, newCallStack, 0, callStack.length); callStack = newCallStack; } CallStackItem result; if (callStackTop < maxCallStackTop) { result = callStack[callStackTop++]; result.setParameters(trace, self, args, function, clazz, staticClazz); } else { callStack[callStackTop++] = result = new CallStackItem(trace, self, args, function, clazz, staticClazz); } maxCallStackTop = callStackTop; return result; }