SandMark version 3.0


sandmark.watermark.objectwm
Class InstructionEmbedUtil

java.lang.Object
  |
  +--sandmark.watermark.objectwm.InstructionEmbedUtil

public class InstructionEmbedUtil
extends java.lang.Object

This class builds all the functionalities required for embedding a new instruction group to increase the vector frequency


Field Summary
(package private)  ObjectHelper helper
           
 de.fub.bytecode.generic.InstructionHandle ihNewInstrEmbedObj
           
 int newInstrIndexObj
           
(package private)  ObjectUtil util
           
 
Constructor Summary
InstructionEmbedUtil(ObjectUtil objUtil)
          Constructor
 
Method Summary
 boolean checkSplitVectorGrp(int instrIndex, de.fub.bytecode.generic.InstructionHandle[] instrHandles)
          This method checks whether the code to be inserted splits any existing vector groups; returns 'true' if splits, else returns 'false'
(package private)  void displayLeaders(int numleaders, int[] leaders)
          displaying leader information of the method cfg
 int substituteNewCode(java.lang.String[] subInstr, int numInstr, int codeBookembedIndex, VectorUpdateCtrl vecObj)
          This method is invoked from the newCode Insertion option in modifyCode():
 java.lang.String transformCode(java.lang.String subInstr, java.lang.String className)
          Converts the received code to the actual code to be inserted by placing appropriate local variable indices etc etc; methodsInvoked: inLocalTable(String),
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

util

ObjectUtil util

helper

ObjectHelper helper

ihNewInstrEmbedObj

public de.fub.bytecode.generic.InstructionHandle ihNewInstrEmbedObj

newInstrIndexObj

public int newInstrIndexObj
Constructor Detail

InstructionEmbedUtil

public InstructionEmbedUtil(ObjectUtil objUtil)
Constructor

Method Detail

transformCode

public java.lang.String transformCode(java.lang.String subInstr,
                                      java.lang.String className)
Converts the received code to the actual code to be inserted by placing appropriate local variable indices etc etc; methodsInvoked: inLocalTable(String),


checkSplitVectorGrp

public boolean checkSplitVectorGrp(int instrIndex,
                                   de.fub.bytecode.generic.InstructionHandle[] instrHandles)
This method checks whether the code to be inserted splits any existing vector groups; returns 'true' if splits, else returns 'false'


displayLeaders

void displayLeaders(int numleaders,
                    int[] leaders)
displaying leader information of the method cfg


substituteNewCode

public int substituteNewCode(java.lang.String[] subInstr,
                             int numInstr,
                             int codeBookembedIndex,
                             VectorUpdateCtrl vecObj)
This method is invoked from the newCode Insertion option in modifyCode():


SandMark version 3.0

Wed Jan 29 10:30:05 MST 2003