本文整理了Java中org.objectweb.asm.tree.LocalVariableNode.<init>()
方法的一些代码示例,展示了LocalVariableNode.<init>()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。LocalVariableNode.<init>()
方法的具体详情如下:
包路径:org.objectweb.asm.tree.LocalVariableNode
类名称:LocalVariableNode
方法名:<init>
[英]Constructs a new LocalVariableNode.
[中]构造一个新的LocalVariableNode。
代码示例来源:origin: jphp-group/jphp
@SuppressWarnings("unchecked")
void writeFooter(){
LabelNode endL = new LabelNode();
node.instructions.add(endL);
for(LocalVariable variable : localVariables.values()){
String description = Type.getDescriptor(variable.getClazz() == null ? Object.class : variable.getClazz());
if (variable.name.equals("~this")) {
//if (variable.getClazz() != Memory.class && !clazz.statement.isTrait()) {
description = "L" + clazz.entity.getCompiledInternalName() + ";";
//}
}
node.localVariables.add(new LocalVariableNode(
variable.name,
description,
null,
variable.label == null ? labelStart : variable.label,
variable.getEndLabel() == null ? endL : variable.getEndLabel(),
variable.index
));
}
//node.maxStack = this.stackMaxSize; !!! we don't need this, see: ClassWriter.COMPUTE_FRAMES
//node.maxLocals = this.localVariables.size();
}
代码示例来源:origin: qmx/jitescript
public CodeBlock visitLocalVariable(final String varName, final String varDesc, final String signature, final LabelNode scopeStart,
final LabelNode scopeEnd, final int varIndex) {
localVariableList.add(new LocalVariableNode(varName, varDesc, signature, scopeStart, scopeEnd, varIndex));
return this;
}
代码示例来源:origin: apache/felix
public void addLocalVariable(String name, String desc, String signature, int index) {
m_locals.put(index, new LocalVariableNode(name, desc, signature, null, null, index));
if (index >= m_argsVarLength) {
// keep only argument-related local variables definitions (others relate to code which isn't in this method)
return;
}
if (m_argLocalVariables == null) {
m_argLocalVariables = new ArrayList<LocalVariableNode>();
}
m_argLocalVariables.add(new LocalVariableNode(name, desc, signature, null, null, index));
}
代码示例来源:origin: fge/grappa
public CodeBlock visitLocalVariable(final String varName,
final String varDesc, @Nullable final String signature,
final LabelNode scopeStart, final LabelNode scopeEnd,
final int varIndex)
{
localVariableList.add(new LocalVariableNode(varName, varDesc, signature,
scopeStart, scopeEnd, varIndex));
return this;
}
代码示例来源:origin: org.parboiled/parboiled-java
@Override
public void visitLocalVariable(String name, String desc, String signature, Label start, Label end, int index) {
// only remember the local variables of Type org.parboiled.support.Var that are not parameters
if (index > parameterCount && Var.class.isAssignableFrom(getClassForType(Type.getType(desc)))) {
if (localVarVariables == null) localVarVariables = new ArrayList<LocalVariableNode>();
localVarVariables.add(new LocalVariableNode(name, desc, null, null, null, index));
}
}
代码示例来源:origin: fge/grappa
@Override
public void visitLocalVariable(final String name, final String desc,
final String signature, final Label start, final Label end,
final int index)
{
// only remember the local variables of Type com.github.fge.grappa.support.Var that are not parameters
final Type type = Type.getType(desc);
if (index > parameterCount
&& Var.class.isAssignableFrom(getClassForType(type)))
localVarVariables.add(new LocalVariableNode(name, desc, null, null,
null, index));
}
代码示例来源:origin: mjanicek/rembulan
private List<LocalVariableNode> baseLocals(LabelNode l_begin, LabelNode l_end) {
List<LocalVariableNode> locals = new ArrayList<>();
locals.add(new LocalVariableNode("this", context.thisClassType().getDescriptor(), null, l_begin, l_end, 0));
locals.add(new LocalVariableNode("context", Type.getDescriptor(ExecutionContext.class), null, l_begin, l_end, LV_CONTEXT));
locals.add(new LocalVariableNode("rp", Type.INT_TYPE.getDescriptor(), null, l_begin, l_end, LV_RESUME));
if (context.isVararg()) {
locals.add(new LocalVariableNode(
"varargs",
ASMUtils.arrayTypeFor(Object.class).getDescriptor(),
null,
l_begin,
l_end,
LV_VARARGS
));
}
for (int i = 0; i < numOfRegisters(); i++) {
locals.add(new LocalVariableNode("s_" + i, Type.getDescriptor(Object.class), null, l_begin, l_end, slotOffset() + i));
}
return locals;
}
代码示例来源:origin: org.ow2.asm/asm-debug-all
@Override
public void visitLocalVariable(final String name, final String desc,
final String signature, final Label start, final Label end,
final int index) {
localVariables.add(new LocalVariableNode(name, desc, signature,
getLabelNode(start), getLabelNode(end), index));
}
代码示例来源:origin: org.multiverse/multiverse-instrumentation
public static List cloneVariableTable(MethodNode methodNode, CloneMap cloneMap) {
List<LocalVariableNode> result = new LinkedList<LocalVariableNode>();
//copy all the rest of the local variables.
for (LocalVariableNode originalLocalVar : (List<LocalVariableNode>) methodNode.localVariables) {
LocalVariableNode clonedLocalVar = new LocalVariableNode(
originalLocalVar.name,
originalLocalVar.desc,
originalLocalVar.signature,
cloneMap.get(originalLocalVar.start),
cloneMap.get(originalLocalVar.end),
originalLocalVar.index);
result.add(clonedLocalVar);
}
return result;
}
代码示例来源:origin: org.ow2.asm/asm-tree
@Override
public void visitLocalVariable(
final String name,
final String descriptor,
final String signature,
final Label start,
final Label end,
final int index) {
localVariables.add(
new LocalVariableNode(
name, descriptor, signature, getLabelNode(start), getLabelNode(end), index));
}
代码示例来源:origin: org.multiverse/multiverse-instrumentation
public static List<LocalVariableNode> cloneLocalVariableTable(MethodNode originalMethod, CloneMap cloneMap) {
if (originalMethod.localVariables == null) {
return null;
}
List<LocalVariableNode> localVariableTable = new LinkedList<LocalVariableNode>();
for (LocalVariableNode localVariableNode : (List<LocalVariableNode>) originalMethod.localVariables) {
LocalVariableNode cloned = new LocalVariableNode(
localVariableNode.name,
localVariableNode.desc,
localVariableNode.signature,
cloneMap.get(localVariableNode.start),
cloneMap.get(localVariableNode.end),
localVariableNode.index
);
localVariableTable.add(cloned);
}
return localVariableTable;
}
代码示例来源:origin: org.multiverse/multiverse-alpha-unborn
LocalVariableNode transactionVar = new LocalVariableNode(
"transaction",
Type.getDescriptor(AlphaTransaction.class),
LocalVariableNode tranlocalVar = new LocalVariableNode(
"tranlocalThis",
internalToDesc(tranlocalName),
LocalVariableNode clonedLocalVar = new LocalVariableNode(
originalLocalVar.name,
originalLocalVar.desc,
代码示例来源:origin: usethesource/rascal
List<LocalVariableNode> buildLocalVariables(IList iList) {
ArrayList<LocalVariableNode> al = new ArrayList<LocalVariableNode>();
for (IValue v : iList) {
al.add(new LocalVariableNode(((IString)((IConstructor)v).get(0)).getValue(),
((IString)((IConstructor)v).get(1)).getValue(),
emptyIsNull(((IString)((IConstructor)v).get(2)).getValue()),
getLabel(((IInteger)((IConstructor)v).get(3)).intValue()),
getLabel(((IInteger)((IConstructor)v).get(4)).intValue()),
((IInteger)((IConstructor)v).get(5)).intValue()));
}
return al;
}
代码示例来源:origin: mjanicek/rembulan
locals.add(new LocalVariableNode("this", context.thisClassType().getDescriptor(), null, begin, end, 0));
locals.add(new LocalVariableNode("rp", Type.INT_TYPE.getDescriptor(), null, begin, end, 1));
if (context.isVararg()) {
locals.add(new LocalVariableNode("varargs", ASMUtils.arrayTypeFor(Object.class).getDescriptor(), null, begin, end, 2));
locals.add(new LocalVariableNode("r_" + i, Type.getDescriptor(Object.class), null, begin, end, regOffset + i));
代码示例来源:origin: mjanicek/rembulan
LabelNode end = new LabelNode();
node.localVariables.add(new LocalVariableNode("this", context.thisClassType().getDescriptor(), null, begin, end, 0));
Type.getDescriptor(Variable.class)));
node.localVariables.add(new LocalVariableNode(name, Type.getDescriptor(Variable.class), null, begin, end, idx));
代码示例来源:origin: mjanicek/rembulan
il.add(end);
locals.add(new LocalVariableNode("this", context.thisClassType().getDescriptor(), null, begin, end, 0));
locals.add(new LocalVariableNode("context", Type.getDescriptor(ExecutionContext.class), null, begin, end, 1));
locals.add(new LocalVariableNode("suspendedState", context.savedStateClassType().getDescriptor(), null, begin, end, 2));
locals.add(new LocalVariableNode("ss", Type.getDescriptor(DefaultSavedState.class), null, vars, end, 3));
il.add(end);
locals.add(new LocalVariableNode("this", context.thisClassType().getDescriptor(), null, begin, end, 0));
locals.add(new LocalVariableNode("context", Type.getDescriptor(ExecutionContext.class), null, begin, end, 1));
locals.add(new LocalVariableNode("suspendedState", context.savedStateClassType().getDescriptor(), null, begin, end, 2));
代码示例来源:origin: org.multiverse/multiverse-alpha-unborn
LocalVariableNode transactionVar = new LocalVariableNode(
"transaction",
Type.getDescriptor(AlphaTransaction.class),
代码示例来源:origin: org.ow2.asm/asm-commons
if (start != end) {
newLocalVariables.add(
new LocalVariableNode(
localVariableNode.name,
localVariableNode.desc,
代码示例来源:origin: mjanicek/rembulan
locals.add(new LocalVariableNode("stack", arrayType.getDescriptor(), null, begin, end, lv_idx_stack));
locals.add(new LocalVariableNode("args", arrayType.getDescriptor(), null, begin, end, lv_idx_args));
代码示例来源:origin: mjanicek/rembulan
int lv_idx_i = nextLocalVariableIndex() + 2;
locals.add(new LocalVariableNode("tab", Type.getDescriptor(Table.class), null, begin, end, lv_idx_tab));
locals.add(new LocalVariableNode("rbuf", Type.getDescriptor(ReturnBuffer.class), null, begin, end, lv_idx_stack));
locals.add(new LocalVariableNode("i", Type.INT_TYPE.getDescriptor(), null, begin, end, lv_idx_i));
内容来源于网络,如有侵权,请联系作者删除!