All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.packenius.datadivider.javaclass.attr.StackMap_AppendFrame Maven / Gradle / Ivy

package com.packenius.datadivider.javaclass.attr;

import com.packenius.dumpapi.DumpReader;

/**
 * @author Christian Packenius, 2016.
 */
public class StackMap_AppendFrame extends StackMapFrame {
    public final short tag;

    public final int offsetDelta;

    public final StackMap_VerificationTypeInfo[] locals;

    /**
     * Konstruktor.
     */
    public StackMap_AppendFrame(DumpReader reader) {
        super(reader);

        tag = reader.readU1("Tag: ##DEC##").value;
        if (tag < 252 || tag > 254) {
            throw new RuntimeException("Tag != 252..254 (APPEND_FRAME)!");
        }

        offsetDelta = reader.readBigEndianU2("Offset delta: ##DEC##").value;

        int localsCount = tag - 251;

        locals = new StackMap_VerificationTypeInfo[localsCount];
        for (int i = 0; i < localsCount; i++) {
            locals[i] = new StackMap_VerificationTypeInfo(reader);
        }

        setEndAddress(reader);
    }

    @Override
    public String toString() {
        return "Append Frame";
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy