Reads a JVMS 'verification_type_info' structure and stores it at the given index in the given array. @param verificationTypeInfoOffset the start offset of the 'verification_type_info' structure to read. @param frame the array where the parsed type must be stored. @param index the index in 'fram
(
final int verificationTypeInfoOffset,
final Object[] frame,
final int index,
final char[] charBuffer,
final Label[] labels)
| 3133 | * @return the end offset of the JVMS 'verification_type_info' structure. |
| 3134 | */ |
| 3135 | private int readVerificationTypeInfo( |
| 3136 | final int verificationTypeInfoOffset, |
| 3137 | final Object[] frame, |
| 3138 | final int index, |
| 3139 | final char[] charBuffer, |
| 3140 | final Label[] labels) { |
| 3141 | int currentOffset = verificationTypeInfoOffset; |
| 3142 | int tag = b[currentOffset++] & 0xFF; |
| 3143 | switch (tag) { |
| 3144 | case Frame.ITEM_TOP: |
| 3145 | frame[index] = Opcodes.TOP; |
| 3146 | break; |
| 3147 | case Frame.ITEM_INTEGER: |
| 3148 | frame[index] = Opcodes.INTEGER; |
| 3149 | break; |
| 3150 | case Frame.ITEM_FLOAT: |
| 3151 | frame[index] = Opcodes.FLOAT; |
| 3152 | break; |
| 3153 | case Frame.ITEM_DOUBLE: |
| 3154 | frame[index] = Opcodes.DOUBLE; |
| 3155 | break; |
| 3156 | case Frame.ITEM_LONG: |
| 3157 | frame[index] = Opcodes.LONG; |
| 3158 | break; |
| 3159 | case Frame.ITEM_NULL: |
| 3160 | frame[index] = Opcodes.NULL; |
| 3161 | break; |
| 3162 | case Frame.ITEM_UNINITIALIZED_THIS: |
| 3163 | frame[index] = Opcodes.UNINITIALIZED_THIS; |
| 3164 | break; |
| 3165 | case Frame.ITEM_OBJECT: |
| 3166 | frame[index] = readClass(currentOffset, charBuffer); |
| 3167 | currentOffset += 2; |
| 3168 | break; |
| 3169 | case Frame.ITEM_UNINITIALIZED: |
| 3170 | frame[index] = createLabel(readUnsignedShort(currentOffset), labels); |
| 3171 | currentOffset += 2; |
| 3172 | break; |
| 3173 | default: |
| 3174 | throw new IllegalArgumentException(); |
| 3175 | } |
| 3176 | return currentOffset; |
| 3177 | } |
| 3178 | |
| 3179 | // ---------------------------------------------------------------------------------------------- |
| 3180 | // Methods to parse attributes |
no test coverage detected