parent
a852bd4a25
commit
bad44c964f
@ -1,24 +0,0 @@
|
|||||||
From 72244e6e6035ffc211ea7a4fce9aa96de8bc1f76 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
|
|
||||||
Date: Wed, 3 Nov 2010 10:16:06 +0000
|
|
||||||
Subject: [PATCH] abort doesn't gain us anything here.
|
|
||||||
|
|
||||||
abort doesn't gain us anything here except to force abrt automatic bugreports kick
|
|
||||||
in, and XIOErrors can't be worked around
|
|
||||||
---
|
|
||||||
vcl/unx/source/plugadapt/salplug.cxx | 2 +-
|
|
||||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/vcl/unx/source/plugadapt/salplug.cxx b/vcl/unx/source/plugadapt/salplug.cxx
|
|
||||||
index 54f9752..ba6bf4a 100644
|
|
||||||
--- a/vcl/unx/source/plugadapt/salplug.cxx
|
|
||||||
+++ b/vcl/unx/source/plugadapt/salplug.cxx
|
|
||||||
@@ -281,7 +281,7 @@
|
|
||||||
std::fprintf( stderr, "Application Error" );
|
|
||||||
else
|
|
||||||
std::fprintf( stderr, ByteString( rErrorText, gsl_getSystemTextEncoding() ).GetBuffer() );
|
|
||||||
- abort();
|
|
||||||
+ exit(-1);
|
|
||||||
}
|
|
||||||
|
|
||||||
const OUString& SalGetDesktopEnvironment()
|
|
@ -1,25 +0,0 @@
|
|||||||
From cd10b146b67f7329f699e48e74d2961dbcceb123 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
|
|
||||||
Date: Thu, 4 Nov 2010 14:44:14 +0000
|
|
||||||
Subject: [PATCH] latest libX11 changed header guards
|
|
||||||
|
|
||||||
---
|
|
||||||
vcl/unx/inc/dtint.hxx | 2 +-
|
|
||||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/vcl/unx/inc/dtint.hxx b/vcl/unx/inc/dtint.hxx
|
|
||||||
index 724dad6..b173830 100644
|
|
||||||
--- a/vcl/unx/inc/dtint.hxx
|
|
||||||
+++ b/vcl/unx/inc/dtint.hxx
|
|
||||||
@@ -37,7 +37,7 @@ class SalBitmap;
|
|
||||||
class SalDisplay;
|
|
||||||
class AllSettings;
|
|
||||||
|
|
||||||
-#ifndef _XLIB_H_
|
|
||||||
+#if !defined(_XLIB_H_) && !defined(_X11_XLIB_H_)
|
|
||||||
// forwards from X
|
|
||||||
struct Display;
|
|
||||||
struct XEvent;
|
|
||||||
--
|
|
||||||
1.7.3.1
|
|
||||||
|
|
@ -1,25 +0,0 @@
|
|||||||
From 0bf9733c6e8d40a5d327e754b44c7e540cdada7e Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
|
|
||||||
Date: Sun, 31 Oct 2010 19:07:44 +0000
|
|
||||||
Subject: [PATCH] strcpy cannot be used with overlapping src and dest
|
|
||||||
|
|
||||||
---
|
|
||||||
soltools/mkdepend/parse.c | 2 +-
|
|
||||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/soltools/mkdepend/parse.c b/soltools/mkdepend/parse.c
|
|
||||||
index 6d6e079..ec7e7d4 100644
|
|
||||||
--- a/soltools/mkdepend/parse.c
|
|
||||||
+++ b/soltools/mkdepend/parse.c
|
|
||||||
@@ -347,7 +347,7 @@ int deftype (line, filep, file_red, file, parse_it, symbols)
|
|
||||||
/*
|
|
||||||
* copy the definition back to the beginning of the line.
|
|
||||||
*/
|
|
||||||
- strcpy (line, p);
|
|
||||||
+ memmove (line, p, strlen(p));
|
|
||||||
break;
|
|
||||||
case ELSE:
|
|
||||||
case ENDIF:
|
|
||||||
--
|
|
||||||
1.7.3.1
|
|
||||||
|
|
@ -1,83 +0,0 @@
|
|||||||
--- a/solenv/inc/postset.mk 2010-09-29 12:55:57.000000000 +0100
|
|
||||||
+++ b/solenv/inc/postset.mk 2010-09-29 12:58:29.000000000 +0100
|
|
||||||
@@ -33,15 +33,13 @@
|
|
||||||
# Complete list of all supported ISO codes
|
|
||||||
completelangiso=af \
|
|
||||||
ar \
|
|
||||||
-as-IN \
|
|
||||||
+as \
|
|
||||||
be-BY \
|
|
||||||
bo \
|
|
||||||
bg \
|
|
||||||
br \
|
|
||||||
brx \
|
|
||||||
bn \
|
|
||||||
-bn-BD \
|
|
||||||
-bn-IN \
|
|
||||||
bs \
|
|
||||||
ca \
|
|
||||||
cs \
|
|
||||||
@@ -65,7 +63,6 @@
|
|
||||||
gd \
|
|
||||||
gl \
|
|
||||||
gu \
|
|
||||||
-gu-IN \
|
|
||||||
he \
|
|
||||||
hi \
|
|
||||||
hr \
|
|
||||||
@@ -91,8 +88,8 @@
|
|
||||||
mn \
|
|
||||||
mni \
|
|
||||||
ms \
|
|
||||||
-ml-IN \
|
|
||||||
-mr-IN \
|
|
||||||
+ml \
|
|
||||||
+mr \
|
|
||||||
my \
|
|
||||||
ne \
|
|
||||||
nb \
|
|
||||||
@@ -102,7 +99,7 @@
|
|
||||||
ns \
|
|
||||||
om \
|
|
||||||
oc \
|
|
||||||
-or-IN \
|
|
||||||
+or \
|
|
||||||
pap \
|
|
||||||
pa-IN \
|
|
||||||
pl \
|
|
||||||
@@ -126,16 +123,16 @@
|
|
||||||
sv \
|
|
||||||
sw \
|
|
||||||
sw-TZ \
|
|
||||||
-te-IN \
|
|
||||||
-ti-ER \
|
|
||||||
-ta-IN \
|
|
||||||
+te \
|
|
||||||
+ti \
|
|
||||||
+ta \
|
|
||||||
th \
|
|
||||||
tn \
|
|
||||||
tr \
|
|
||||||
ts \
|
|
||||||
tg \
|
|
||||||
ug \
|
|
||||||
-ur-IN \
|
|
||||||
+ur \
|
|
||||||
uk \
|
|
||||||
uz \
|
|
||||||
ve \
|
|
||||||
--- a/configure.in
|
|
||||||
+++ b/configure.in
|
|
||||||
@@ -3815,12 +3815,6 @@ if test -n "$with_system_cppunit" -o -n "$with_system_libs" && \
|
|
||||||
SYSTEM_CPPUNIT=YES
|
|
||||||
# might work for earlier, too but go sure
|
|
||||||
PKG_CHECK_MODULES( CPPUNIT, cppunit >= 1.12.0 )
|
|
||||||
- AC_MSG_CHECKING([STL compatibility])
|
|
||||||
- if test "$WITH_STLPORT" != "no"; then
|
|
||||||
- AC_MSG_ERROR([to use system cppunit you need to use --without-stlport])
|
|
||||||
- else
|
|
||||||
- AC_MSG_RESULT([OK])
|
|
||||||
- fi
|
|
||||||
else
|
|
||||||
AC_MSG_RESULT([internal])
|
|
||||||
SYSTEM_CPPUNIT=NO
|
|
@ -1,401 +0,0 @@
|
|||||||
diff -ru framework/inc/helper/titlebarupdate.hxx framework/inc/helper/titlebarupdate.hxx
|
|
||||||
--- framework/inc/helper/titlebarupdate.hxx 2010-10-14 21:54:22.000000000 +0100
|
|
||||||
+++ framework/inc/helper/titlebarupdate.hxx 2010-10-22 12:52:13.000000000 +0100
|
|
||||||
@@ -212,6 +212,7 @@
|
|
||||||
*/
|
|
||||||
void impl_updateTitle(const css::uno::Reference< css::frame::XFrame >& xFrame);
|
|
||||||
|
|
||||||
+ void impl_updateWM_CLASSS(const css::uno::Reference< css::frame::XFrame >& xFrame);
|
|
||||||
}; // class TitleBarUpdate
|
|
||||||
|
|
||||||
} // namespace framework
|
|
||||||
diff -ru framework/source/helper/titlebarupdate.cxx framework/source/helper/titlebarupdate.cxx
|
|
||||||
--- framework/source/helper/titlebarupdate.cxx 2010-10-14 21:54:22.000000000 +0100
|
|
||||||
+++ framework/source/helper/titlebarupdate.cxx 2010-10-22 15:00:16.000000000 +0100
|
|
||||||
@@ -199,6 +201,88 @@
|
|
||||||
// nothing todo here - because we hold the frame as weak reference only
|
|
||||||
}
|
|
||||||
|
|
||||||
+//http://live.gnome.org/GnomeShell/ApplicationBased
|
|
||||||
+void TitleBarUpdate::impl_updateWM_CLASSS(const css::uno::Reference< css::frame::XFrame >& xFrame)
|
|
||||||
+{
|
|
||||||
+ css::uno::Reference< css::awt::XWindow > xWindow = xFrame->getContainerWindow ();
|
|
||||||
+ if ( ! xWindow.is() )
|
|
||||||
+ return;
|
|
||||||
+
|
|
||||||
+ ::rtl::OUString sWM_CLASS;
|
|
||||||
+ try
|
|
||||||
+ {
|
|
||||||
+ ::rtl::OUString aProductName;
|
|
||||||
+ ::utl::ConfigManager::GetDirectConfigProperty(::utl::ConfigManager::PRODUCTNAME) >>= aProductName;
|
|
||||||
+
|
|
||||||
+ // SYNCHRONIZED ->
|
|
||||||
+ ReadGuard aReadLock(m_aLock);
|
|
||||||
+ css::uno::Reference< css::lang::XMultiServiceFactory > xSMGR = m_xSMGR;
|
|
||||||
+ aReadLock.unlock();
|
|
||||||
+ // <- SYNCHRONIZED
|
|
||||||
+
|
|
||||||
+ css::uno::Reference< css::frame::XModuleManager > xModuleManager(
|
|
||||||
+ xSMGR->createInstance(SERVICENAME_MODULEMANAGER),
|
|
||||||
+ css::uno::UNO_QUERY_THROW);
|
|
||||||
+
|
|
||||||
+ css::uno::Reference< css::container::XNameAccess > xConfig(
|
|
||||||
+ xModuleManager,
|
|
||||||
+ css::uno::UNO_QUERY_THROW);
|
|
||||||
+
|
|
||||||
+ rtl::OUString aModuleId = xModuleManager->identify(xFrame);
|
|
||||||
+ rtl::OUString sDesktopName;
|
|
||||||
+
|
|
||||||
+ if ( aModuleId.equalsAscii( "com.sun.star.text.TextDocument" ) ||
|
|
||||||
+ aModuleId.equalsAscii( "com.sun.star.text.GlobalDocument" ) ||
|
|
||||||
+ aModuleId.equalsAscii( "com.sun.star.text.WebDocument" ) ||
|
|
||||||
+ aModuleId.equalsAscii( "com.sun.star.xforms.XMLFormDocument" ) )
|
|
||||||
+ sDesktopName = ::rtl::OUString::createFromAscii("writer");
|
|
||||||
+ else if ( aModuleId.equalsAscii( "com.sun.star.sheet.SpreadsheetDocument" ) )
|
|
||||||
+ sDesktopName = ::rtl::OUString::createFromAscii("calc");
|
|
||||||
+ else if ( aModuleId.equalsAscii( "com.sun.star.presentation.PresentationDocument" ) )
|
|
||||||
+ sDesktopName = ::rtl::OUString::createFromAscii("impress");
|
|
||||||
+ else if ( aModuleId.equalsAscii( "com.sun.star.drawing.DrawingDocument" ) )
|
|
||||||
+ sDesktopName = ::rtl::OUString::createFromAscii("draw");
|
|
||||||
+ else if ( aModuleId.equalsAscii( "com.sun.star.formula.FormulaProperties" ) )
|
|
||||||
+ sDesktopName = ::rtl::OUString::createFromAscii("math");
|
|
||||||
+ else if ( aModuleId.equalsAscii( "com.sun.star.sdb.DatabaseDocument" ) ||
|
|
||||||
+ aModuleId.equalsAscii( "com.sun.star.sdb.OfficeDatabaseDocument" ) ||
|
|
||||||
+ aModuleId.equalsAscii( "com.sun.star.sdb.RelationDesign" ) ||
|
|
||||||
+ aModuleId.equalsAscii( "com.sun.star.sdb.QueryDesign" ) ||
|
|
||||||
+ aModuleId.equalsAscii( "com.sun.star.sdb.TableDesign" ) ||
|
|
||||||
+ aModuleId.equalsAscii( "com.sun.star.sdb.DataSourceBrowser" ) )
|
|
||||||
+ sDesktopName = ::rtl::OUString::createFromAscii("base");
|
|
||||||
+ else if ( aModuleId.equalsAscii( "com.sun.star.frame.StartModule" ) )
|
|
||||||
+ sDesktopName = ::rtl::OUString::createFromAscii("startcenter");
|
|
||||||
+ else
|
|
||||||
+ sDesktopName = ::rtl::OUString::createFromAscii("startcenter");
|
|
||||||
+ sWM_CLASS = aProductName.toAsciiLowerCase();
|
|
||||||
+ sWM_CLASS += ::rtl::OUString(sal_Unicode('-'));
|
|
||||||
+ sWM_CLASS += sDesktopName;
|
|
||||||
+ }
|
|
||||||
+ catch(const css::uno::Exception&)
|
|
||||||
+ {
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ // VCL SYNCHRONIZED ->
|
|
||||||
+ ::vos::OClearableGuard aSolarLock( Application::GetSolarMutex() );
|
|
||||||
+
|
|
||||||
+ Window* pWindow = (VCLUnoHelper::GetWindow( xWindow ));
|
|
||||||
+ if (
|
|
||||||
+ ( pWindow ) &&
|
|
||||||
+ ( pWindow->GetType() == WINDOW_WORKWINDOW )
|
|
||||||
+ )
|
|
||||||
+ {
|
|
||||||
+ WorkWindow* pWorkWindow = (WorkWindow*)pWindow;
|
|
||||||
+#ifdef COPY_TO_TITLE_FOR_DEBUG
|
|
||||||
+ pWorkWindow->SetText( sWM_CLASS );
|
|
||||||
+#endif
|
|
||||||
+ pWorkWindow->SetWMClass( sWM_CLASS );
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ aSolarLock.clear();
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+
|
|
||||||
//*****************************************************************************************************************
|
|
||||||
::sal_Bool TitleBarUpdate::implst_getModuleInfo(const css::uno::Reference< css::frame::XFrame >& xFrame,
|
|
||||||
TModuleInfo& rInfo )
|
|
||||||
@@ -260,6 +347,9 @@
|
|
||||||
|
|
||||||
impl_updateIcon (xFrame);
|
|
||||||
impl_updateTitle (xFrame);
|
|
||||||
+#if defined(UNX) && !defined(MACOSX)
|
|
||||||
+ impl_updateWM_CLASSS (xFrame);
|
|
||||||
+#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
//*****************************************************************************************************************
|
|
||||||
diff -ru vcl/aqua/inc/salframe.h vcl/aqua/inc/salframe.h
|
|
||||||
--- vcl/aqua/inc/salframe.h 2010-10-14 21:43:20.000000000 +0100
|
|
||||||
+++ vcl/aqua/inc/salframe.h 2010-10-22 13:26:26.000000000 +0100
|
|
||||||
@@ -159,6 +159,7 @@
|
|
||||||
virtual void SetExtendedFrameStyle( SalExtStyle );
|
|
||||||
virtual void SetBackgroundBitmap( SalBitmap* );
|
|
||||||
virtual void SetScreenNumber(unsigned int);
|
|
||||||
+ virtual void SetWMClass( const rtl::OUString &rWMClass );
|
|
||||||
|
|
||||||
// shaped system windows
|
|
||||||
// set clip region to none (-> rectangular windows, normal state)
|
|
||||||
diff -ru vcl/aqua/source/window/salframe.cxx vcl/aqua/source/window/salframe.cxx
|
|
||||||
--- vcl/aqua/source/window/salframe.cxx 2010-10-18 17:01:44.000000000 +0100
|
|
||||||
+++ vcl/aqua/source/window/salframe.cxx 2010-10-22 13:17:50.000000000 +0100
|
|
||||||
@@ -664,6 +664,10 @@
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+void AquaSalFrame::SetWMClass( const rtl::OUString &/*rWMClass*/ )
|
|
||||||
+{
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
// -----------------------------------------------------------------------
|
|
||||||
|
|
||||||
void AquaSalFrame::ShowFullScreen( BOOL bFullScreen, sal_Int32 nDisplay )
|
|
||||||
diff -ru vcl/inc/vcl/salframe.hxx vcl/inc/vcl/salframe.hxx
|
|
||||||
--- vcl/inc/vcl/salframe.hxx 2010-10-14 21:43:20.000000000 +0100
|
|
||||||
+++ vcl/inc/vcl/salframe.hxx 2010-10-22 13:26:05.000000000 +0100
|
|
||||||
@@ -266,6 +266,8 @@
|
|
||||||
// move the frame to a new screen
|
|
||||||
virtual void SetScreenNumber( unsigned int nScreen ) = 0;
|
|
||||||
|
|
||||||
+ virtual void SetWMClass( const rtl::OUString &rWMClass ) = 0;
|
|
||||||
+
|
|
||||||
// shaped system windows
|
|
||||||
// set clip region to none (-> rectangular windows, normal state)
|
|
||||||
virtual void ResetClipRegion() = 0;
|
|
||||||
diff -ru vcl/inc/vcl/syswin.hxx vcl/inc/vcl/syswin.hxx
|
|
||||||
--- vcl/inc/vcl/syswin.hxx 2010-10-14 21:43:20.000000000 +0100
|
|
||||||
+++ vcl/inc/vcl/syswin.hxx 2010-10-22 13:14:48.000000000 +0100
|
|
||||||
@@ -277,6 +277,8 @@
|
|
||||||
@see GetScreenNumber
|
|
||||||
*/
|
|
||||||
void SetScreenNumber( unsigned int nNewScreen );
|
|
||||||
+
|
|
||||||
+ void SetWMClass( const rtl::OUString &rWMClass );
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // _SV_SYSWIN_HXX
|
|
||||||
diff -ru vcl/source/window/syswin.cxx vcl/source/window/syswin.cxx
|
|
||||||
--- vcl/source/window/syswin.cxx 2010-10-14 21:43:20.000000000 +0100
|
|
||||||
+++ vcl/source/window/syswin.cxx 2010-10-22 13:29:21.000000000 +0100
|
|
||||||
@@ -1082,3 +1082,8 @@
|
|
||||||
{
|
|
||||||
mpWindowImpl->mpFrame->SetScreenNumber( nScreen );
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+void SystemWindow::SetWMClass( const rtl::OUString &rWMClass )
|
|
||||||
+{
|
|
||||||
+ mpWindowImpl->mpFrame->SetWMClass( rWMClass );
|
|
||||||
+}
|
|
||||||
diff -ru vcl/unx/gtk/window/gtkframe.cxx vcl/unx/gtk/window/gtkframe.cxx
|
|
||||||
--- vcl/unx/gtk/window/gtkframe.cxx 2010-10-22 08:55:43.000000000 +0100
|
|
||||||
+++ vcl/unx/gtk/window/gtkframe.cxx 2010-10-22 14:12:08.000000000 +0100
|
|
||||||
@@ -981,25 +981,10 @@
|
|
||||||
if( nStyle != m_nExtStyle && ! isChild() )
|
|
||||||
{
|
|
||||||
m_nExtStyle = nStyle;
|
|
||||||
- if( GTK_WIDGET_REALIZED( m_pWindow ) )
|
|
||||||
- {
|
|
||||||
- XClassHint* pClass = XAllocClassHint();
|
|
||||||
- rtl::OString aResHint = X11SalData::getFrameResName( m_nExtStyle );
|
|
||||||
- pClass->res_name = const_cast<char*>(aResHint.getStr());
|
|
||||||
- pClass->res_class = const_cast<char*>(X11SalData::getFrameClassName());
|
|
||||||
- XSetClassHint( getDisplay()->GetDisplay(),
|
|
||||||
- GDK_WINDOW_XWINDOW(m_pWindow->window),
|
|
||||||
- pClass );
|
|
||||||
- XFree( pClass );
|
|
||||||
- }
|
|
||||||
- else
|
|
||||||
- gtk_window_set_wmclass( GTK_WINDOW(m_pWindow),
|
|
||||||
- X11SalData::getFrameResName( m_nExtStyle ),
|
|
||||||
- X11SalData::getFrameClassName() );
|
|
||||||
+ updateWMClass();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
-
|
|
||||||
SalGraphics* GtkSalFrame::GetGraphics()
|
|
||||||
{
|
|
||||||
if( m_pWindow )
|
|
||||||
@@ -1792,6 +1777,39 @@
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+void GtkSalFrame::updateWMClass()
|
|
||||||
+{
|
|
||||||
+ fprintf(stderr, "%p GtkSalFrame::SetWMClass with %s\n", this, rtl::OUStringToOString(m_sWMClass, RTL_TEXTENCODING_UTF8).getStr());
|
|
||||||
+
|
|
||||||
+ rtl::OString aResClass = rtl::OUStringToOString(m_sWMClass, RTL_TEXTENCODING_ASCII_US);
|
|
||||||
+ const char *pResClass = aResClass.getLength() ? aResClass.getStr() : X11SalData::getFrameClassName();
|
|
||||||
+
|
|
||||||
+ if( GTK_WIDGET_REALIZED( m_pWindow ) )
|
|
||||||
+ {
|
|
||||||
+ XClassHint* pClass = XAllocClassHint();
|
|
||||||
+ rtl::OString aResName = X11SalData::getFrameResName( m_nExtStyle );
|
|
||||||
+ pClass->res_name = const_cast<char*>(aResName.getStr());
|
|
||||||
+ pClass->res_class = const_cast<char*>(pResClass);
|
|
||||||
+ XSetClassHint( getDisplay()->GetDisplay(),
|
|
||||||
+ GDK_WINDOW_XWINDOW(m_pWindow->window),
|
|
||||||
+ pClass );
|
|
||||||
+ XFree( pClass );
|
|
||||||
+ }
|
|
||||||
+ else
|
|
||||||
+ gtk_window_set_wmclass( GTK_WINDOW(m_pWindow),
|
|
||||||
+ X11SalData::getFrameResName( m_nExtStyle ),
|
|
||||||
+ pResClass );
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+void GtkSalFrame::SetWMClass( const rtl::OUString &rWMClass )
|
|
||||||
+{
|
|
||||||
+ if( rWMClass != m_sWMClass && ! isChild() )
|
|
||||||
+ {
|
|
||||||
+ m_sWMClass = rWMClass;
|
|
||||||
+ updateWMClass();
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
void GtkSalFrame::ShowFullScreen( BOOL bFullScreen, sal_Int32 nScreen )
|
|
||||||
{
|
|
||||||
if( m_pWindow && ! isChild() )
|
|
||||||
diff -ru vcl/unx/headless/svpframe.hxx vcl/unx/headless/svpframe.hxx
|
|
||||||
--- vcl/unx/headless/svpframe.hxx 2010-10-14 21:43:20.000000000 +0100
|
|
||||||
+++ vcl/unx/headless/svpframe.hxx 2010-10-22 13:27:19.000000000 +0100
|
|
||||||
@@ -125,6 +125,7 @@
|
|
||||||
|
|
||||||
/*TODO: functional implementation */
|
|
||||||
virtual void SetScreenNumber( unsigned int nScreen ) { (void)nScreen; }
|
|
||||||
+ virtual void SetWMClass( const rtl::OUString &rWMClass ) { (void) rWMClass; }
|
|
||||||
};
|
|
||||||
#endif // _SVP_SVPFRAME_HXX
|
|
||||||
|
|
||||||
diff -ru vcl/unx/inc/plugins/gtk/gtkframe.hxx vcl/unx/inc/plugins/gtk/gtkframe.hxx
|
|
||||||
--- vcl/unx/inc/plugins/gtk/gtkframe.hxx 2010-10-22 08:55:43.000000000 +0100
|
|
||||||
+++ vcl/unx/inc/plugins/gtk/gtkframe.hxx 2010-10-22 14:10:08.000000000 +0100
|
|
||||||
@@ -192,6 +192,7 @@
|
|
||||||
bool m_bWindowIsGtkPlug;
|
|
||||||
bool m_bSetFocusOnMap;
|
|
||||||
String m_aTitle;
|
|
||||||
+ rtl::OUString m_sWMClass;
|
|
||||||
|
|
||||||
IMHandler* m_pIMHandler;
|
|
||||||
|
|
||||||
@@ -269,6 +270,8 @@
|
|
||||||
void setMinMaxSize();
|
|
||||||
void createNewWindow( XLIB_Window aParent, bool bXEmbed, int nScreen );
|
|
||||||
void askForXEmbedFocus( sal_Int32 nTimecode );
|
|
||||||
+
|
|
||||||
+ void updateWMClass();
|
|
||||||
|
|
||||||
DECL_LINK( ImplDelayedFullScreenHdl, void* );
|
|
||||||
public:
|
|
||||||
@@ -387,6 +390,7 @@
|
|
||||||
virtual void SetBackgroundBitmap( SalBitmap* );
|
|
||||||
|
|
||||||
virtual void SetScreenNumber( unsigned int );
|
|
||||||
+ virtual void SetWMClass( const rtl::OUString &rWMClass );
|
|
||||||
|
|
||||||
// shaped system windows
|
|
||||||
// set clip region to none (-> rectangular windows, normal state)
|
|
||||||
diff -ru vcl/unx/inc/salframe.h vcl/unx/inc/salframe.h
|
|
||||||
--- vcl/unx/inc/salframe.h 2010-10-14 21:43:20.000000000 +0100
|
|
||||||
+++ vcl/unx/inc/salframe.h 2010-10-22 14:22:35.000000000 +0100
|
|
||||||
@@ -128,6 +128,8 @@
|
|
||||||
int mnIconID;
|
|
||||||
|
|
||||||
String m_aTitle;
|
|
||||||
+
|
|
||||||
+ rtl::OUString m_sWMClass;
|
|
||||||
|
|
||||||
SystemChildData maSystemChildData;
|
|
||||||
|
|
||||||
@@ -171,6 +173,8 @@
|
|
||||||
|
|
||||||
void setXEmbedInfo();
|
|
||||||
void askForXEmbedFocus( sal_Int32 i_nTimeCode );
|
|
||||||
+
|
|
||||||
+ void updateWMClass();
|
|
||||||
public:
|
|
||||||
X11SalFrame( SalFrame* pParent, ULONG nSalFrameStyle, SystemParentData* pSystemParent = NULL );
|
|
||||||
virtual ~X11SalFrame();
|
|
||||||
@@ -261,6 +265,7 @@
|
|
||||||
virtual void SetBackgroundBitmap( SalBitmap* pBitmap );
|
|
||||||
|
|
||||||
virtual void SetScreenNumber( unsigned int );
|
|
||||||
+ virtual void SetWMClass( const rtl::OUString &rWMClass );
|
|
||||||
|
|
||||||
// shaped system windows
|
|
||||||
// set clip region to none (-> rectangular windows, normal state)
|
|
||||||
diff -ru vcl/unx/source/window/salframe.cxx vcl/unx/source/window/salframe.cxx
|
|
||||||
--- vcl/unx/source/window/salframe.cxx 2010-10-18 12:39:42.000000000 +0100
|
|
||||||
+++ vcl/unx/source/window/salframe.cxx 2010-10-22 14:23:44.000000000 +0100
|
|
||||||
@@ -542,11 +542,9 @@
|
|
||||||
a[n++] = pDisplay_->getWMAdaptor()->getAtom( WMAdaptor::WM_TAKE_FOCUS );
|
|
||||||
XSetWMProtocols( GetXDisplay(), GetShellWindow(), a, n );
|
|
||||||
|
|
||||||
- XClassHint* pClass = XAllocClassHint();
|
|
||||||
- pClass->res_name = const_cast<char*>(X11SalData::getFrameResName());
|
|
||||||
- pClass->res_class = const_cast<char*>(X11SalData::getFrameClassName());
|
|
||||||
- XSetClassHint( GetXDisplay(), GetShellWindow(), pClass );
|
|
||||||
- XFree( pClass );
|
|
||||||
+ // force wm class hint
|
|
||||||
+ mnExtStyle = ~0;
|
|
||||||
+ SetExtendedFrameStyle( 0 );
|
|
||||||
|
|
||||||
XSizeHints* pHints = XAllocSizeHints();
|
|
||||||
pHints->flags = PWinGravity | PPosition;
|
|
||||||
@@ -849,13 +847,7 @@
|
|
||||||
if( nStyle != mnExtStyle && ! IsChildWindow() )
|
|
||||||
{
|
|
||||||
mnExtStyle = nStyle;
|
|
||||||
-
|
|
||||||
- XClassHint* pClass = XAllocClassHint();
|
|
||||||
- rtl::OString aResHint = X11SalData::getFrameResName( mnExtStyle );
|
|
||||||
- pClass->res_name = const_cast<char*>(aResHint.getStr());
|
|
||||||
- pClass->res_class = const_cast<char*>(X11SalData::getFrameClassName());
|
|
||||||
- XSetClassHint( GetXDisplay(), GetShellWindow(), pClass );
|
|
||||||
- XFree( pClass );
|
|
||||||
+ updateWMClass();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -2192,6 +2184,30 @@
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+void X11SalFrame::SetWMClass( const rtl::OUString &rWMClass )
|
|
||||||
+{
|
|
||||||
+ if( rWMClass != m_sWMClass && ! IsChildWindow() )
|
|
||||||
+ {
|
|
||||||
+ m_sWMClass = rWMClass;
|
|
||||||
+ updateWMClass();
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+void X11SalFrame::updateWMClass()
|
|
||||||
+{
|
|
||||||
+ XClassHint* pClass = XAllocClassHint();
|
|
||||||
+ rtl::OString aResName = X11SalData::getFrameResName( mnExtStyle );
|
|
||||||
+ pClass->res_name = const_cast<char*>(aResName.getStr());
|
|
||||||
+
|
|
||||||
+ rtl::OString aResClass = rtl::OUStringToOString(m_sWMClass, RTL_TEXTENCODING_ASCII_US);
|
|
||||||
+ const char *pResClass = aResClass.getLength() ? aResClass.getStr() : X11SalData::getFrameClassName();
|
|
||||||
+
|
|
||||||
+ pClass->res_class = const_cast<char*>(pResClass);
|
|
||||||
+ XSetClassHint( GetXDisplay(), GetShellWindow(), pClass );
|
|
||||||
+ XFree( pClass );
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+
|
|
||||||
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
||||||
|
|
||||||
void X11SalFrame::ShowFullScreen( BOOL bFullScreen, sal_Int32 nScreen )
|
|
||||||
diff -ru vcl/win/inc/salframe.h vcl/win/inc/salframe.h
|
|
||||||
--- vcl/win/inc/salframe.h 2010-10-14 21:43:21.000000000 +0100
|
|
||||||
+++ vcl/win/inc/salframe.h 2010-10-22 13:26:23.000000000 +0100
|
|
||||||
@@ -141,6 +141,7 @@
|
|
||||||
virtual bool SetPluginParent( SystemParentData* pNewParent );
|
|
||||||
virtual void SetBackgroundBitmap( SalBitmap* );
|
|
||||||
virtual void SetScreenNumber( unsigned int );
|
|
||||||
+ virtual void SetWMClass( const rtl::OUString &rWMClass );
|
|
||||||
virtual void ResetClipRegion();
|
|
||||||
virtual void BeginSetClipRegion( ULONG nRects );
|
|
||||||
virtual void UnionClipRegion( long nX, long nY, long nWidth, long nHeight );
|
|
||||||
diff -ru vcl/win/source/window/salframe.cxx vcl/win/source/window/salframe.cxx
|
|
||||||
--- vcl/win/source/window/salframe.cxx 2010-10-14 21:43:21.000000000 +0100
|
|
||||||
+++ vcl/win/source/window/salframe.cxx 2010-10-22 13:18:05.000000000 +0100
|
|
||||||
@@ -2036,6 +2036,10 @@
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+void WinSalFrame::SetWMClass( const rtl::OUString &/*rWMClass*/ )
|
|
||||||
+{
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
// -----------------------------------------------------------------------
|
|
||||||
|
|
||||||
void WinSalFrame::ShowFullScreen( BOOL bFullScreen, sal_Int32 nDisplay )
|
|
@ -1,82 +0,0 @@
|
|||||||
--- openoffice.org/officecfg/registry/data/org/openoffice/Office/Writer.xcu.orig 2005-04-18 20:39:35.000000000 +0530
|
|
||||||
+++ openoffice.org/officecfg/registry/data/org/openoffice/Office/Writer.xcu 2005-05-10 17:30:14.000000000 +0530
|
|
||||||
@@ -40,6 +40,32 @@
|
|
||||||
<prop oor:name="IsHideEmptyParagraphs" >
|
|
||||||
<value>true</value>
|
|
||||||
</prop>
|
|
||||||
+ <node oor:name="DataSource">
|
|
||||||
+ <prop oor:name="DataSourceName" oor:type="xs:string">
|
|
||||||
+ <value>EvolutionLocal</value>
|
|
||||||
+ </prop>
|
|
||||||
+ <prop oor:name="DataTableName" oor:type="xs:string">
|
|
||||||
+ <value>Personal</value>
|
|
||||||
+ </prop>
|
|
||||||
+ </node>
|
|
||||||
+ <node oor:name="AddressDataAssignments">
|
|
||||||
+ <node oor:name="_0" oor:op="replace">
|
|
||||||
+ <prop oor:name="DBColumnAssignments" oor:type="oor:string-list">
|
|
||||||
+ <value oor:separator=",">title,full_name,family_name,org,addr_line1,addr_line2,city,state,zip,country,home_phone,business_phone,email_1,</value>
|
|
||||||
+ </prop>
|
|
||||||
+ <node oor:name="DataSource">
|
|
||||||
+ <prop oor:name="DataCommandType" oor:type="xs:short">
|
|
||||||
+ <value>0</value>
|
|
||||||
+ </prop>
|
|
||||||
+ <prop oor:name="DataSourceName" oor:type="xs:string">
|
|
||||||
+ <value>EvolutionLocal</value>
|
|
||||||
+ </prop>
|
|
||||||
+ <prop oor:name="DataTableName" oor:type="xs:string">
|
|
||||||
+ <value>Personal</value>
|
|
||||||
+ </prop>
|
|
||||||
+ </node>
|
|
||||||
+ </node>
|
|
||||||
+ </node>
|
|
||||||
<prop oor:name="EMailSupported">
|
|
||||||
<value>true</value>
|
|
||||||
</prop>
|
|
||||||
--- openoffice.org/extras/source/database/makefile.mk.bakj 2005-03-16 18:49:33.251075928 +0530
|
|
||||||
+++ openoffice.org/extras/source/database/makefile.mk 2005-03-16 18:50:38.651285353 +0530
|
|
||||||
@@ -72,8 +72,8 @@
|
|
||||||
|
|
||||||
ZIP1TARGET = $(DATABASE_USER_TARGET)
|
|
||||||
|
|
||||||
-ZIP1LIST = biblio.odb
|
|
||||||
-
|
|
||||||
+ZIP1LIST = biblio.odb \
|
|
||||||
+ evolocal.odb
|
|
||||||
ZIP2TARGET = $(DATABASE_USER_BIBLIO_TARGET)
|
|
||||||
|
|
||||||
ZIP2LIST = biblio.dbf biblio.dbt
|
|
||||||
--- openoffice.org/officecfg/registry/data/org/openoffice/Office/DataAccess.xcu.bakj 2005-03-16 18:51:43.777536725 +0530
|
|
||||||
+++ openoffice.org/officecfg/registry/data/org/openoffice/Office/DataAccess.xcu 2005-03-16 18:52:51.471404727 +0530
|
|
||||||
@@ -161,6 +161,14 @@
|
|
||||||
<value>Bibliography</value>
|
|
||||||
</prop>
|
|
||||||
</node>
|
|
||||||
+ <node oor:name="EvolutionLocal" oor:op="replace">
|
|
||||||
+ <prop oor:name="Location" oor:type="xs:string">
|
|
||||||
+ <value>$(userurl)/database/evolocal.odb</value>
|
|
||||||
+ </prop>
|
|
||||||
+ <prop oor:name="Name" oor:type="xs:string">
|
|
||||||
+ <value>EvolutionLocal</value>
|
|
||||||
+ </prop>
|
|
||||||
+ </node>
|
|
||||||
</node>
|
|
||||||
<node oor:name="Bibliography">
|
|
||||||
<node oor:name="CurrentDataSource">
|
|
||||||
--- openoffice.org.orig/extensions/source/abpilot/abspilot.cxx 19 Dec 2005 17:26:24 -0000 1.13
|
|
||||||
+++ openoffice.org/extensions/source/abpilot/abspilot.cxx 16 Feb 2006 12:45:38 -0000
|
|
||||||
@@ -124,12 +124,8 @@
|
|
||||||
// some initial settings
|
|
||||||
#ifdef MACOSX
|
|
||||||
m_aSettings.eType = AST_MACAB;
|
|
||||||
-#elif WITH_MOZILLA
|
|
||||||
-#ifdef UNX
|
|
||||||
- m_aSettings.eType = AST_MORK;
|
|
||||||
-#else
|
|
||||||
- m_aSettings.eType = AST_OE;
|
|
||||||
-#endif
|
|
||||||
+#elif UNX
|
|
||||||
+ m_aSettings.eType = AST_EVOLUTION;
|
|
||||||
#else
|
|
||||||
m_aSettings.eType = AST_OTHER;
|
|
||||||
#endif
|
|
File diff suppressed because it is too large
Load Diff
@ -1,87 +0,0 @@
|
|||||||
diff -r 3c24aa9a7810 desktop/source/app/cmdlineargs.cxx
|
|
||||||
--- a/desktop/source/app/cmdlineargs.cxx Sat Jan 23 16:31:03 2010 +0000
|
|
||||||
+++ b/desktop/source/app/cmdlineargs.cxx Tue Feb 02 13:59:39 2010 +0000
|
|
||||||
@@ -396,7 +396,7 @@
|
|
||||||
}
|
|
||||||
else if ( aArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "-quickstart" )) == sal_True )
|
|
||||||
{
|
|
||||||
-#if defined(WNT) || defined(OS2) || defined(QUARTZ)
|
|
||||||
+#if defined(ENABLE_QUICKSTART_APPLET)
|
|
||||||
SetBoolParam_Impl( CMD_BOOLPARAM_QUICKSTART, sal_True );
|
|
||||||
#endif
|
|
||||||
SetBoolParam_Impl( CMD_BOOLPARAM_NOQUICKSTART, sal_False );
|
|
||||||
diff -r 3c24aa9a7810 desktop/source/app/makefile.mk
|
|
||||||
--- a/desktop/source/app/makefile.mk Sat Jan 23 16:31:03 2010 +0000
|
|
||||||
+++ b/desktop/source/app/makefile.mk Tue Feb 02 13:59:39 2010 +0000
|
|
||||||
@@ -53,6 +53,10 @@
|
|
||||||
# DEPLOYMENTMISCLIB = -ldeploymentmisc$(DLLPOSTFIX)
|
|
||||||
# .ENDIF
|
|
||||||
|
|
||||||
+.IF "$(GUI)"=="WNT" || "$(GUI)"=="OS2" || "$(GUIBASE)"=="aqua" || "$(ENABLE_SYSTRAY_GTK)"=="TRUE"
|
|
||||||
+CFLAGS+=-DENABLE_QUICKSTART_APPLET
|
|
||||||
+.ENDIF
|
|
||||||
+
|
|
||||||
SHL1TARGET = sofficeapp
|
|
||||||
SHL1OBJS = \
|
|
||||||
$(SLO)$/app.obj \
|
|
||||||
diff -r 3c24aa9a7810 sfx2/source/appl/shutdownicon.cxx
|
|
||||||
--- a/sfx2/source/appl/shutdownicon.cxx Sat Jan 23 16:31:03 2010 +0000
|
|
||||||
+++ b/sfx2/source/appl/shutdownicon.cxx Tue Feb 02 13:59:39 2010 +0000
|
|
||||||
@@ -555,8 +555,8 @@
|
|
||||||
return;
|
|
||||||
|
|
||||||
// always remove ourselves as listener
|
|
||||||
+ pInst->m_bListenForTermination = true;
|
|
||||||
xDesktop->removeTerminateListener( pInst );
|
|
||||||
- pInst->m_bListenForTermination = true;
|
|
||||||
|
|
||||||
// terminate desktop only if no tasks exist
|
|
||||||
Reference< XFramesSupplier > xSupplier( xDesktop, UNO_QUERY );
|
|
||||||
diff -r 3c24aa9a7810 sfx2/source/appl/shutdowniconunx.cxx
|
|
||||||
--- a/sfx2/source/appl/shutdowniconunx.cxx Sat Jan 23 16:31:03 2010 +0000
|
|
||||||
+++ b/sfx2/source/appl/shutdowniconunx.cxx Tue Feb 02 13:59:39 2010 +0000
|
|
||||||
@@ -39,6 +39,7 @@
|
|
||||||
static EggTrayIcon *pTrayIcon;
|
|
||||||
static GtkWidget *pExitMenuItem = NULL;
|
|
||||||
static GtkWidget *pOpenMenuItem = NULL;
|
|
||||||
+static GtkWidget *pDisableMenuItem = NULL;
|
|
||||||
|
|
||||||
static void open_url_cb( GtkWidget *, gpointer data )
|
|
||||||
{
|
|
||||||
@@ -67,8 +68,10 @@
|
|
||||||
static void exit_quickstarter_cb( GtkWidget * )
|
|
||||||
{
|
|
||||||
egg_tray_icon_cancel_message (pTrayIcon, 1 );
|
|
||||||
- ShutdownIcon::getInstance()->terminateDesktop();
|
|
||||||
plugin_shutdown_sys_tray();
|
|
||||||
+ //terminate may cause this .so to be unloaded. So we must be hands off
|
|
||||||
+ //all calls into this .so after this call
|
|
||||||
+ ShutdownIcon::terminateDesktop();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void menu_deactivate_cb( GtkWidget *pMenu )
|
|
||||||
@@ -265,7 +268,7 @@
|
|
||||||
pMenuItem = gtk_separator_menu_item_new();
|
|
||||||
gtk_menu_shell_append( pMenuShell, pMenuItem );
|
|
||||||
|
|
||||||
- (void) add_image_menu_item
|
|
||||||
+ pDisableMenuItem = add_image_menu_item
|
|
||||||
( pMenuShell, GTK_STOCK_CLOSE,
|
|
||||||
pShutdownIcon->GetResString( STR_QUICKSTART_PRELAUNCH_UNX ),
|
|
||||||
G_CALLBACK( systray_disable_cb ) );
|
|
||||||
@@ -289,6 +292,7 @@
|
|
||||||
bool bModal = ShutdownIcon::bModalMode;
|
|
||||||
gtk_widget_set_sensitive( pExitMenuItem, !bModal);
|
|
||||||
gtk_widget_set_sensitive( pOpenMenuItem, !bModal);
|
|
||||||
+ gtk_widget_set_sensitive( pDisableMenuItem, !bModal);
|
|
||||||
}
|
|
||||||
|
|
||||||
extern "C" {
|
|
||||||
@@ -404,6 +409,7 @@
|
|
||||||
pTrayIcon = NULL;
|
|
||||||
pExitMenuItem = NULL;
|
|
||||||
pOpenMenuItem = NULL;
|
|
||||||
+ pDisableMenuItem = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif // ENABLE_QUICKSTART_APPLET
|
|
@ -1,644 +0,0 @@
|
|||||||
--- cppu/source/threadpool/jobqueue.cxx 2008-04-11 11:33:02.000000000 +0100
|
|
||||||
+++ cppu/source/threadpool/jobqueue.cxx 2009-12-02 16:14:26.000000000 +0000
|
|
||||||
@@ -45,6 +45,7 @@
|
|
||||||
m_cndWait( osl_createCondition() )
|
|
||||||
{
|
|
||||||
osl_resetCondition( m_cndWait );
|
|
||||||
+ m_DisposedCallerAdmin = DisposedCallerAdmin::getInstance();
|
|
||||||
}
|
|
||||||
|
|
||||||
JobQueue::~JobQueue()
|
|
||||||
@@ -71,7 +72,7 @@
|
|
||||||
{
|
|
||||||
// synchronize with the dispose calls
|
|
||||||
MutexGuard guard( m_mutex );
|
|
||||||
- if( DisposedCallerAdmin::getInstance()->isDisposed( nDisposeId ) )
|
|
||||||
+ if( m_DisposedCallerAdmin->isDisposed( nDisposeId ) )
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
--- cppu/source/threadpool/jobqueue.hxx 2008-04-11 11:33:18.000000000 +0100
|
|
||||||
+++ cppu/source/threadpool/jobqueue.hxx 2009-12-02 16:15:49.000000000 +0000
|
|
||||||
@@ -37,6 +37,8 @@
|
|
||||||
#include <osl/conditn.h>
|
|
||||||
#include <osl/mutex.hxx>
|
|
||||||
|
|
||||||
+#include <boost/shared_ptr.hpp>
|
|
||||||
+
|
|
||||||
namespace cppu_threadpool
|
|
||||||
{
|
|
||||||
extern "C" typedef void (SAL_CALL RequestFun)(void *);
|
|
||||||
@@ -51,6 +53,9 @@
|
|
||||||
|
|
||||||
typedef ::std::list < sal_Int64 > CallStackList;
|
|
||||||
|
|
||||||
+ class DisposedCallerAdmin;
|
|
||||||
+ typedef boost::shared_ptr<DisposedCallerAdmin> DisposedCallerAdminHolder;
|
|
||||||
+
|
|
||||||
class JobQueue
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
@@ -76,6 +81,7 @@
|
|
||||||
sal_Int32 m_nToDo;
|
|
||||||
sal_Bool m_bSuspended;
|
|
||||||
oslCondition m_cndWait;
|
|
||||||
+ DisposedCallerAdminHolder m_DisposedCallerAdmin;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
--- cppu/source/threadpool/thread.cxx 2008-04-11 11:34:00.000000000 +0100
|
|
||||||
+++ cppu/source/threadpool/thread.cxx 2009-12-03 16:15:02.000000000 +0000
|
|
||||||
@@ -31,6 +31,8 @@
|
|
||||||
#include <osl/diagnose.h>
|
|
||||||
#include <uno/threadpool.h>
|
|
||||||
|
|
||||||
+#include <rtl/instance.hxx>
|
|
||||||
+
|
|
||||||
#include "thread.hxx"
|
|
||||||
#include "jobqueue.hxx"
|
|
||||||
#include "threadpool.hxx"
|
|
||||||
@@ -98,20 +100,17 @@
|
|
||||||
} while( pCurrent );
|
|
||||||
}
|
|
||||||
|
|
||||||
- ThreadAdmin* ThreadAdmin::getInstance()
|
|
||||||
+ struct theThreadAdmin : public rtl::StaticWithInit< ThreadAdminHolder, theThreadAdmin >
|
|
||||||
{
|
|
||||||
- static ThreadAdmin *pThreadAdmin = 0;
|
|
||||||
- if( ! pThreadAdmin )
|
|
||||||
- {
|
|
||||||
- MutexGuard guard( Mutex::getGlobalMutex() );
|
|
||||||
- if( ! pThreadAdmin )
|
|
||||||
- {
|
|
||||||
- static ThreadAdmin admin;
|
|
||||||
- pThreadAdmin = &admin;
|
|
||||||
- }
|
|
||||||
+ ThreadAdminHolder operator () () {
|
|
||||||
+ ThreadAdminHolder aRet(new ThreadAdmin());
|
|
||||||
+ return aRet;
|
|
||||||
}
|
|
||||||
- return pThreadAdmin;
|
|
||||||
+ };
|
|
||||||
|
|
||||||
+ ThreadAdminHolder& ThreadAdmin::getInstance()
|
|
||||||
+ {
|
|
||||||
+ return theThreadAdmin::get();
|
|
||||||
}
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------------
|
|
||||||
@@ -119,12 +118,13 @@
|
|
||||||
const ByteSequence &aThreadId,
|
|
||||||
sal_Bool bAsynchron )
|
|
||||||
: m_thread( 0 )
|
|
||||||
+ , m_aThreadAdmin( ThreadAdmin::getInstance() )
|
|
||||||
, m_pQueue( pQueue )
|
|
||||||
, m_aThreadId( aThreadId )
|
|
||||||
, m_bAsynchron( bAsynchron )
|
|
||||||
, m_bDeleteSelf( sal_True )
|
|
||||||
{
|
|
||||||
- ThreadAdmin::getInstance()->add( this );
|
|
||||||
+ m_aThreadAdmin->add( this );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@@ -166,7 +166,7 @@
|
|
||||||
|
|
||||||
void ORequestThread::onTerminated()
|
|
||||||
{
|
|
||||||
- ThreadAdmin::getInstance()->remove( this );
|
|
||||||
+ m_aThreadAdmin->remove( this );
|
|
||||||
if( m_bDeleteSelf )
|
|
||||||
{
|
|
||||||
delete this;
|
|
||||||
@@ -175,6 +175,8 @@
|
|
||||||
|
|
||||||
void ORequestThread::run()
|
|
||||||
{
|
|
||||||
+ ThreadPoolHolder theThreadPool = cppu_threadpool::ThreadPool::getInstance();
|
|
||||||
+
|
|
||||||
while ( m_pQueue )
|
|
||||||
{
|
|
||||||
if( ! m_bAsynchron )
|
|
||||||
@@ -197,7 +199,7 @@
|
|
||||||
|
|
||||||
if( m_pQueue->isEmpty() )
|
|
||||||
{
|
|
||||||
- ThreadPool::getInstance()->revokeQueue( m_aThreadId , m_bAsynchron );
|
|
||||||
+ theThreadPool->revokeQueue( m_aThreadId , m_bAsynchron );
|
|
||||||
// Note : revokeQueue might have failed because m_pQueue.isEmpty()
|
|
||||||
// may be false (race).
|
|
||||||
}
|
|
||||||
@@ -211,7 +213,7 @@
|
|
||||||
uno_releaseIdFromCurrentThread();
|
|
||||||
}
|
|
||||||
|
|
||||||
- cppu_threadpool::ThreadPool::getInstance()->waitInPool( this );
|
|
||||||
+ theThreadPool->waitInPool( this );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
--- cppu/source/threadpool/thread.hxx 2008-04-11 11:34:18.000000000 +0100
|
|
||||||
+++ cppu/source/threadpool/thread.hxx 2009-12-02 15:58:34.000000000 +0000
|
|
||||||
@@ -37,6 +37,8 @@
|
|
||||||
namespace cppu_threadpool {
|
|
||||||
|
|
||||||
class JobQueue;
|
|
||||||
+ class ThreadAdmin;
|
|
||||||
+ typedef boost::shared_ptr<ThreadAdmin> ThreadAdminHolder;
|
|
||||||
|
|
||||||
//-----------------------------------------
|
|
||||||
// private thread class for the threadpool
|
|
||||||
@@ -61,6 +63,7 @@
|
|
||||||
|
|
||||||
private:
|
|
||||||
oslThread m_thread;
|
|
||||||
+ ThreadAdminHolder m_aThreadAdmin;
|
|
||||||
JobQueue *m_pQueue;
|
|
||||||
::rtl::ByteSequence m_aThreadId;
|
|
||||||
sal_Bool m_bAsynchron;
|
|
||||||
@@ -71,7 +74,7 @@
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
~ThreadAdmin ();
|
|
||||||
- static ThreadAdmin *getInstance();
|
|
||||||
+ static ThreadAdminHolder &getInstance();
|
|
||||||
void add( ORequestThread * );
|
|
||||||
void remove( ORequestThread * );
|
|
||||||
void join();
|
|
||||||
--- cppu/source/threadpool/threadpool.cxx 2008-04-11 11:34:54.000000000 +0100
|
|
||||||
+++ cppu/source/threadpool/threadpool.cxx 2009-12-03 16:14:56.000000000 +0000
|
|
||||||
@@ -33,6 +33,7 @@
|
|
||||||
#include <osl/diagnose.h>
|
|
||||||
#include <osl/mutex.hxx>
|
|
||||||
#include <osl/thread.h>
|
|
||||||
+#include <rtl/instance.hxx>
|
|
||||||
|
|
||||||
#include <uno/threadpool.h>
|
|
||||||
|
|
||||||
@@ -44,19 +45,17 @@
|
|
||||||
|
|
||||||
namespace cppu_threadpool
|
|
||||||
{
|
|
||||||
- DisposedCallerAdmin *DisposedCallerAdmin::getInstance()
|
|
||||||
+ struct theDisposedCallerAdmin :
|
|
||||||
+ public rtl::StaticWithInit< DisposedCallerAdminHolder, theDisposedCallerAdmin >
|
|
||||||
{
|
|
||||||
- static DisposedCallerAdmin *pDisposedCallerAdmin = 0;
|
|
||||||
- if( ! pDisposedCallerAdmin )
|
|
||||||
- {
|
|
||||||
- MutexGuard guard( Mutex::getGlobalMutex() );
|
|
||||||
- if( ! pDisposedCallerAdmin )
|
|
||||||
- {
|
|
||||||
- static DisposedCallerAdmin admin;
|
|
||||||
- pDisposedCallerAdmin = &admin;
|
|
||||||
- }
|
|
||||||
+ DisposedCallerAdminHolder operator () () {
|
|
||||||
+ return DisposedCallerAdminHolder(new DisposedCallerAdmin());
|
|
||||||
}
|
|
||||||
- return pDisposedCallerAdmin;
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ DisposedCallerAdminHolder DisposedCallerAdmin::getInstance()
|
|
||||||
+ {
|
|
||||||
+ return theDisposedCallerAdmin::get();
|
|
||||||
}
|
|
||||||
|
|
||||||
DisposedCallerAdmin::~DisposedCallerAdmin()
|
|
||||||
@@ -107,6 +106,21 @@
|
|
||||||
|
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------
|
|
||||||
+
|
|
||||||
+ struct theThreadPool :
|
|
||||||
+ public rtl::StaticWithInit< ThreadPoolHolder, theThreadPool >
|
|
||||||
+ {
|
|
||||||
+ ThreadPoolHolder operator () () {
|
|
||||||
+ ThreadPoolHolder aRet(new ThreadPool());
|
|
||||||
+ return aRet;
|
|
||||||
+ }
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ ThreadPool::ThreadPool()
|
|
||||||
+ {
|
|
||||||
+ m_DisposedCallerAdmin = DisposedCallerAdmin::getInstance();
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
ThreadPool::~ThreadPool()
|
|
||||||
{
|
|
||||||
#if OSL_DEBUG_LEVEL > 1
|
|
||||||
@@ -116,19 +130,9 @@
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
- ThreadPool *ThreadPool::getInstance()
|
|
||||||
+ ThreadPoolHolder ThreadPool::getInstance()
|
|
||||||
{
|
|
||||||
- static ThreadPool *pThreadPool = 0;
|
|
||||||
- if( ! pThreadPool )
|
|
||||||
- {
|
|
||||||
- MutexGuard guard( Mutex::getGlobalMutex() );
|
|
||||||
- if( ! pThreadPool )
|
|
||||||
- {
|
|
||||||
- static ThreadPool pool;
|
|
||||||
- pThreadPool = &pool;
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
- return pThreadPool;
|
|
||||||
+ return theThreadPool::get();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@@ -136,7 +140,7 @@
|
|
||||||
{
|
|
||||||
if( nDisposeId )
|
|
||||||
{
|
|
||||||
- DisposedCallerAdmin::getInstance()->dispose( nDisposeId );
|
|
||||||
+ m_DisposedCallerAdmin->dispose( nDisposeId );
|
|
||||||
|
|
||||||
MutexGuard guard( m_mutex );
|
|
||||||
for( ThreadIdHashMap::iterator ii = m_mapQueue.begin() ;
|
|
||||||
@@ -171,7 +175,7 @@
|
|
||||||
|
|
||||||
void ThreadPool::stopDisposing( sal_Int64 nDisposeId )
|
|
||||||
{
|
|
||||||
- DisposedCallerAdmin::getInstance()->stopDisposing( nDisposeId );
|
|
||||||
+ m_DisposedCallerAdmin->stopDisposing( nDisposeId );
|
|
||||||
}
|
|
||||||
|
|
||||||
/******************
|
|
||||||
@@ -400,7 +404,7 @@
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-typedef ::std::hash_set< uno_ThreadPool, uno_ThreadPool_Hash, uno_ThreadPool_Equal > ThreadpoolHashSet;
|
|
||||||
+typedef ::std::hash_map< uno_ThreadPool, ThreadPoolHolder, uno_ThreadPool_Hash, uno_ThreadPool_Equal > ThreadpoolHashSet;
|
|
||||||
|
|
||||||
static ThreadpoolHashSet *g_pThreadpoolHashSet;
|
|
||||||
|
|
||||||
@@ -420,7 +424,7 @@
|
|
||||||
|
|
||||||
// Just ensure that the handle is unique in the process (via heap)
|
|
||||||
uno_ThreadPool h = new struct _uno_ThreadPool;
|
|
||||||
- g_pThreadpoolHashSet->insert( h );
|
|
||||||
+ g_pThreadpoolHashSet->insert( ThreadpoolHashSet::value_type(h, ThreadPool::getInstance()) );
|
|
||||||
return h;
|
|
||||||
}
|
|
||||||
|
|
||||||
--- cppu/source/threadpool/threadpool.hxx 2008-04-11 11:35:13.000000000 +0100
|
|
||||||
+++ cppu/source/threadpool/threadpool.hxx 2009-12-02 16:12:13.000000000 +0000
|
|
||||||
@@ -33,6 +33,8 @@
|
|
||||||
|
|
||||||
#include <rtl/byteseq.hxx>
|
|
||||||
|
|
||||||
+#include <boost/shared_ptr.hpp>
|
|
||||||
+
|
|
||||||
#include "jobqueue.hxx"
|
|
||||||
|
|
||||||
|
|
||||||
@@ -78,13 +80,16 @@
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef ::std::list < struct ::cppu_threadpool::WaitingThread * > WaitingThreadList;
|
|
||||||
+
|
|
||||||
+ class DisposedCallerAdmin;
|
|
||||||
+ typedef boost::shared_ptr<DisposedCallerAdmin> DisposedCallerAdminHolder;
|
|
||||||
|
|
||||||
class DisposedCallerAdmin
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
~DisposedCallerAdmin();
|
|
||||||
|
|
||||||
- static DisposedCallerAdmin *getInstance();
|
|
||||||
+ static DisposedCallerAdminHolder getInstance();
|
|
||||||
|
|
||||||
void dispose( sal_Int64 nDisposeId );
|
|
||||||
void stopDisposing( sal_Int64 nDisposeId );
|
|
||||||
@@ -95,11 +100,15 @@
|
|
||||||
DisposedCallerList m_lst;
|
|
||||||
};
|
|
||||||
|
|
||||||
+ class ThreadPool;
|
|
||||||
+ typedef boost::shared_ptr<ThreadPool> ThreadPoolHolder;
|
|
||||||
+
|
|
||||||
class ThreadPool
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
+ ThreadPool();
|
|
||||||
~ThreadPool();
|
|
||||||
- static ThreadPool *getInstance();
|
|
||||||
+ static ThreadPoolHolder getInstance();
|
|
||||||
|
|
||||||
void dispose( sal_Int64 nDisposeId );
|
|
||||||
void stopDisposing( sal_Int64 nDisposeId );
|
|
||||||
@@ -127,6 +136,8 @@
|
|
||||||
|
|
||||||
::osl::Mutex m_mutexWaitingThreadList;
|
|
||||||
WaitingThreadList m_lstThreads;
|
|
||||||
+
|
|
||||||
+ DisposedCallerAdminHolder m_DisposedCallerAdmin;
|
|
||||||
};
|
|
||||||
|
|
||||||
} // end namespace cppu_threadpool
|
|
||||||
--- cppu/source/uno/lbenv.cxx 2009-02-12 10:18:09.000000000 +0000
|
|
||||||
+++ cppu/source/uno/lbenv.cxx 2009-12-03 16:14:26.000000000 +0000
|
|
||||||
@@ -142,6 +142,7 @@
|
|
||||||
::osl::Mutex mutex;
|
|
||||||
OUString2EnvironmentMap aName2EnvMap;
|
|
||||||
|
|
||||||
+ EnvironmentsData() : isDisposing(false) {}
|
|
||||||
~EnvironmentsData();
|
|
||||||
|
|
||||||
inline void getEnvironment(
|
|
||||||
@@ -150,6 +151,8 @@
|
|
||||||
inline void getRegisteredEnvironments(
|
|
||||||
uno_Environment *** pppEnvs, sal_Int32 * pnLen,
|
|
||||||
uno_memAlloc memAlloc, const OUString & rEnvDcp );
|
|
||||||
+
|
|
||||||
+ bool isDisposing;
|
|
||||||
};
|
|
||||||
|
|
||||||
namespace
|
|
||||||
@@ -598,9 +601,14 @@
|
|
||||||
*ppHardEnv = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ EnvironmentsData & rData = theEnvironmentsData::get();
|
|
||||||
+
|
|
||||||
+ if (rData.isDisposing)
|
|
||||||
+ return;
|
|
||||||
+
|
|
||||||
uno_DefaultEnvironment * that = (uno_DefaultEnvironment *)pEnv;
|
|
||||||
{
|
|
||||||
- ::osl::MutexGuard guard( theEnvironmentsData::get().mutex );
|
|
||||||
+ ::osl::MutexGuard guard( rData.mutex );
|
|
||||||
if (1 == ::osl_incrementInterlockedCount( &that->nRef )) // is dead
|
|
||||||
{
|
|
||||||
that->nRef = 0;
|
|
||||||
@@ -917,6 +925,7 @@
|
|
||||||
EnvironmentsData::~EnvironmentsData()
|
|
||||||
{
|
|
||||||
::osl::MutexGuard guard( mutex );
|
|
||||||
+ isDisposing = true;
|
|
||||||
|
|
||||||
for ( OUString2EnvironmentMap::const_iterator iPos( aName2EnvMap.begin() );
|
|
||||||
iPos != aName2EnvMap.end(); ++iPos )
|
|
||||||
--- cppu/util/target.pmk 2008-04-11 12:07:15.000000000 +0100
|
|
||||||
+++ cppu/util/target.pmk 2009-12-02 15:50:08.000000000 +0000
|
|
||||||
@@ -55,12 +55,3 @@
|
|
||||||
.ENDIF
|
|
||||||
|
|
||||||
.ENDIF
|
|
||||||
-
|
|
||||||
-# other stuff
|
|
||||||
-
|
|
||||||
-.IF "$(cppu_no_leak)" == ""
|
|
||||||
-.IF "$(bndchk)" == ""
|
|
||||||
-CFLAGS += -DCPPU_LEAK_STATIC_DATA
|
|
||||||
-.ENDIF
|
|
||||||
-.ENDIF
|
|
||||||
-
|
|
||||||
--- package/inc/ZipPackageFolder.hxx 2010-06-22 11:49:17.000000000 +0100
|
|
||||||
+++ package/inc/ZipPackageFolder.hxx 2010-06-22 12:50:26.000000000 +0100
|
|
||||||
@@ -53,8 +53,6 @@
|
|
||||||
::com::sun::star::container::XEnumerationAccess
|
|
||||||
>
|
|
||||||
{
|
|
||||||
- static com::sun::star::uno::Sequence < sal_Int8 > aImplementationId;
|
|
||||||
-
|
|
||||||
protected:
|
|
||||||
ContentHash maContents;
|
|
||||||
const ::com::sun::star::uno::Reference < com::sun::star::lang::XMultiServiceFactory > m_xFactory;
|
|
||||||
@@ -82,10 +80,7 @@
|
|
||||||
throw(::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
|
|
||||||
|
|
||||||
static void copyZipEntry( ZipEntry &rDest, const ZipEntry &rSource);
|
|
||||||
- static ::com::sun::star::uno::Sequence < sal_Int8 > static_getImplementationId()
|
|
||||||
- {
|
|
||||||
- return aImplementationId;
|
|
||||||
- }
|
|
||||||
+ static const ::com::sun::star::uno::Sequence < sal_Int8 >& static_getImplementationId();
|
|
||||||
|
|
||||||
void setPackageFormat_Impl( sal_Int32 nFormat ) { m_nFormat = nFormat; }
|
|
||||||
void setRemoveOnInsertMode_Impl( sal_Bool bRemove ) { this->mbAllowRemoveOnInsert = bRemove; }
|
|
||||||
--- package/source/xstor/owriteablestream.cxx 2010-06-22 11:49:15.000000000 +0100
|
|
||||||
+++ package/source/xstor/owriteablestream.cxx 2010-06-22 12:13:20.000000000 +0100
|
|
||||||
@@ -53,6 +53,7 @@
|
|
||||||
|
|
||||||
#include <rtl/digest.h>
|
|
||||||
#include <rtl/logfile.hxx>
|
|
||||||
+#include <rtl/instance.hxx>
|
|
||||||
|
|
||||||
// since the copying uses 32000 blocks usually, it makes sense to have a smaller size
|
|
||||||
#define MAX_STORCACHE_SIZE 30000
|
|
||||||
@@ -2169,25 +2170,14 @@
|
|
||||||
return m_pData->m_pTypeCollection->getTypes() ;
|
|
||||||
}
|
|
||||||
|
|
||||||
+namespace { struct lcl_ImplId : public rtl::Static< ::cppu::OImplementationId, lcl_ImplId > {}; }
|
|
||||||
+
|
|
||||||
//-----------------------------------------------
|
|
||||||
uno::Sequence< sal_Int8 > SAL_CALL OWriteStream::getImplementationId()
|
|
||||||
throw( uno::RuntimeException )
|
|
||||||
{
|
|
||||||
- static ::cppu::OImplementationId* pID = NULL ;
|
|
||||||
-
|
|
||||||
- if ( pID == NULL )
|
|
||||||
- {
|
|
||||||
- ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() ) ;
|
|
||||||
-
|
|
||||||
- if ( pID == NULL )
|
|
||||||
- {
|
|
||||||
- static ::cppu::OImplementationId aID( sal_False ) ;
|
|
||||||
- pID = &aID ;
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- return pID->getImplementationId() ;
|
|
||||||
-
|
|
||||||
+ ::cppu::OImplementationId &rId = lcl_ImplId::get();
|
|
||||||
+ return rId.getImplementationId();
|
|
||||||
}
|
|
||||||
|
|
||||||
//-----------------------------------------------
|
|
||||||
--- package/source/xstor/xstorage.cxx 2010-06-22 11:49:15.000000000 +0100
|
|
||||||
+++ package/source/xstor/xstorage.cxx 2010-06-22 12:11:45.000000000 +0100
|
|
||||||
@@ -48,6 +48,7 @@
|
|
||||||
#include <cppuhelper/typeprovider.hxx>
|
|
||||||
#include <cppuhelper/exc_hlp.hxx>
|
|
||||||
#include <rtl/logfile.hxx>
|
|
||||||
+#include <rtl/instance.hxx>
|
|
||||||
|
|
||||||
#include <comphelper/processfactory.hxx>
|
|
||||||
#include <comphelper/componentcontext.hxx>
|
|
||||||
@@ -2367,25 +2368,14 @@
|
|
||||||
return m_pData->m_pTypeCollection->getTypes() ;
|
|
||||||
}
|
|
||||||
|
|
||||||
+namespace { struct lcl_ImplId : public rtl::Static< ::cppu::OImplementationId, lcl_ImplId > {}; }
|
|
||||||
+
|
|
||||||
//-----------------------------------------------
|
|
||||||
uno::Sequence< sal_Int8 > SAL_CALL OStorage::getImplementationId()
|
|
||||||
throw( uno::RuntimeException )
|
|
||||||
{
|
|
||||||
- static ::cppu::OImplementationId* pID = NULL ;
|
|
||||||
-
|
|
||||||
- if ( pID == NULL )
|
|
||||||
- {
|
|
||||||
- ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() ) ;
|
|
||||||
-
|
|
||||||
- if ( pID == NULL )
|
|
||||||
- {
|
|
||||||
- static ::cppu::OImplementationId aID( sal_False ) ;
|
|
||||||
- pID = &aID ;
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- return pID->getImplementationId() ;
|
|
||||||
-
|
|
||||||
+ ::cppu::OImplementationId &rID = lcl_ImplId::get();
|
|
||||||
+ return rID.getImplementationId();
|
|
||||||
}
|
|
||||||
|
|
||||||
//____________________________________________________________________________________________________
|
|
||||||
--- package/source/zippackage/ZipPackage.cxx 2010-06-22 11:49:16.000000000 +0100
|
|
||||||
+++ package/source/zippackage/ZipPackage.cxx 2010-06-22 12:12:00.000000000 +0100
|
|
||||||
@@ -68,6 +68,7 @@
|
|
||||||
#include <rtl/uri.hxx>
|
|
||||||
#include <rtl/random.h>
|
|
||||||
#include <rtl/logfile.hxx>
|
|
||||||
+#include <rtl/instance.hxx>
|
|
||||||
#include <osl/time.h>
|
|
||||||
#include <osl/file.hxx>
|
|
||||||
#include "com/sun/star/io/XAsyncOutputMonitor.hpp"
|
|
||||||
@@ -1585,21 +1586,14 @@
|
|
||||||
static_getSupportedServiceNames());
|
|
||||||
}
|
|
||||||
|
|
||||||
+namespace { struct lcl_ImplId : public rtl::Static< ::cppu::OImplementationId, lcl_ImplId > {}; }
|
|
||||||
+
|
|
||||||
// XUnoTunnel
|
|
||||||
Sequence< sal_Int8 > ZipPackage::getUnoTunnelImplementationId( void )
|
|
||||||
throw (RuntimeException)
|
|
||||||
{
|
|
||||||
- static ::cppu::OImplementationId * pId = 0;
|
|
||||||
- if (! pId)
|
|
||||||
- {
|
|
||||||
- ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
|
|
||||||
- if (! pId)
|
|
||||||
- {
|
|
||||||
- static ::cppu::OImplementationId aId;
|
|
||||||
- pId = &aId;
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
- return pId->getImplementationId();
|
|
||||||
+ ::cppu::OImplementationId &rId = lcl_ImplId::get();
|
|
||||||
+ return rId.getImplementationId();
|
|
||||||
}
|
|
||||||
|
|
||||||
sal_Int64 SAL_CALL ZipPackage::getSomething( const Sequence< sal_Int8 >& aIdentifier )
|
|
||||||
--- package/source/zippackage/ZipPackageFolder.cxx 2010-06-22 11:49:16.000000000 +0100
|
|
||||||
+++ package/source/zippackage/ZipPackageFolder.cxx 2010-06-22 12:50:00.000000000 +0100
|
|
||||||
@@ -43,6 +43,7 @@
|
|
||||||
#include <com/sun/star/io/XSeekable.hpp>
|
|
||||||
#include <EncryptedDataHeader.hxx>
|
|
||||||
#include <rtl/random.h>
|
|
||||||
+#include <rtl/instance.hxx>
|
|
||||||
#include <memory>
|
|
||||||
|
|
||||||
using namespace com::sun::star::packages::zip::ZipConstants;
|
|
||||||
@@ -59,7 +60,7 @@
|
|
||||||
using namespace ::com::sun::star;
|
|
||||||
using vos::ORef;
|
|
||||||
|
|
||||||
-Sequence < sal_Int8 > ZipPackageFolder::aImplementationId = Sequence < sal_Int8 > ();
|
|
||||||
+namespace { struct lcl_CachedImplId : public rtl::Static< Sequence < sal_Int8 >, lcl_CachedImplId > {}; }
|
|
||||||
|
|
||||||
ZipPackageFolder::ZipPackageFolder ( const Reference< XMultiServiceFactory >& xFactory,
|
|
||||||
sal_Int32 nFormat,
|
|
||||||
@@ -80,10 +81,9 @@
|
|
||||||
aEntry.nCompressedSize = 0;
|
|
||||||
aEntry.nSize = 0;
|
|
||||||
aEntry.nOffset = -1;
|
|
||||||
- if ( !aImplementationId.getLength() )
|
|
||||||
- {
|
|
||||||
- aImplementationId = getImplementationId();
|
|
||||||
- }
|
|
||||||
+ Sequence < sal_Int8 > &rCachedImplId = lcl_CachedImplId::get();
|
|
||||||
+ if ( !rCachedImplId.getLength() )
|
|
||||||
+ rCachedImplId = getImplementationId();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@@ -187,6 +187,11 @@
|
|
||||||
rDest.nExtraLen = rSource.nExtraLen;
|
|
||||||
}
|
|
||||||
|
|
||||||
+const ::com::sun::star::uno::Sequence < sal_Int8 >& ZipPackageFolder::static_getImplementationId()
|
|
||||||
+{
|
|
||||||
+ return lcl_CachedImplId::get();
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
// XNameContainer
|
|
||||||
void SAL_CALL ZipPackageFolder::insertByName( const OUString& aName, const Any& aElement )
|
|
||||||
throw(IllegalArgumentException, ElementExistException, WrappedTargetException, RuntimeException)
|
|
||||||
--- package/source/zippackage/ZipPackageStream.cxx 2010-06-22 11:49:16.000000000 +0100
|
|
||||||
+++ package/source/zippackage/ZipPackageStream.cxx 2010-06-22 12:53:32.000000000 +0100
|
|
||||||
@@ -45,6 +45,8 @@
|
|
||||||
#include <comphelper/seekableinput.hxx>
|
|
||||||
#include <comphelper/storagehelper.hxx>
|
|
||||||
|
|
||||||
+#include <rtl/instance.hxx>
|
|
||||||
+
|
|
||||||
#include <PackageConstants.hxx>
|
|
||||||
|
|
||||||
using namespace com::sun::star::packages::zip::ZipConstants;
|
|
||||||
@@ -55,8 +57,12 @@
|
|
||||||
using namespace cppu;
|
|
||||||
using namespace rtl;
|
|
||||||
|
|
||||||
-Sequence < sal_Int8 > ZipPackageStream::aImplementationId = Sequence < sal_Int8 > ();
|
|
||||||
+namespace { struct lcl_CachedImplId : public rtl::Static< Sequence < sal_Int8 >, lcl_CachedImplId > {}; }
|
|
||||||
|
|
||||||
+const ::com::sun::star::uno::Sequence < sal_Int8 >& ZipPackageStream::static_getImplementationId()
|
|
||||||
+{
|
|
||||||
+ return lcl_CachedImplId::get();
|
|
||||||
+}
|
|
||||||
|
|
||||||
ZipPackageStream::ZipPackageStream ( ZipPackage & rNewPackage,
|
|
||||||
const Reference< XMultiServiceFactory >& xFactory,
|
|
||||||
@@ -91,10 +97,9 @@
|
|
||||||
aEntry.nPathLen = -1;
|
|
||||||
aEntry.nExtraLen = -1;
|
|
||||||
|
|
||||||
- if ( !aImplementationId.getLength() )
|
|
||||||
- {
|
|
||||||
- aImplementationId = getImplementationId();
|
|
||||||
- }
|
|
||||||
+ Sequence < sal_Int8 > &rCachedImplId = lcl_CachedImplId::get();
|
|
||||||
+ if ( !rCachedImplId.getLength() )
|
|
||||||
+ rCachedImplId = getImplementationId();
|
|
||||||
}
|
|
||||||
|
|
||||||
ZipPackageStream::~ZipPackageStream( void )
|
|
||||||
--- package/source/zippackage/ZipPackageStream.hxx 2010-06-22 11:49:16.000000000 +0100
|
|
||||||
+++ package/source/zippackage/ZipPackageStream.hxx 2010-06-22 12:51:18.000000000 +0100
|
|
||||||
@@ -55,7 +55,6 @@
|
|
||||||
::com::sun::star::packages::XDataSinkEncrSupport
|
|
||||||
>
|
|
||||||
{
|
|
||||||
- static com::sun::star::uno::Sequence < sal_Int8 > aImplementationId;
|
|
||||||
protected:
|
|
||||||
com::sun::star::uno::Reference < com::sun::star::io::XInputStream > xStream;
|
|
||||||
const ::com::sun::star::uno::Reference < com::sun::star::lang::XMultiServiceFactory > m_xFactory;
|
|
||||||
@@ -146,10 +145,7 @@
|
|
||||||
::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > SAL_CALL getRawData()
|
|
||||||
throw(::com::sun::star::uno::RuntimeException);
|
|
||||||
|
|
||||||
- static ::com::sun::star::uno::Sequence < sal_Int8 >& static_getImplementationId()
|
|
||||||
- {
|
|
||||||
- return aImplementationId;
|
|
||||||
- }
|
|
||||||
+ static const ::com::sun::star::uno::Sequence < sal_Int8 >& static_getImplementationId();
|
|
||||||
|
|
||||||
// XActiveDataSink
|
|
||||||
virtual void SAL_CALL setInputStream( const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >& aStream )
|
|
Loading…
Reference in new issue