summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNorbert Thiebaud <nthiebaud@gmail.com>2010-10-11 01:26:24 -0500
committerNorbert Thiebaud <nthiebaud@gmail.com>2010-10-25 19:55:36 -0500
commit407f8c9293b95106ed8ca1ea09d000d975a8583d (patch)
tree93663370e7e0550f2d01b410b549e6fa24b09c4e
parent8daf7c66c52cfecc650904415d61a38a0797f6e6 (diff)
merge vosremoval-signal patch
-rw-r--r--tools/inc/pch/precompiled_tools.hxx2
-rw-r--r--tools/source/rc/resmgr.cxx21
-rw-r--r--vcl/source/app/svmain.cxx33
-rw-r--r--vos/inc/vos/signal.hxx100
-rw-r--r--vos/source/makefile.mk2
-rw-r--r--vos/source/signal.cxx66
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: */