sandmark.util.opaquepredicatelib
Class AlgebraicLib
java.lang.Object
|
+--sandmark.util.opaquepredicatelib.Predicatelib
|
+--sandmark.util.opaquepredicatelib.AlgebraicLib
- public class AlgebraicLib
- extends Predicatelib
AlgebraicLib creates run time deterministic predicates
at the requested byte code position of a node within the
CFG of a method.
- Author:
- {tapas@cs.arizona.edu}
Method Summary |
int |
applyOpaquePredicate(de.fub.bytecode.generic.InstructionHandle insertIndex,
de.fub.bytecode.generic.InstructionHandle targetIndex)
entry API for this predicate lib;
returns 1 on success, 0 on failure |
de.fub.bytecode.generic.MethodGen |
getMethodGen()
|
int |
getNumSubPredicates()
|
void |
insertOpaqueJump(java.util.Vector opaqueInsertList,
de.fub.bytecode.generic.InstructionHandle insertHandle)
|
boolean |
satisfyMethodConstraint()
This method can be something which analyzes the method to check whether its
feasible to construct the particular predicate; for example we can consider
constraints such as a lower threshold to method size, number of local variables
existing in the method, etc etc |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
AlgebraicLib
public AlgebraicLib(ClassFileCollection cfcollection,
de.fub.bytecode.generic.MethodGen methodgen,
int opaqueType)
- Constructor
getNumSubPredicates
public int getNumSubPredicates()
insertOpaqueJump
public void insertOpaqueJump(java.util.Vector opaqueInsertList,
de.fub.bytecode.generic.InstructionHandle insertHandle)
applyOpaquePredicate
public int applyOpaquePredicate(de.fub.bytecode.generic.InstructionHandle insertIndex,
de.fub.bytecode.generic.InstructionHandle targetIndex)
- entry API for this predicate lib;
returns 1 on success, 0 on failure
satisfyMethodConstraint
public boolean satisfyMethodConstraint()
- This method can be something which analyzes the method to check whether its
feasible to construct the particular predicate; for example we can consider
constraints such as a lower threshold to method size, number of local variables
existing in the method, etc etc
- Specified by:
satisfyMethodConstraint
in class Predicatelib
getMethodGen
public de.fub.bytecode.generic.MethodGen getMethodGen()