User: vg
Date: 2007/03/26 07:39:47
Modified:
gsl/vcl/win/source/app/salinst.cxx
Log:
INTEGRATION: CWS mingwport03 (1.34.82); FILE MERGED
2007/03/19 19:18:01 vg 1.34.82.4: RESYNC: (1.35-1.36); FILE MERGED
2006/11/08 14:49:51 vg 1.34.82.3: RESYNC: (1.34-1.35); FILE MERGED
2006/10/24 13:25:22 vg 1.34.82.2: #i53572# MinGW port
2006/09/13 15:46:01 vg 1.34.82.1: #i53572# MinGW port
File Changes:
Directory: /gsl/vcl/win/source/app/
===================================
File [changed]: salinst.cxx
Url:
http://gsl.openoffice.org/source/browse/gsl/vcl/win/source/app/salinst.cxx?r1=1.36&r2=1.37
Delta lines: +30 -2
--------------------
--- salinst.cxx 20 Dec 2006 18:33:04 -0000 1.36
+++ salinst.cxx 26 Mar 2007 14:39:44 -0000 1.37
@@ -41,6 +41,9 @@
#ifdef WNT
#include <process.h>
#endif
+#ifdef __MINGW32__
+#include <excpt.h>
+#endif
#ifndef _VOS_MUTEX_HXX
#include <vos/mutex.hxx>
@@ -898,13 +901,25 @@
{
int bDef = TRUE;
LRESULT nRet = 0;
+#ifdef __MINGW32__
+ jmp_buf jmpbuf;
+ __SEHandler han;
+ if (__builtin_setjmp(jmpbuf) == 0)
+ {
+ han.Set(jmpbuf, NULL,
(__SEHandler::PF)EXCEPTION_EXECUTE_HANDLER);
+#else
__try
{
+#endif
nRet = SalComWndProc( hWnd, nMsg, wParam, lParam, bDef );
}
+#ifdef __MINGW32__
+ han.Reset();
+#else
__except(WinSalInstance::WorkaroundExceptionHandlingInUSER32Lib(GetExceptionCode(),
GetExceptionInformation()))
{
}
+#endif
if ( bDef )
{
if ( !ImplHandleGlobalMsg( hWnd, nMsg, wParam, lParam, nRet ) )
@@ -917,13 +932,25 @@
{
int bDef = TRUE;
LRESULT nRet = 0;
+#ifdef __MINGW32__
+ jmp_buf jmpbuf;
+ __SEHandler han;
+ if (__builtin_setjmp(jmpbuf) == 0)
+ {
+ han.Set(jmpbuf, NULL,
(__SEHandler::PF)EXCEPTION_EXECUTE_HANDLER);
+#else
__try
{
+#endif
nRet = SalComWndProc( hWnd, nMsg, wParam, lParam, bDef );
}
+#ifdef __MINGW32__
+ han.Reset();
+#else
__except(WinSalInstance::WorkaroundExceptionHandlingInUSER32Lib(GetExceptionCode(),
GetExceptionInformation()))
{
}
+#endif
if ( bDef )
{
if ( !ImplHandleGlobalMsg( hWnd, nMsg, wParam, lParam, nRet ) )
@@ -1065,7 +1092,7 @@
{
rReturnedBytes = 1;
rReturnedType = AsciiCString;
- return "";
+ return const_cast<char *>("");
}
// -----------------------------------------------------------------------
@@ -1126,6 +1153,7 @@
return NULL;
}
+#ifndef __MINGW32__
// -----------------------------------------------------------------------
int WinSalInstance::WorkaroundExceptionHandlingInUSER32Lib(int,
LPEXCEPTION_POINTERS pExceptionInfo)
{
@@ -1142,4 +1170,4 @@
return UnhandledExceptionFilter( pExceptionInfo );
}
-
+#endif
|