本文整理汇总了Java中org.apache.bcel.generic.LDC.getValue方法的典型用法代码示例。如果您正苦于以下问题:Java LDC.getValue方法的具体用法?Java LDC.getValue怎么用?Java LDC.getValue使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.apache.bcel.generic.LDC
的用法示例。
在下文中一共展示了LDC.getValue方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: visitLDC
import org.apache.bcel.generic.LDC; //导入方法依赖的package包/类
@Override
public void visitLDC(LDC ldc) {
Taint taint = new Taint(Taint.State.SAFE);
Object value = ldc.getValue(cpg);
if (value instanceof String) {
taint.setConstantValue((String) value);
}
if (FindSecBugsGlobalConfig.getInstance().isDebugTaintState()) {
if (value instanceof String) {
taint.setDebugInfo("\"" + value + "\"");
} else {
taint.setDebugInfo("LDC " + ldc.getType(cpg).getSignature());
}
}
getFrame().pushValue(taint);
}
示例2: updateStringAppendState
import org.apache.bcel.generic.LDC; //导入方法依赖的package包/类
private StringAppendState updateStringAppendState(Location location, ConstantPoolGen cpg, StringAppendState stringAppendState)
{
InstructionHandle handle = location.getHandle();
Instruction ins = handle.getInstruction();
if (!isConstantStringLoad(location, cpg)) {
throw new IllegalArgumentException("instruction must be LDC");
}
LDC load = (LDC) ins;
Object value = load.getValue(cpg);
String stringValue = ((String) value).trim();
if (stringValue.startsWith(",") || stringValue.endsWith(","))
stringAppendState.setSawComma(handle);
if (isCloseQuote(stringValue) && stringAppendState.getSawOpenQuote(handle))
stringAppendState.setSawCloseQuote(handle);
if (isOpenQuote(stringValue))
stringAppendState.setSawOpenQuote(handle);
return stringAppendState;
}
示例3: visitLDC
import org.apache.bcel.generic.LDC; //导入方法依赖的package包/类
@Override
public void visitLDC(LDC obj) {
Object constantValue = obj.getValue(cpg);
ValueNumber value;
if (constantValue instanceof ConstantClass) {
ConstantClass constantClass = (ConstantClass) constantValue;
String className = constantClass.getBytes(cpg.getConstantPool());
value = factory.getClassObjectValue(className);
} else {
value = constantValueMap.get(constantValue);
if (value == null) {
value = factory.createFreshValue(ValueNumber.CONSTANT_VALUE);
constantValueMap.put(constantValue, value);
// Keep track of String constants
if (constantValue instanceof String) {
stringConstantMap.put(value, (String) constantValue);
}
}
}
getFrame().pushValue(value);
}
示例4: analyzeMethod
import org.apache.bcel.generic.LDC; //导入方法依赖的package包/类
private void analyzeMethod(Method m, ClassContext classContext) throws CFGBuilderException{
JavaClass clazz = classContext.getJavaClass();
ConstantPoolGen cpg = classContext.getConstantPoolGen();
CFG cfg = classContext.getCFG(m);
for (Iterator<Location> i = cfg.locationIterator(); i.hasNext(); ) {
Location loc = i.next();
Instruction inst = loc.getHandle().getInstruction();
if (inst instanceof INVOKEVIRTUAL) {
INVOKEVIRTUAL invoke = (INVOKEVIRTUAL)inst;
if( "java.lang.StringBuilder".equals(invoke.getClassName(cpg)) && "append".equals(invoke.getMethodName(cpg))) {
Instruction prev = loc.getHandle().getPrev().getInstruction();
if (prev instanceof LDC) {
LDC ldc = (LDC)prev;
Object value = ldc.getValue(cpg);
if (value instanceof String) {
String v = (String)value;
if ("redirect:".equals(v)) {
BugInstance bug = new BugInstance(this, SPRING_UNVALIDATED_REDIRECT_TYPE, Priorities.NORMAL_PRIORITY);
bug.addClass(clazz).addMethod(clazz,m).addSourceLine(classContext,m,loc);
reporter.reportBug(bug);
}
}
}
}
}
}
}
示例5: visitLDC
import org.apache.bcel.generic.LDC; //导入方法依赖的package包/类
@Override
public void visitLDC(LDC obj) {
Type type = obj.getType(getCPG());
if (isString(type)) {
Object value = obj.getValue(getCPG());
if (value instanceof String && ((String)value).length() == 0)
pushValue( emptyStringTypeInstance);
else pushValue( staticStringTypeInstance);
}
else pushValue(type);
}
示例6: isConstantStringLoad
import org.apache.bcel.generic.LDC; //导入方法依赖的package包/类
private boolean isConstantStringLoad(Location location, ConstantPoolGen cpg) {
Instruction ins = location.getHandle().getInstruction();
if (ins instanceof LDC) {
LDC load = (LDC) ins;
Object value = load.getValue(cpg);
if (value instanceof String) {
return true;
}
}
return false;
}
示例7: visitLDC
import org.apache.bcel.generic.LDC; //导入方法依赖的package包/类
@Override
public void visitLDC(LDC obj) {
Object value = obj.getValue(getCPG());
Constant c = new Constant(value);
getFrame().pushValue(c);
}
示例8: registerLDCValueSource
import org.apache.bcel.generic.LDC; //导入方法依赖的package包/类
private void registerLDCValueSource(Location location) throws DataflowAnalysisException {
LDC instruction = (LDC) location.getHandle().getInstruction();
Object constantValue = instruction.getValue(cpg);
registerConstantSource(location, constantValue);
}