Hi All, 
        
        problem with instrucion list seperation.

        I am trying to instrument my constructor as mentioned in
http://www.mail-archive.com/[email protected]/msg00475.html

        could you please let me know, where i am going wrong...
        
        instrMethod() {

         InstructionList iList = mgen.getInstructionList ();
// I am getting my instruction list


        /* if init, I want to seperate this list into two instruction
lists, one containing 
        until super calls (let us say super list)and other containing
the iList,without the instructions till super calls
        */

          if ( mgen.getName().equals ( "<init>" ) ){

        superList = getIListSuper(iList);

      }

        // inserting try finally around the iList
        insertTryFinally (iList)
        
        if(superList != null){
        iList.insert ( iList.getStart (), superList );
        } 


        return mgen.getMethod ();
        }


        public InstructionList getIListSuper(InstructionList iList){
    
    int invkSpec = 0;

    InstructionHandle seperator = null;
   
    InstructionList superList = iList.copy(); // deep copy
    
    for ( Iterator i = superList.iterator (); i.hasNext (); ) {
      seperator = ( InstructionHandle ) i.next ();

      if(seperator.getInstruction() instanceof NEW )
          invkSpec++;

      if(seperator.getInstruction() instanceof INVOKESPECIAL )
        invkSpec--;

      if(invkSpec < 0 )
        break;
    }
    
    if(invkSpec < 0) {
    try {
      superList.delete(seperator.getNext(),iList.getEnd());     // i
collect here the instruction list till the seperator
        iList.delete(iList.getStart(), seperator);
// the iList that should be instrumented. // throwing target lost
exception

    } catch ( TargetLostException e ) {                         
     e.printStackTrace();
    }
 
    return superList;
    }
  
          return null;
    }



        The problem could be said as seperating an isntruction list into
two instruction lists based on InstructionHandle
        i.e, based on seperator (InstructionHandle), I want to divide
the incoming instructionList into two parts (one list till super call
and other staring
After super() until end)


        Please help me in this regard.

Thank you
Reddy



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to