--- parser3/src/include/pa_pool.h 2001/03/11 08:16:32 1.28 +++ parser3/src/include/pa_pool.h 2001/03/13 16:38:22 1.32 @@ -3,7 +3,7 @@ Copyright (c) 2001 ArtLebedev Group (http://www.artlebedev.com) Author: Alexander Petrosyan (http://design.ru/paf) - $Id: pa_pool.h,v 1.28 2001/03/11 08:16:32 paf Exp $ + $Id: pa_pool.h,v 1.32 2001/03/13 16:38:22 paf Exp $ */ #ifndef PA_POOL_H @@ -95,15 +95,15 @@ public: #define NEW new(pool()) class Temp_exception { - Pool pool; + Pool& fpool; Exception *saved_exception; public: Temp_exception(Pool& apool, Exception& exception) : - pool(apool), + fpool(apool), saved_exception(apool.set_exception(&exception)) { } ~Temp_exception() { - pool.restore_exception(saved_exception); + fpool.restore_exception(saved_exception); } }; @@ -114,7 +114,8 @@ public: if(setjmp(temp_exception.mark)==0) #define THROW exception()._throw -#define POOL_THROW pool.exception()._throw +#define PTHROW pool.exception()._throw +#define RTHROW r.pool().exception()._throw #define CATCH(e) \ else{ \ Exception& e=temp_exception;