diff options
author | Norbert Thiebaud <nthiebaud@gmail.com> | 2010-10-11 01:26:24 -0500 |
---|---|---|
committer | Norbert Thiebaud <nthiebaud@gmail.com> | 2010-10-25 19:55:36 -0500 |
commit | 407f8c9293b95106ed8ca1ea09d000d975a8583d (patch) | |
tree | 93663370e7e0550f2d01b410b549e6fa24b09c4e | |
parent | 8daf7c66c52cfecc650904415d61a38a0797f6e6 (diff) |
merge vosremoval-signal patch
-rw-r--r-- | tools/inc/pch/precompiled_tools.hxx | 2 | ||||
-rw-r--r-- | tools/source/rc/resmgr.cxx | 21 | ||||
-rw-r--r-- | vcl/source/app/svmain.cxx | 33 | ||||
-rw-r--r-- | vos/inc/vos/signal.hxx | 100 | ||||
-rw-r--r-- | vos/source/makefile.mk | 2 | ||||
-rw-r--r-- | vos/source/signal.cxx | 66 |
6 files changed, 25 insertions, 199 deletions
diff --git a/tools/inc/pch/precompiled_tools.hxx b/tools/inc/pch/precompiled_tools.hxx index ac54df5838f3..b38c883d8a43 100644 --- a/tools/inc/pch/precompiled_tools.hxx +++ b/tools/inc/pch/precompiled_tools.hxx @@ -63,6 +63,7 @@ #include "osl/mutex.hxx" #include "osl/process.h" #include "osl/security.h" +#include "osl/signal.h" #include "osl/thread.h" #include "rtl/alloc.h" @@ -87,7 +88,6 @@ #include "vos/macros.hxx" #include "vos/mutex.hxx" #include "vos/process.hxx" -#include "vos/signal.hxx" #include "vos/timer.hxx" //---MARKER--- #endif diff --git a/tools/source/rc/resmgr.cxx b/tools/source/rc/resmgr.cxx index e5bb64c5b253..110b62aaf4ed 100644 --- a/tools/source/rc/resmgr.cxx +++ b/tools/source/rc/resmgr.cxx @@ -32,7 +32,6 @@ #include <string.h> #include <stdio.h> #include <stdlib.h> -#include <vos/signal.hxx> #include <tools/debug.hxx> #include <tools/table.hxx> #include <tools/stream.hxx> @@ -44,6 +43,7 @@ #include <osl/thread.h> #include <osl/file.hxx> #include <osl/mutex.hxx> +#include <osl/signal.h> #include <rtl/ustrbuf.hxx> #include <tools/urlobj.hxx> #include <rtl/instance.hxx> @@ -836,19 +836,20 @@ void ResMgr::RscError_Impl( const sal_Char* pMessage, ResMgr* pResMgr, static void RscException_Impl() { - switch ( NAMESPACE_VOS(OSignalHandler)::raise( OSL_SIGNAL_USER_RESOURCEFAILURE, (void*)"" ) ) + switch ( osl_raiseSignal( OSL_SIGNAL_USER_RESOURCEFAILURE, (void*)"" ) ) { - case NAMESPACE_VOS(OSignalHandler)::TAction_CallNextHandler: - abort(); + case osl_Signal_ActCallNextHdl: + abort(); - case NAMESPACE_VOS(OSignalHandler)::TAction_Ignore: - return; + case osl_Signal_ActIgnore: + return; - case NAMESPACE_VOS(OSignalHandler)::TAction_AbortApplication: - abort(); + case osl_Signal_ActAbortApp: + abort(); - case NAMESPACE_VOS(OSignalHandler)::TAction_KillApplication: - exit(-1); + default: + case osl_Signal_ActKillApp: + exit(-1); } } diff --git a/vcl/source/app/svmain.cxx b/vcl/source/app/svmain.cxx index e65844e23b01..a6c26caabd1b 100644 --- a/vcl/source/app/svmain.cxx +++ b/vcl/source/app/svmain.cxx @@ -47,7 +47,7 @@ #include "svsys.h" #include "vcl/salinst.hxx" #include "vcl/salwtype.hxx" -#include "vos/signal.hxx" +#include "osl/signal.h" #include "tools/tools.h" #include "tools/debug.hxx" #include "tools/unqid.hxx" @@ -98,22 +98,14 @@ using namespace ::com::sun::star::lang; // ======================================================================= -class ImplVCLExceptionHandler : public ::vos::OSignalHandler +oslSignalAction SAL_CALL VCLExceptionSignal_impl( void* /*pData*/, oslSignalInfo* pInfo) { -public: - virtual ::vos::OSignalHandler::TSignalAction SAL_CALL signal( ::vos::OSignalHandler::TSignalInfo* pInfo ); -}; - -// ----------------------------------------------------------------------- - -::vos::OSignalHandler::TSignalAction SAL_CALL ImplVCLExceptionHandler::signal( ::vos::OSignalHandler::TSignalInfo* pInfo ) -{ - static BOOL bIn = FALSE; + static bool bIn = false; // Wenn wir nocheinmal abstuerzen, verabschieden wir uns gleich if ( !bIn ) { - USHORT nVCLException = 0; + sal_uInt16 nVCLException = 0; // UAE if ( (pInfo->Signal == osl_Signal_AccessViolation) || @@ -139,7 +131,7 @@ public: if ( nVCLException ) { - bIn = TRUE; + bIn = true; ::vos::OGuard aLock(&Application::GetSolarMutex()); @@ -148,18 +140,19 @@ public: ImplSVData* pSVData = ImplGetSVData(); if ( pSVData->mpApp ) { - USHORT nOldMode = Application::GetSystemWindowMode(); + sal_uInt16 nOldMode = Application::GetSystemWindowMode(); Application::SetSystemWindowMode( nOldMode & ~SYSTEMWINDOW_MODE_NOAUTOMODE ); pSVData->mpApp->Exception( nVCLException ); Application::SetSystemWindowMode( nOldMode ); } - bIn = FALSE; + bIn = false; - return vos::OSignalHandler::TAction_CallNextHandler; + return osl_Signal_ActCallNextHdl; } } - return vos::OSignalHandler::TAction_CallNextHandler; + return osl_Signal_ActCallNextHdl; + } // ======================================================================= @@ -228,7 +221,7 @@ BOOL SVMain() // before SVInit is called static Application * pOwnSvApp = NULL; // Exception handler. pExceptionHandler != NULL => VCL already inited -ImplVCLExceptionHandler * pExceptionHandler = NULL; +oslSignalHandler pExceptionHandler = NULL; class Application_Impl : public Application { @@ -332,7 +325,7 @@ BOOL InitVCL( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XM pSVData->maGDIData.mpGrfConverter = new GraphicConverter; // Exception-Handler setzen - pExceptionHandler = new ImplVCLExceptionHandler(); + pExceptionHandler = osl_addSignalHandler(VCLExceptionSignal_impl, NULL); // Debug-Daten initialisieren DBGGUI_INIT(); @@ -377,7 +370,7 @@ void DeInitVCL() ImplImageTreeSingletonRef()->shutDown(); - delete pExceptionHandler; + osl_removeSignalHandler( pExceptionHandler); pExceptionHandler = NULL; // Debug Daten zuruecksetzen diff --git a/vos/inc/vos/signal.hxx b/vos/inc/vos/signal.hxx deleted file mode 100644 index 0d11ee8f2188..000000000000 --- a/vos/inc/vos/signal.hxx +++ /dev/null @@ -1,100 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - - -#ifndef _VOS_SIGNAL_HXX_ -#define _VOS_SIGNAL_HXX_ - -# include <vos/types.hxx> -# include <vos/object.hxx> -# include <osl/signal.h> - -namespace vos -{ - -extern "C" -typedef oslSignalAction SignalHandlerFunction_impl(void *, oslSignalInfo *); -SignalHandlerFunction_impl signalHandlerFunction_impl; - -/** OSignalHandler is an objectoriented interface for signal handlers. - - @author Ralf Hofmann - @version 1.0 -*/ - -class OSignalHandler : public NAMESPACE_VOS(OObject) -{ - VOS_DECLARE_CLASSINFO(VOS_NAMESPACE(OSignalHandler, vos)); - -public: - - enum TSignal - { - TSignal_System = osl_Signal_System, - TSignal_Terminate = osl_Signal_Terminate, - TSignal_AccessViolation = osl_Signal_AccessViolation, - TSignal_IntegerDivideByZero = osl_Signal_IntegerDivideByZero, - TSignal_FloatDivideByZero = osl_Signal_FloatDivideByZero, - TSignal_DebugBreak = osl_Signal_DebugBreak, - TSignal_SignalUser = osl_Signal_User - }; - - enum TSignalAction - { - TAction_CallNextHandler = osl_Signal_ActCallNextHdl, - TAction_Ignore = osl_Signal_ActIgnore, - TAction_AbortApplication = osl_Signal_ActAbortApp, - TAction_KillApplication = osl_Signal_ActKillApp - }; - - typedef oslSignalInfo TSignalInfo; - - /// Constructor - OSignalHandler(); - - /// Destructor kills thread if neccessary - virtual ~OSignalHandler(); - - static TSignalAction SAL_CALL raise(sal_Int32 Signal, void *pData = 0); - -protected: - - /// Working method which should be overridden. - virtual TSignalAction SAL_CALL signal(TSignalInfo *pInfo) = 0; - -protected: - oslSignalHandler m_hHandler; - - friend oslSignalAction signalHandlerFunction_impl(void *, oslSignalInfo *); -}; - -} - -#endif // _VOS_SIGNAL_HXX_ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vos/source/makefile.mk b/vos/source/makefile.mk index 5b9a8c7ad997..7afe987703ae 100644 --- a/vos/source/makefile.mk +++ b/vos/source/makefile.mk @@ -46,7 +46,6 @@ SLOFILES= $(SLO)$/conditn.obj \ $(SLO)$/module.obj \ $(SLO)$/timer.obj \ $(SLO)$/process.obj \ - $(SLO)$/signal.obj \ $(SLO)$/pipe.obj \ $(SLO)$/xception.obj @@ -61,7 +60,6 @@ OBJFILES= $(OBJ)$/conditn.obj \ $(OBJ)$/module.obj \ $(OBJ)$/timer.obj \ $(OBJ)$/process.obj \ - $(OBJ)$/signal.obj \ $(OBJ)$/pipe.obj \ $(OBJ)$/xception.obj diff --git a/vos/source/signal.cxx b/vos/source/signal.cxx deleted file mode 100644 index 75a13aadd202..000000000000 --- a/vos/source/signal.cxx +++ /dev/null @@ -1,66 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - - -#include <osl/diagnose.h> -#include <vos/object.hxx> -#include <vos/signal.hxx> - -using namespace vos; - -oslSignalAction vos::signalHandlerFunction_impl( - void * pthis, oslSignalInfo * pInfo) -{ - NAMESPACE_VOS(OSignalHandler)* pThis= (NAMESPACE_VOS(OSignalHandler)*)pthis; - - return ((oslSignalAction)pThis->signal(pInfo)); -} - -///////////////////////////////////////////////////////////////////////////// -// Thread class - -VOS_IMPLEMENT_CLASSINFO(VOS_CLASSNAME(OSignalHandler, vos), - VOS_NAMESPACE(OSignalHandler, vos), - VOS_NAMESPACE(OObject, vos), 0); - -OSignalHandler::OSignalHandler() -{ - m_hHandler = osl_addSignalHandler(signalHandlerFunction_impl, this); -} - -OSignalHandler::~OSignalHandler() -{ - osl_removeSignalHandler(m_hHandler); -} - -OSignalHandler::TSignalAction OSignalHandler::raise(sal_Int32 Signal, void *pData) -{ - return (TSignalAction)osl_raiseSignal(Signal, pData); -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |