00001 /* 00002 Copyright (C) 2010 Mark Gordon 00003 00004 This program is free software; you can redistribute it and/or modify it under 00005 the terms of the GNU General Public License as published by the Free Software 00006 Foundation; either version 2 of the License, or (at your option) any later 00007 version. 00008 00009 This program is distributed in the hope that it will be useful, but WITHOUT ANY 00010 WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 00011 PARTICULAR PURPOSE. See the GNU General Public License for more details. 00012 00013 You should have received a copy of the GNU General Public License along with 00014 this program; if not, write to the Free Software Foundation, Inc., 59 Temple 00015 Place, Suite 330, Boston, MA 02111-1307 USA 00016 */ 00019 #ifndef __DXCUT_TRY_BLOCK 00020 #define __DXCUT_TRY_BLOCK 00021 #include <dxcut/dex.h> 00022 #include <dxcut/handler.h> 00023 #ifdef __cplusplus 00024 extern "C" { 00025 #endif 00026 00027 typedef struct { 00029 dx_uint start_addr; 00030 00032 dx_ushort insn_count; 00033 00037 DexHandler* handlers; 00038 00042 DexHandler* catch_all_handler; 00043 } DexTryBlock; 00044 00049 extern 00050 void dxc_free_try_block(DexTryBlock* try_block); 00051 00055 extern 00056 int dxc_is_sentinel_try_block(DexTryBlock* try_block); 00057 00061 extern 00062 void dxc_make_sentinel_try_block(DexTryBlock* try_block); 00063 00064 #ifdef __cplusplus 00065 } 00066 #endif 00067 #endif