本文整理汇总了Java中proguard.classfile.instruction.InstructionConstants.OP_GETSTATIC属性的典型用法代码示例。如果您正苦于以下问题:Java InstructionConstants.OP_GETSTATIC属性的具体用法?Java InstructionConstants.OP_GETSTATIC怎么用?Java InstructionConstants.OP_GETSTATIC使用的例子?那么, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在类proguard.classfile.instruction.InstructionConstants
的用法示例。
在下文中一共展示了InstructionConstants.OP_GETSTATIC属性的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: visitConstantInstruction
public void visitConstantInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, ConstantInstruction constantInstruction)
{
byte opcode = constantInstruction.opcode;
// Check for instructions that might cause side effects.
if (opcode == InstructionConstants.OP_GETSTATIC ||
opcode == InstructionConstants.OP_PUTSTATIC ||
opcode == InstructionConstants.OP_GETFIELD ||
opcode == InstructionConstants.OP_PUTFIELD ||
opcode == InstructionConstants.OP_INVOKEVIRTUAL ||
opcode == InstructionConstants.OP_INVOKESPECIAL ||
opcode == InstructionConstants.OP_INVOKESTATIC ||
opcode == InstructionConstants.OP_INVOKEINTERFACE)
{
// Check if the field is write-only or volatile, or if the invoked
// method is causing any side effects.
clazz.constantPoolEntryAccept(constantInstruction.constantIndex, this);
}
}
示例2: visitConstantInstruction
public void visitConstantInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, ConstantInstruction constantInstruction)
{
byte opcode = constantInstruction.opcode;
// Check for instructions that involve fields.
switch (opcode)
{
case InstructionConstants.OP_LDC:
case InstructionConstants.OP_LDC_W:
// Mark the field, if any, as being read from and written to.
reading = true;
writing = true;
clazz.constantPoolEntryAccept(constantInstruction.constantIndex, this);
break;
case InstructionConstants.OP_GETSTATIC:
case InstructionConstants.OP_GETFIELD:
// Mark the field as being read from.
reading = true;
writing = false;
clazz.constantPoolEntryAccept(constantInstruction.constantIndex, this);
break;
case InstructionConstants.OP_PUTSTATIC:
case InstructionConstants.OP_PUTFIELD:
// Mark the field as being written to.
reading = false;
writing = true;
clazz.constantPoolEntryAccept(constantInstruction.constantIndex, this);
break;
}
}
示例3: visitConstantInstruction
public void visitConstantInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, ConstantInstruction constantInstruction)
{
byte opcode = constantInstruction.opcode;
// Check for instructions that may throw exceptions.
switch (opcode)
{
case InstructionConstants.OP_GETSTATIC:
case InstructionConstants.OP_PUTSTATIC:
case InstructionConstants.OP_GETFIELD:
case InstructionConstants.OP_PUTFIELD:
case InstructionConstants.OP_INVOKEVIRTUAL:
case InstructionConstants.OP_INVOKESPECIAL:
case InstructionConstants.OP_INVOKESTATIC:
case InstructionConstants.OP_INVOKEINTERFACE:
case InstructionConstants.OP_NEW:
case InstructionConstants.OP_ANEWARRAY:
case InstructionConstants.OP_CHECKCAST:
case InstructionConstants.OP_INSTANCEOF:
case InstructionConstants.OP_MULTIANEWARRAY:
// These instructions may throw exceptions.
mayThrowExceptions = true;
}
// case InstructionConstants.OP_INVOKEVIRTUAL:
// case InstructionConstants.OP_INVOKESPECIAL:
// case InstructionConstants.OP_INVOKESTATIC:
// case InstructionConstants.OP_INVOKEINTERFACE:
// // Check if the invoking the method may throw an exception.
// clazz.constantPoolEntryAccept(constantInstruction.constantIndex, this);
}
示例4: visitConstantInstruction
public void visitConstantInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, ConstantInstruction constantInstruction)
{
switch (constantInstruction.opcode)
{
case InstructionConstants.OP_GETSTATIC:
case InstructionConstants.OP_GETFIELD:
replaceAnyPushInstruction(clazz, offset, constantInstruction);
break;
case InstructionConstants.OP_INVOKEVIRTUAL:
case InstructionConstants.OP_INVOKESPECIAL:
case InstructionConstants.OP_INVOKESTATIC:
case InstructionConstants.OP_INVOKEINTERFACE:
if (constantInstruction.stackPushCount(clazz) > 0 &&
!sideEffectInstructionChecker.hasSideEffects(clazz,
method,
codeAttribute,
offset,
constantInstruction))
{
replaceAnyPushInstruction(clazz, offset, constantInstruction);
}
break;
case InstructionConstants.OP_CHECKCAST:
replaceReferencePushInstruction(clazz, offset, constantInstruction);
break;
}
}
示例5: invokeMember
public void invokeMember(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, ConstantInstruction constantInstruction, Stack stack)
{
int constantIndex = constantInstruction.constantIndex;
switch (constantInstruction.opcode)
{
case InstructionConstants.OP_GETSTATIC:
isStatic = true;
isLoad = true;
break;
case InstructionConstants.OP_PUTSTATIC:
isStatic = true;
isLoad = false;
break;
case InstructionConstants.OP_GETFIELD:
isStatic = false;
isLoad = true;
break;
case InstructionConstants.OP_PUTFIELD:
isStatic = false;
isLoad = false;
break;
case InstructionConstants.OP_INVOKESTATIC:
isStatic = true;
break;
case InstructionConstants.OP_INVOKEVIRTUAL:
case InstructionConstants.OP_INVOKESPECIAL:
case InstructionConstants.OP_INVOKEINTERFACE:
isStatic = false;
break;
}
// Pop the parameters and push the return value.
this.stack = stack;
clazz.constantPoolEntryAccept(constantIndex, this);
this.stack = null;
}