forked from JavaTX/JavaCompilerCore
31 lines
1.0 KiB
Java
31 lines
1.0 KiB
Java
package de.dhbwstuttgart.bytecode;
|
|
|
|
import org.objectweb.asm.*;
|
|
|
|
public class JavaTXSignatureAttribute extends Attribute {
|
|
public String signature;
|
|
|
|
public JavaTXSignatureAttribute() {
|
|
super("JavaTXSignature");
|
|
}
|
|
protected JavaTXSignatureAttribute(String signature) {
|
|
this();
|
|
this.signature = signature;
|
|
}
|
|
|
|
@Override
|
|
protected Attribute read(ClassReader classReader, int offset, int length, char[] charBuffer, int codeAttributeOffset, Label[] labels) {
|
|
var data = new byte[length];
|
|
System.arraycopy(classReader.b, offset, data, 0, length);
|
|
var constantPoolOffset = data[0] << 8 | data[1];
|
|
return new JavaTXSignatureAttribute((String) classReader.readConst(constantPoolOffset, charBuffer));
|
|
}
|
|
|
|
@Override
|
|
protected ByteVector write(ClassWriter classWriter, byte[] code, int codeLength, int maxStack, int maxLocals) {
|
|
var data = new ByteVector();
|
|
data.putShort(classWriter.newConst(this.signature));
|
|
return data;
|
|
}
|
|
}
|