19 #ifndef GNASH_ACTIONEXEC_H
20 #define GNASH_ACTIONEXEC_H
25 #include <boost/noncopyable.hpp>
53 TryBlock(
size_t cur_off,
size_t try_size,
size_t catch_size,
54 size_t finally_size, std::string catchName)
56 _catchOffset(cur_off + try_size),
57 _finallyOffset(cur_off + try_size + catch_size),
58 _afterTriedOffset(cur_off + try_size + catch_size + finally_size),
66 TryBlock(
size_t cur_off,
size_t try_size,
size_t catch_size,
67 size_t finally_size, boost::uint8_t register_index)
69 _catchOffset(cur_off + try_size),
70 _finallyOffset(cur_off + try_size + catch_size),
71 _afterTriedOffset(cur_off + try_size + catch_size + finally_size),
74 _registerIndex(register_index),
81 size_t _finallyOffset;
82 size_t _afterTriedOffset;
83 size_t _savedEndOffset;
86 unsigned int _registerIndex;
103 return _block_end_pc;
112 size_t _block_end_pc;
131 bool abortOnUnloaded =
true);
253 void dumpActions(
size_t start,
size_t end, std::ostream& os);
268 bool processExceptions(
TryBlock& t);
285 void cleanupAfterRun();
288 std::vector<With> _withStack;
291 ScopeStack _scopeStack;
307 size_t _initialStackSize;
311 int _origExecSWFVersion;
313 std::list<TryBlock> _tryList;
333 #endif // GNASH_ACTIONEXEC_H