コード例 #1
0
ファイル: ByteCode_instanceof.cs プロジェクト: jdewald/toyvm
        public ByteCode_instanceof(byte code,MSBBinaryReaderWrapper reader,ConstantPoolInfo[] pool)
            : base(code)
        {
            name = "instanceof";
            size = 3; // 2 bytes defining index into operand pool

            UInt16 methodIndex = reader.ReadUInt16();
            clazz = (ConstantPoolInfo_Class)pool[methodIndex - 1];
            className = clazz.getClassName();
        }
コード例 #2
0
ファイル: ByteCode_checkcast.cs プロジェクト: jdewald/toyvm
        public ByteCode_checkcast(byte code,MSBBinaryReaderWrapper reader,ConstantPoolInfo[] pool)
            : base(code)
        {
            name = "checkcast";
            size = 3; // 2 bytes defining index into operand pool

            UInt16 methodIndex = reader.ReadUInt16();
            reference = (ConstantPoolInfo_Class)pool[methodIndex - 1];

            // check for array type
            if (reference.getClassName().StartsWith("[L")){

                className = reference.getClassName();
                // [L...;
                className = className.Substring(2,className.Length-3);
                isArray = true;
            }
            else {
                className = reference.getClassName();
            }
        }