本文整理汇总了Java中org.apache.bcel.generic.ConstantPushInstruction类的典型用法代码示例。如果您正苦于以下问题:Java ConstantPushInstruction类的具体用法?Java ConstantPushInstruction怎么用?Java ConstantPushInstruction使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
ConstantPushInstruction类属于org.apache.bcel.generic包,在下文中一共展示了ConstantPushInstruction类的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: emitConstantPushInstruction
import org.apache.bcel.generic.ConstantPushInstruction; //导入依赖的package包/类
private void emitConstantPushInstruction(Element xml_inst, ConstantPushInstruction inst) {
Type type = inst.getType(cpg);
xml_inst.setAttribute("type", type.toString());
xml_inst.setAttribute("value", java.lang.String.valueOf(inst.getValue()));
String op = xml_inst.getName();
op = op.split("_")[0];
xml_inst.setName(op);
}
开发者ID:shannah,项目名称:cn1,代码行数:9,代码来源:ClassToXmlvmProcess.java
示例2: modelNormalInstruction
import org.apache.bcel.generic.ConstantPushInstruction; //导入依赖的package包/类
/**
* This is the default instruction modeling method.
*/
@Override
public void modelNormalInstruction(Instruction ins, int numWordsConsumed, int numWordsProduced) {
int flags = 0;
if (ins instanceof InvokeInstruction)
flags = ValueNumber.RETURN_VALUE;
else if (ins instanceof ArrayInstruction)
flags = ValueNumber.ARRAY_VALUE;
else if (ins instanceof ConstantPushInstruction)
flags = ValueNumber.CONSTANT_VALUE;
// Get the input operands to this instruction.
ValueNumber[] inputValueList = popInputValues(numWordsConsumed);
// See if we have the output operands in the cache.
// If not, push default (fresh) values for the output,
// and add them to the cache.
ValueNumber[] outputValueList = getOutputValues(inputValueList, numWordsProduced, flags);
if (VERIFY_INTEGRITY) {
checkConsumedAndProducedValues(ins, inputValueList, outputValueList);
}
// Push output operands on stack.
pushOutputValues(outputValueList);
}
开发者ID:ytus,项目名称:findbugs-all-the-bugs,代码行数:30,代码来源:ValueNumberFrameModelingVisitor.java
示例3: registerInstructionSources
import org.apache.bcel.generic.ConstantPushInstruction; //导入依赖的package包/类
private void registerInstructionSources() throws DataflowAnalysisException {
for (Iterator<Location> i = cfg.locationIterator(); i.hasNext();) {
Location location = i.next();
Instruction instruction = location.getHandle().getInstruction();
short opcode = instruction.getOpcode();
int produces = instruction.produceStack(cpg);
if (instruction instanceof InvokeInstruction) {
// Model return value
registerReturnValueSource(location);
} else if (opcode == Constants.GETFIELD || opcode == Constants.GETSTATIC) {
// Model field loads
registerFieldLoadSource(location);
} else if (instruction instanceof LDC) {
// Model constant values
registerLDCValueSource(location);
} else if (instruction instanceof LDC2_W) {
// Model constant values
registerLDC2ValueSource(location);
} else if (instruction instanceof ConstantPushInstruction) {
// Model constant values
registerConstantPushSource(location);
} else if (instruction instanceof ACONST_NULL) {
// Model constant values
registerPushNullSource(location);
} else if ((produces == 1 || produces == 2) && !(instruction instanceof LocalVariableInstruction) && !(instruction instanceof CHECKCAST)){
// Model other sources
registerOtherSource(location);
}
}
}
开发者ID:ytus,项目名称:findbugs-all-the-bugs,代码行数:32,代码来源:ForwardTypeQualifierDataflowAnalysis.java
示例4: visitInstruction
import org.apache.bcel.generic.ConstantPushInstruction; //导入依赖的package包/类
private boolean visitInstruction( Instruction i ) {
short opcode = i.getOpcode();
if ((InstructionConstants.INSTRUCTIONS[opcode] != null)
&& !(i instanceof ConstantPushInstruction) && !(i instanceof ReturnInstruction)) { // Handled below
_out.println("il.append(InstructionConstants."
+ i.getName().toUpperCase(Locale.ENGLISH) + ");");
return true;
}
return false;
}
开发者ID:Hu6,项目名称:VestaClient,代码行数:11,代码来源:BCELFactory.java
示例5: noAliasesStoreWithIndexBefore
import org.apache.bcel.generic.ConstantPushInstruction; //导入依赖的package包/类
/**
* Checks that any store in this basic block to the specified variable is the
* result of a new() or a null.
* @param ih handle up to where to investigate.
* @param localVarIndex the local variable index
* @return true if all stores are OK or there are no stores.
*/
boolean noAliasesStoreWithIndexBefore(InstructionHandle ih, LocalVariableGen lg) {
InstructionHandle prev = null;
for (InstructionContext ic : instructions) {
InstructionHandle current = ic.getInstruction();
if (current.equals(ih)) {
break;
}
if (methodGen.instructionStoresTo(current, lg.getIndex())) {
LocalVariableGen l1 = methodGen.findLocalVar(current, lg.getIndex(), false);
if (l1 != lg) {
prev = current;
continue;
}
if (prev != null) {
Instruction i = prev.getInstruction();
if (i instanceof INVOKESPECIAL) {
INVOKESPECIAL invoker = (INVOKESPECIAL) i;
if (invoker.getMethodName(methodGen.getConstantPool()).equals("<init>")
&& isNonEscapingConstructor(invoker)) {
continue;
}
}
if (i instanceof CHECKCAST) {
InstructionHandle pp = prev.getPrev();
if (pp != null) {
i = pp.getInstruction();
}
}
if (i instanceof NEWARRAY
|| i instanceof ANEWARRAY || i instanceof MULTIANEWARRAY
|| i instanceof ConstantPushInstruction || i instanceof ACONST_NULL) {
prev = current;
continue;
}
}
return false;
}
prev = current;
}
return true;
}
开发者ID:pieterhijma,项目名称:cashmere,代码行数:51,代码来源:LoadAwareBasicBlock.java
示例6: registerConstantPushSource
import org.apache.bcel.generic.ConstantPushInstruction; //导入依赖的package包/类
private void registerConstantPushSource(Location location) throws DataflowAnalysisException {
ConstantPushInstruction instruction = (ConstantPushInstruction) location.getHandle().getInstruction();
Number constantValue = instruction.getValue();
registerConstantSource(location, constantValue);
}
开发者ID:ytus,项目名称:findbugs-all-the-bugs,代码行数:7,代码来源:ForwardTypeQualifierDataflowAnalysis.java
示例7: visitConstantPushInstruction
import org.apache.bcel.generic.ConstantPushInstruction; //导入依赖的package包/类
public void visitConstantPushInstruction( ConstantPushInstruction i ) {
createConstant(i.getValue());
}
开发者ID:Hu6,项目名称:VestaClient,代码行数:4,代码来源:BCELFactory.java
注:本文中的org.apache.bcel.generic.ConstantPushInstruction类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论