001 package railo.transformer.bytecode.statement.tag; 002 003 import org.objectweb.asm.Type; 004 import org.objectweb.asm.commons.Method; 005 006 import railo.transformer.bytecode.BytecodeContext; 007 import railo.transformer.bytecode.BytecodeException; 008 import railo.transformer.bytecode.util.Types; 009 010 public final class TagReThrow extends TagBase { 011 012 /** 013 * Constructor of the class 014 * @param tag 015 */ 016 public TagReThrow(int line) { 017 super(line); 018 } 019 public TagReThrow(int sl,int el) { 020 super(sl,el); 021 } 022 023 // void throwCatch() 024 private static final Method THROW_CATCH = new Method("throwCatch",Type.VOID_TYPE,new Type[]{}); 025 026 /** 027 * 028 * @see railo.transformer.bytecode.statement.StatementBase#_writeOut(org.objectweb.asm.commons.GeneratorAdapter) 029 */ 030 public void _writeOut(BytecodeContext bc) throws BytecodeException { 031 bc.getAdapter().loadArg(0); 032 bc.getAdapter().invokeVirtual(Types.PAGE_CONTEXT, THROW_CATCH); 033 } 034 035 }