LocalVariableTable t = obj.getLocalVariableTable();
Context context = new Context(cfg.getMethodGen().getConstantPool().getConstantPool(), method.getCode().getLocalVariableTable(), getParameterTypes(descriptor), classContext.getValueNumberDataflow(method)); Map<ValueNumber, VariableData> analyzedArguments = new HashMap<>();
/** @return LocalVariableTable of code attribute if any, i.e. the call is forwarded * to the Code atribute. */ public final LocalVariableTable getLocalVariableTable() { final Code code = getCode(); if (code == null) { return null; } return code.getLocalVariableTable(); }
/** @return LocalVariableTable of code attribute if any, i.e. the call is forwarded * to the Code atribute. */ public final LocalVariableTable getLocalVariableTable() { Code code = getCode(); if(code != null) return code.getLocalVariableTable(); else return null; }
/** * returns the variable name of the specified register slot * * @param obj * the currently parsed code object * @param reg * the variable register of interest * * @return the variable name of the specified register */ private static String getRegisterName(final Code obj, final int reg) { LocalVariableTable lvt = obj.getLocalVariableTable(); if (lvt != null) { LocalVariable lv = lvt.getLocalVariable(reg, 0); if (lv != null) { return lv.getName(); } } return String.valueOf(reg); } }
/** * returns the variable name of the specified register slot * * @param obj * the currently parsed code object * @param reg * the variable register of interest * * @return the variable name of the specified register */ private static String getRegisterName(final Code obj, final int reg) { LocalVariableTable lvt = obj.getLocalVariableTable(); if (lvt != null) { LocalVariable lv = lvt.getLocalVariable(reg, 0); if (lv != null) { return lv.getName(); } } return String.valueOf(reg); } }
/** * implements the visitor to set the state on entry of the code block to SAW_NOTHING, and to see if there is a local variable table * * @param obj * the context object of the currently parsed code block */ @Override public void visitCode(Code obj) { state = State.SAW_NOTHING; lvt = obj.getLocalVariableTable(); if ((lvt != null) && prescreen(getMethod())) { super.visitCode(obj); } }
/** * implements the visitor to set the state on entry of the code block to SAW_NOTHING, and to see if there is a local variable table * * @param obj * the context object of the currently parsed code block */ @Override public void visitCode(Code obj) { state = State.SAW_NOTHING; lvt = obj.getLocalVariableTable(); if ((lvt != null) && prescreen(getMethod())) { super.visitCode(obj); } }
LocalVariableTable t = obj.getLocalVariableTable();
Context context = new Context(cfg.getMethodGen().getConstantPool().getConstantPool(), method.getCode().getLocalVariableTable(), getParameterTypes(descriptor), classContext.getValueNumberDataflow(method)); Map<ValueNumber, VariableData> analyzedArguments = new HashMap<>();
continue; if (method.getCode().getLocalVariableTable() != null) { continue;
throw new ClassConstraintException("Code attribute '"+code+"' has a LocalVariableTable attribute '"+code.getLocalVariableTable()+"' referring to a code offset ('"+startpc+"') that does not exist."); throw new ClassConstraintException("Code attribute '"+code+"' has a LocalVariableTable attribute '"+code.getLocalVariableTable()+"' referring to a code offset start_pc+length ('"+(startpc+length)+"') that does not exist.");
+ "' has a LocalVariableTable attribute '" + code.getLocalVariableTable() + "' referring to a code offset ('" + startpc + "') that does not exist."); + "' has a LocalVariableTable attribute '" + code.getLocalVariableTable() + "' referring to a code offset start_pc+length ('" + (startpc + length) + "') that does not exist.");