コード例 #1
0
        /// <summary>
        /// Calculates the base memory size for this script from the
        /// const pool size and bytecode size
        /// </summary>
        /// <returns></returns>
        public int CalcBaseMemorySize()
        {
            int sz = ByteCode.Length;

            sz += MemoryCalc.CalcSizeOf(ConstPool);

            return(sz);
        }
コード例 #2
0
        public void ReplaceStored(object lOld, object lNew)
        {
            MemoryUsed += MemoryCalc.CalcSizeOf(lNew) - MemoryCalc.CalcSizeOf(lOld);

            if (MemoryUsed > MAX_MEMORY)
            {
                throw new VMException("Out of memory");
            }
        }
コード例 #3
0
        public void OperandStackPush(object obj)
        {
            MemoryUsed += MemoryCalc.CalcSizeOf(obj);

            if (MemoryUsed > MAX_MEMORY)
            {
                throw new VMException("Out of memory");
            }
        }
コード例 #4
0
        public void AddCall(StackFrame f)
        {
            MemoryUsed += MemoryCalc.CalcSizeOf(f.Locals);
            MemoryUsed += StackFrame.MemSize;

            if (MemoryUsed > MAX_MEMORY)
            {
                throw new VMException("Out of memory");
            }
        }
コード例 #5
0
 public void CompleteCall(StackFrame f)
 {
     MemoryUsed -= MemoryCalc.CalcSizeOf(f.Locals);
     MemoryUsed -= StackFrame.MemSize;
 }