On 05/19/09 23:56, [email protected] wrote:
Author: mba
Date: Tue May 19 21:53:40 2009
New Revision: 272099

Log:
#i97047#: don't let RuntimeException fly through C code

Modified:
   cws/mba32issues02/sax/source/expatwrap/sax_expat.cxx

Modified: cws/mba32issues02/sax/source/expatwrap/sax_expat.cxx
==============================================================================
--- cws/mba32issues02/sax/source/expatwrap/sax_expat.cxx        Tue May 19 
17:18:27 2009        (r272098)
+++ cws/mba32issues02/sax/source/expatwrap/sax_expat.cxx        Tue May 19 
21:53:40 2009        (r272099)
@@ -134,6 +134,11 @@
                                                                                      
  pThis->rDocumentLocator->getLineNumber(),\
                                                                                      
  pThis->rDocumentLocator->getColumnNumber()\
                                                                         ) );\
+        }\
+        catch( com::sun::star::uno::RuntimeException &e ) {\
+            pThis->bExceptionWasThrown = sal_True; \
+            pThis->bRTExceptionWasThrown = sal_True; \
+                       pImpl->rtexception = e; \
[...]
+            if ( this->bRTExceptionWasThrown )
+                throw rtexception;
+

In case you were not aware of it: Making rtexception a com::sun::star::uno::Any and using cppu::getCaughtException and cppu::throwException from "cppuhelper/exc_hlp.hxx" would allow to re-throw the exception unsliced.

-Stephan

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to