Package cn.wensiqun.asmsupport.block.method

Examples of cn.wensiqun.asmsupport.block.method.SuperMethodBody


          lock
              + " is not a valid type's argument for the synchronized statement");
    }
    lock.asArgument();

        SuperMethodBody mb = getMethodBody();
        mb.addTryCatchInfo(monitorenter, monitorexit, excetpionStart, null);
        mb.addTryCatchInfo(excetpionStart, excetpionEnd, excetpionStart, null);
  }
View Full Code Here


        }
    }

    @Override
    protected void init() {
      SuperMethodBody mb = getMethodBody();
      //如果存在try之后直接存在finally添加一个隐藏的catch块(此catch程序块将catch throwable异常)
        if(finallyBlock != null){
            mb.addTryCatchInfo(getStart(), getEnd(), implicitCatchStartLbl, null);
        }
    }
View Full Code Here

    }

    @Override
    protected void init() {
      SuperMethodBody mb = getMethodBody();
        mb.addTryCatchInfo(entityTry.getStart(), entityTry.getEnd(), catchLbl, exception);
       
        //是最后一个Catch 并且存在Finally Block 则对try程序每个catch程序
        //添加一个隐藏的catch块(此catch程序块将catch throwable异常)
        if(finallyBlock != null){
            mb.addTryCatchInfo(entityTry.getStart(), entityTry.getEnd(), implicitCatchStartLbl, null);
         
            Catch nextCatch = entityTry.getCatchEntity();
            while(nextCatch != null){
              mb.addTryCatchInfo(nextCatch.catchLbl, endCatchLbl1, implicitCatchStartLbl, null);
              nextCatch = nextCatch.getNextCatch();
            }
        }
       
    }
View Full Code Here

TOP

Related Classes of cn.wensiqun.asmsupport.block.method.SuperMethodBody

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.