org.objectweb.asm.tree.FieldInsnNode.<init>()方法的使用及代码示例

x33g5p2x  于2022-01-19 转载在 其他  
字(5.7k)|赞(0)|评价(0)|浏览(105)

本文整理了Java中org.objectweb.asm.tree.FieldInsnNode.<init>()方法的一些代码示例,展示了FieldInsnNode.<init>()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。FieldInsnNode.<init>()方法的具体详情如下:
包路径:org.objectweb.asm.tree.FieldInsnNode
类名称:FieldInsnNode
方法名:<init>

FieldInsnNode.<init>介绍

[英]Constructs a new FieldInsnNode.
[中]构造一个新的FieldInsnNode。

代码示例

代码示例来源:origin: jphp-group/jphp

public void writePushBooleanAsMemory(boolean value) {
  if (value)
    code.add(new FieldInsnNode(
        GETSTATIC, Type.getInternalName(Memory.class), "TRUE", Type.getDescriptor(Memory.class)
    ));
  else
    code.add(new FieldInsnNode(
        GETSTATIC, Type.getInternalName(Memory.class), "FALSE", Type.getDescriptor(Memory.class)
    ));
  stackPush(Memory.Type.REFERENCE);
}

代码示例来源:origin: jphp-group/jphp

public void writePutStatic(Class clazz, String name, Class fieldClass) {
  code.add(new FieldInsnNode(PUTSTATIC, Type.getInternalName(clazz), name, Type.getDescriptor(fieldClass)));
  stackPop();
}

代码示例来源:origin: jphp-group/jphp

public void writePutDynamic(String name, Class fieldClass) {
  code.add(new FieldInsnNode(
      PUTFIELD,
      method.clazz.node.name,
      name,
      Type.getDescriptor(fieldClass)
  ));
  stackPop();
}

代码示例来源:origin: jphp-group/jphp

public void writePutStatic(String name, Class fieldClass) {
  code.add(new FieldInsnNode(
      PUTSTATIC,
      method.clazz.node.name,
      name,
      Type.getDescriptor(fieldClass)
  ));
  stackPop();
}

代码示例来源:origin: jphp-group/jphp

public void writeGetStatic(Class clazz, String name, Class fieldClass) {
  code.add(new FieldInsnNode(GETSTATIC, Type.getInternalName(clazz), name, Type.getDescriptor(fieldClass)));
  stackPush(null, StackItem.Type.valueOf(fieldClass));
  setStackPeekAsImmutable();
}

代码示例来源:origin: jphp-group/jphp

public void writeGetStatic(String name, Class fieldClass) {
  code.add(new FieldInsnNode(
      GETSTATIC,
      method.clazz.node.name,
      name,
      Type.getDescriptor(fieldClass)
  ));
  stackPush(null, StackItem.Type.valueOf(fieldClass));
  setStackPeekAsImmutable();
}

代码示例来源:origin: jphp-group/jphp

public void writeGetDynamic(String name, Class fieldClass) {
  stackPop();
  code.add(new FieldInsnNode(
      GETFIELD,
      method.clazz.node.name,
      name,
      Type.getDescriptor(fieldClass)
  ));
  stackPush(null, StackItem.Type.valueOf(fieldClass));
  setStackPeekAsImmutable();
}

代码示例来源:origin: jphp-group/jphp

code.add(new FieldInsnNode(
      GETSTATIC, Type.getInternalName(Memory.class), "UNDEFINED", Type.getDescriptor(Memory.class)
  ));
} else if (memory instanceof NullMemory) {
  code.add(new FieldInsnNode(
      GETSTATIC, Type.getInternalName(Memory.class), "NULL", Type.getDescriptor(Memory.class)
  ));

代码示例来源:origin: apache/asterixdb

@Override
public void visitFieldInsn(int opcode, String owner, String name, String desc) {
  mv.visitFieldInsn(opcode, owner, name, desc);
  fieldAccessNode = new FieldInsnNode(opcode, owner, name, desc);
  instructionsAfterFieldAccess.clear();
}

代码示例来源:origin: mjanicek/rembulan

public static AbstractInsnNode loadBoxedBoolean(boolean value) {
  return new FieldInsnNode(
      GETSTATIC,
      Type.getInternalName(Boolean.class),
      value ? "TRUE" : "FALSE",
      Type.getDescriptor(Boolean.class));
}

代码示例来源:origin: org.ow2.asm/asm-tree

@Override
 public AbstractInsnNode clone(final Map<LabelNode, LabelNode> clonedLabels) {
  return new FieldInsnNode(opcode, owner, name, desc).cloneAnnotations(this);
 }
}

代码示例来源:origin: net.sourceforge.cobertura/cobertura

@Override
public void visitFieldInsn(int arg0, String arg1, String arg2, String arg3) {
  super.visitFieldInsn(arg0, arg1, arg2, arg3);
  appendToBacklog(new FieldInsnNode(arg0, arg1, arg2, arg3));
}

代码示例来源:origin: org.ow2.asm/asm-debug-all

@Override
  public AbstractInsnNode clone(final Map<LabelNode, LabelNode> labels) {
    return new FieldInsnNode(opcode, owner, name, desc)
        .cloneAnnotations(this);
  }
}

代码示例来源:origin: org.ow2.asm/asm-tree

@Override
public void visitFieldInsn(
  final int opcode, final String owner, final String name, final String descriptor) {
 instructions.add(new FieldInsnNode(opcode, owner, name, descriptor));
}

代码示例来源:origin: fge/grappa

public CodeBlock putfield(final String className, final String fieldName,
  final String fieldDesc)
{
  instructionList.add(new FieldInsnNode(PUTFIELD, className, fieldName,
    fieldDesc));
  return this;
}

代码示例来源:origin: org.ow2.asm/asm-debug-all

@Override
public void visitFieldInsn(final int opcode, final String owner,
    final String name, final String desc) {
  instructions.add(new FieldInsnNode(opcode, owner, name, desc));
}

代码示例来源:origin: mjanicek/rembulan

public InsnList instantiateInsns() {
  InsnList il = new InsnList();
  doInstantiate(il);
  il.add(new FieldInsnNode(
      PUTSTATIC,
      ownerClassType.getInternalName(),
      fieldName,
      fieldType.getDescriptor()));
  return il;
}

代码示例来源:origin: com.github.bingoohuang/blackcat-instrument

public static InsnList getClassRefInst(Type type, int majorVersion) {
  char charType = type.getDescriptor().charAt(0);
  if (charType == '[' || charType == 'L')
    return getClassConstantRef(type, majorVersion);
  String wrapper = getWrapper(type, charType);
  InsnList list = new InsnList();
  list.add(new FieldInsnNode(GETSTATIC, wrapper, "TYPE", ci(Class.class)));
  return list;
}

代码示例来源:origin: org.parboiled/parboiled-java

protected void convertXLoads(InstructionGroup group) {
  String owner = group.getGroupClassType().getInternalName();
  for (InstructionGraphNode node : group.getNodes()) {
    if (!node.isXLoad()) continue;
    VarInsnNode insn = (VarInsnNode) node.getInstruction();
    FieldNode field = group.getFields().get(insn.var);
    // insert the correct GETFIELD after the xLoad
    group.getInstructions().insert(insn, new FieldInsnNode(GETFIELD, owner, field.name, field.desc));
    // change the load to ALOAD 0
    group.getInstructions().set(insn, new VarInsnNode(ALOAD, 0));
  }
}

代码示例来源:origin: org.parboiled/parboiled-java

private void initializeFields() {
  String internalName = group.getGroupClassType().getInternalName();
  for (FieldNode field : group.getFields()) {
    insert(new InsnNode(DUP));
    // the FieldNodes access and value members have been reused for the var index / Type respectively!
    insert(new VarInsnNode(getLoadingOpcode((Type) field.value), field.access));
    insert(new FieldInsnNode(PUTFIELD, internalName, field.name, field.desc));
  }
}

相关文章

微信公众号

最新文章

更多