parent
0fbb140a21
commit
c747fd8bdb
@ -1,78 +0,0 @@
|
|||||||
From cbeca0676595037d29c7191c38c643d47d9d6e4a Mon Sep 17 00:00:00 2001
|
|
||||||
From: Stephan Bergmann <sbergman@redhat.com>
|
|
||||||
Date: Fri, 14 Jun 2013 11:22:51 +0200
|
|
||||||
Subject: [PATCH] Always try to mount in gio::Content::getGFileInfo
|
|
||||||
|
|
||||||
...and not only if the caller happens to pass in non-null ppError. Otherwise,
|
|
||||||
calling soffice with a document URL handled by the gio UCP that is not yet
|
|
||||||
gio-mounted would silently do nothing and exit with EXIT_SUCCESS, as the first
|
|
||||||
thing the type detection code does on the URL is execute "getPropertyValues" for
|
|
||||||
"IsDocument", which calls getGFileInfo with null ppError, so a void instead of a
|
|
||||||
boolean value is returned, which then derails the type detection code to
|
|
||||||
silently fail (which is another problem that needs fixing).
|
|
||||||
|
|
||||||
Change-Id: I48a84428cdee5caead02909abc2efd3ae3722052
|
|
||||||
(cherry picked from commit 4d8bf09305fc4e4bd652187aac0a02398413ba65)
|
|
||||||
---
|
|
||||||
ucb/source/ucp/gio/gio_content.cxx | 42 +++++++++++++++++++++++---------------
|
|
||||||
1 file changed, 26 insertions(+), 16 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/ucb/source/ucp/gio/gio_content.cxx b/ucb/source/ucp/gio/gio_content.cxx
|
|
||||||
index 34857d2..4fe7e83 100644
|
|
||||||
--- a/ucb/source/ucp/gio/gio_content.cxx
|
|
||||||
+++ b/ucb/source/ucp/gio/gio_content.cxx
|
|
||||||
@@ -337,25 +337,35 @@ MountOperation::~MountOperation()
|
|
||||||
|
|
||||||
GFileInfo* Content::getGFileInfo(const uno::Reference< ucb::XCommandEnvironment >& xEnv, GError **ppError)
|
|
||||||
{
|
|
||||||
- /*If we don't have it already, and we're not a "pre-creation" content then query for the info"*/
|
|
||||||
- if (!mpInfo && !mbTransient)
|
|
||||||
- {
|
|
||||||
- if (!(mpInfo = g_file_query_info(getGFile(), "*", G_FILE_QUERY_INFO_NONE, NULL, ppError)))
|
|
||||||
- {
|
|
||||||
- //Try and mount if unmounted
|
|
||||||
- if (ppError && (*ppError)->code == G_IO_ERROR_NOT_MOUNTED)
|
|
||||||
- {
|
|
||||||
- g_error_free(*ppError);
|
|
||||||
-
|
|
||||||
- MountOperation aMounter(xEnv);
|
|
||||||
- *ppError = aMounter.Mount(getGFile());
|
|
||||||
-
|
|
||||||
- //No Mount error, reattempt query
|
|
||||||
- if (!*ppError)
|
|
||||||
- mpInfo = g_file_query_info(getGFile(), "*", G_FILE_QUERY_INFO_NONE, NULL, ppError);
|
|
||||||
+ GError * err = 0;
|
|
||||||
+ if (mpInfo == 0 && !mbTransient) {
|
|
||||||
+ for (bool retried = false;; retried = true) {
|
|
||||||
+ mpInfo = g_file_query_info(
|
|
||||||
+ getGFile(), "*", G_FILE_QUERY_INFO_NONE, 0, &err);
|
|
||||||
+ if (mpInfo != 0) {
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+ assert(err != 0);
|
|
||||||
+ if (err->code != G_IO_ERROR_NOT_MOUNTED || retried) {
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+ SAL_INFO(
|
|
||||||
+ "ucb.ucp.gio",
|
|
||||||
+ "G_IO_ERROR_NOT_MOUNTED \"" << err->message
|
|
||||||
+ << "\", trying to mount");
|
|
||||||
+ g_error_free(err);
|
|
||||||
+ err = MountOperation(xEnv).Mount(getGFile());
|
|
||||||
+ if (err != 0) {
|
|
||||||
+ break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+ if (ppError != 0) {
|
|
||||||
+ *ppError = err;
|
|
||||||
+ } else if (err != 0) {
|
|
||||||
+ SAL_WARN("ucb.ucp.gio", "ignoring GError \"" << err->message << "\"");
|
|
||||||
+ g_error_free(err);
|
|
||||||
+ }
|
|
||||||
return mpInfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
--
|
|
||||||
1.8.1.4
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
|||||||
From 4a4ed52e57b540167c3ca45e6e762b9e21e874de Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
|
|
||||||
Date: Tue, 3 Sep 2013 12:24:34 +0100
|
|
||||||
Subject: [PATCH] Resolves: rhbz#993963 NULL m_pWindow on firefox deleted
|
|
||||||
plugin
|
|
||||||
|
|
||||||
Change-Id: Idb12b12e4313668bf3390a97551c688ee0dcde67
|
|
||||||
---
|
|
||||||
vcl/unx/gtk/window/gtksalframe.cxx | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/vcl/unx/gtk/window/gtksalframe.cxx b/vcl/unx/gtk/window/gtksalframe.cxx
|
|
||||||
index 7c4ddfb..44d894d 100644
|
|
||||||
--- a/vcl/unx/gtk/window/gtksalframe.cxx
|
|
||||||
+++ b/vcl/unx/gtk/window/gtksalframe.cxx
|
|
||||||
@@ -2842,7 +2842,7 @@ void GtkSalFrame::SetParent( SalFrame* pNewParent )
|
|
||||||
|
|
||||||
void GtkSalFrame::createNewWindow( XLIB_Window aNewParent, bool bXEmbed, SalX11Screen nXScreen )
|
|
||||||
{
|
|
||||||
- bool bWasVisible = IS_WIDGET_MAPPED(m_pWindow);
|
|
||||||
+ bool bWasVisible = m_pWindow ? IS_WIDGET_MAPPED(m_pWindow) : false;
|
|
||||||
if( bWasVisible )
|
|
||||||
Show( sal_False );
|
|
||||||
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
@ -1,51 +0,0 @@
|
|||||||
From c3164e42dcdf879ed53e235db13f498eb730bae9 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
|
|
||||||
Date: Tue, 20 Aug 2013 20:08:47 +0100
|
|
||||||
Subject: [PATCH] Resolves: rhbz#998046 store last size/position of the
|
|
||||||
table/query/form
|
|
||||||
|
|
||||||
Change-Id: I3623d5e133b8d7b2e7920824b05c46ade7b10d7c
|
|
||||||
---
|
|
||||||
dbaccess/source/core/dataaccess/documentdefinition.cxx | 1 +
|
|
||||||
dbaccess/source/ui/misc/databaseobjectview.cxx | 6 +++++-
|
|
||||||
2 files changed, 6 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/dbaccess/source/core/dataaccess/documentdefinition.cxx b/dbaccess/source/core/dataaccess/documentdefinition.cxx
|
|
||||||
index 1e9b62c..55b7c4e 100644
|
|
||||||
--- a/dbaccess/source/core/dataaccess/documentdefinition.cxx
|
|
||||||
+++ b/dbaccess/source/core/dataaccess/documentdefinition.cxx
|
|
||||||
@@ -1548,6 +1548,7 @@ Sequence< PropertyValue > ODocumentDefinition::fillLoadArgs( const Reference< XC
|
|
||||||
// create the OutplaceFrameProperties, and put them into the descriptor of the embedded object
|
|
||||||
::comphelper::NamedValueCollection OutplaceFrameProperties;
|
|
||||||
OutplaceFrameProperties.put( "TopWindow", (sal_Bool)sal_True );
|
|
||||||
+ OutplaceFrameProperties.put( "SupportPersistentWindowState", (sal_Bool)sal_True );
|
|
||||||
|
|
||||||
Reference< XFrame > xParentFrame;
|
|
||||||
if ( m_pImpl->m_pDataSource )
|
|
||||||
diff --git a/dbaccess/source/ui/misc/databaseobjectview.cxx b/dbaccess/source/ui/misc/databaseobjectview.cxx
|
|
||||||
index 7c90c33..d0ac14e 100644
|
|
||||||
--- a/dbaccess/source/ui/misc/databaseobjectview.cxx
|
|
||||||
+++ b/dbaccess/source/ui/misc/databaseobjectview.cxx
|
|
||||||
@@ -120,7 +120,7 @@ namespace dbaui
|
|
||||||
if ( !m_xFrameLoader.is() )
|
|
||||||
{
|
|
||||||
Reference< XSingleServiceFactory > xFact = TaskCreator::create(m_xORB);
|
|
||||||
- Sequence< Any > lArgs(2);
|
|
||||||
+ Sequence< Any > lArgs(3);
|
|
||||||
NamedValue aProp;
|
|
||||||
sal_Int32 nArg = 0;
|
|
||||||
|
|
||||||
@@ -132,6 +132,10 @@ namespace dbaui
|
|
||||||
aProp.Value <<= sal_True;
|
|
||||||
lArgs[nArg++] <<= aProp;
|
|
||||||
|
|
||||||
+ aProp.Name = OUString("SupportPersistentWindowState");
|
|
||||||
+ aProp.Value <<= sal_True;
|
|
||||||
+ lArgs[nArg++] <<= aProp;
|
|
||||||
+
|
|
||||||
m_xFrameLoader.set(xFact->createInstanceWithArguments(lArgs), UNO_QUERY_THROW);
|
|
||||||
|
|
||||||
// everything we load can be considered a "top level document", so set the respective bit at the window.
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
@ -1,51 +0,0 @@
|
|||||||
From b74bf4146e866fbcd41ad075296c9a4eee16c829 Mon Sep 17 00:00:00 2001
|
|
||||||
From: David Tardon <dtardon@redhat.com>
|
|
||||||
Date: Mon, 12 Aug 2013 09:39:59 +0200
|
|
||||||
Subject: [PATCH] only use the SSPI support with internal neon
|
|
||||||
|
|
||||||
neon 0.30.0 has added support for SSPI (author of the commit is kso,
|
|
||||||
which sounds familiar :-), so NE_FEATURE_SSPI is defined, but the
|
|
||||||
signature of ne_auth_creds remains the same as before. That means that
|
|
||||||
build with system neon 0.30.0 fails...
|
|
||||||
---
|
|
||||||
RepositoryExternal.mk | 1 +
|
|
||||||
ucb/source/ucp/webdav-neon/NeonSession.cxx | 4 ++--
|
|
||||||
2 files changed, 3 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk
|
|
||||||
index f866957..8c19c27 100644
|
|
||||||
--- a/RepositoryExternal.mk
|
|
||||||
+++ b/RepositoryExternal.mk
|
|
||||||
@@ -867,6 +867,7 @@ ifeq ($(SYSTEM_NEON),YES)
|
|
||||||
define gb_LinkTarget__use_neon
|
|
||||||
$(call gb_LinkTarget_add_defs,$(1),\
|
|
||||||
-DNEON_VERSION=0x$(NEON_VERSION) \
|
|
||||||
+ -DSYSTEM_NEON \
|
|
||||||
)
|
|
||||||
$(call gb_LinkTarget_set_include,$(1),\
|
|
||||||
$$(INCLUDE) \
|
|
||||||
diff --git a/ucb/source/ucp/webdav-neon/NeonSession.cxx b/ucb/source/ucp/webdav-neon/NeonSession.cxx
|
|
||||||
index 34a1937..cee643a 100644
|
|
||||||
--- a/ucb/source/ucp/webdav-neon/NeonSession.cxx
|
|
||||||
+++ b/ucb/source/ucp/webdav-neon/NeonSession.cxx
|
|
||||||
@@ -228,7 +228,7 @@ extern "C" int NeonSession_ResponseBlockWriter( void * inUserData,
|
|
||||||
}
|
|
||||||
|
|
||||||
extern "C" int NeonSession_NeonAuth( void * inUserData,
|
|
||||||
-#ifdef NE_FEATURE_SSPI
|
|
||||||
+#if defined NE_FEATURE_SSPI && ! defined SYSTEM_NEON
|
|
||||||
const char * inAuthProtocol,
|
|
||||||
#endif
|
|
||||||
const char * inRealm,
|
|
||||||
@@ -297,7 +297,7 @@ extern "C" int NeonSession_NeonAuth( void * inUserData,
|
|
||||||
|
|
||||||
bool bCanUseSystemCreds = false;
|
|
||||||
|
|
||||||
-#ifdef NE_FEATURE_SSPI
|
|
||||||
+#if defined NE_FEATURE_SSPI && ! defined SYSTEM_NEON
|
|
||||||
bCanUseSystemCreds
|
|
||||||
= (attempt == 0) && // avoid endless loops
|
|
||||||
ne_has_support( NE_FEATURE_SSPI ) && // Windows-only feature.
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
@ -1,116 +0,0 @@
|
|||||||
From 9ff4c35f1d8e7e603b23245afb6947b8260fabfc Mon Sep 17 00:00:00 2001
|
|
||||||
From: Stephan Bergmann <sbergman@redhat.com>
|
|
||||||
Date: Fri, 23 Aug 2013 12:03:45 +0200
|
|
||||||
Subject: [PATCH] rhbz#1000150: Do not call exit upon XIOError
|
|
||||||
|
|
||||||
...as done in _XIOError (libX11-1.6.0/src/XlibInt.c) after calling the XIOError
|
|
||||||
handler function (either the one supplied with XSetIOErrorHandler or
|
|
||||||
_XDefaultIOError), as that calls the atexit handlers, which can wreak havoc in
|
|
||||||
unrelated threads that happen to be running in parallel, leading to arbitrary
|
|
||||||
crashes. So avoid that by always calling _exit already from our XIOError
|
|
||||||
handler.
|
|
||||||
|
|
||||||
The old code was careful to /not/ call _exit when the XIOError happened on any
|
|
||||||
thread but the main one, but I do not see the sense of that---after all,
|
|
||||||
_XIOError will inevitably call exit afterwards, so this cannot be a way to
|
|
||||||
"ignore" XIOErrors from special threads (that are set up say for the sole
|
|
||||||
purpose of trying out "known-shaky" activities without affecting the stability
|
|
||||||
of the whole process). And findings like comment 12 to
|
|
||||||
<https://bugzilla.redhat.com/show_bug.cgi?id=831628#c12> "[abrt]
|
|
||||||
libreoffice-core-3.5.4.2-1.fc17: ICEConnectionWorker thread still running during
|
|
||||||
exit" ("it is very likely that this is not a normal exit from reaching the end
|
|
||||||
of main, but rather some explicit call to exit from some error handling code")
|
|
||||||
make it clear that we apparenly do suffer from such calls to _XIOError -> exit
|
|
||||||
on non-main threads.
|
|
||||||
|
|
||||||
I have no idea why vcl/unx/gtk has its own XIOErrorHdl that is substantially
|
|
||||||
different from the vcl/unx/generic one, though.
|
|
||||||
|
|
||||||
cherry picked from commit ffea65915b9cc6d4f3c01f829552702654a040f9, plus
|
|
||||||
follow-up b240a1c188b58e3e717335339bfc3f5e20bb2bf4:
|
|
||||||
|
|
||||||
rhbz#1000150: Do not call exit upon XIOError, take two
|
|
||||||
|
|
||||||
The _XDefaultIOError handler (libX11-1.6.0/src/XlibInt.c) already calls exit
|
|
||||||
(even though _XIOError calling _XDefaultIOError would call exit afterwards,
|
|
||||||
too), so our XIOError handler must not call aOrigXIOErrorHandler.
|
|
||||||
|
|
||||||
Change-Id: Ida7d407cf5f0fa4e719118cab5e725144ceb3a35
|
|
||||||
---
|
|
||||||
vcl/unx/generic/app/saldata.cxx | 25 +++++++++++--------------
|
|
||||||
vcl/unx/gtk/app/gtkdata.cxx | 12 +++++-------
|
|
||||||
2 files changed, 16 insertions(+), 21 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/vcl/unx/generic/app/saldata.cxx b/vcl/unx/generic/app/saldata.cxx
|
|
||||||
index 3d91586..9b5e200 100644
|
|
||||||
--- a/vcl/unx/generic/app/saldata.cxx
|
|
||||||
+++ b/vcl/unx/generic/app/saldata.cxx
|
|
||||||
@@ -307,22 +307,19 @@ int X11SalData::XErrorHdl( Display *pDisplay, XErrorEvent *pEvent )
|
|
||||||
|
|
||||||
int X11SalData::XIOErrorHdl( Display * )
|
|
||||||
{
|
|
||||||
- if (::osl::Thread::getCurrentIdentifier() != Application::GetMainThreadIdentifier())
|
|
||||||
+ if (::osl::Thread::getCurrentIdentifier() == Application::GetMainThreadIdentifier())
|
|
||||||
{
|
|
||||||
- pthread_exit(NULL);
|
|
||||||
- return 0;
|
|
||||||
+ /* #106197# hack: until a real shutdown procedure exists
|
|
||||||
+ * _exit ASAP
|
|
||||||
+ */
|
|
||||||
+ if( ImplGetSVData()->maAppData.mbAppQuit )
|
|
||||||
+ _exit(1);
|
|
||||||
+
|
|
||||||
+ // really bad hack
|
|
||||||
+ if( ! SessionManagerClient::checkDocumentsSaved() )
|
|
||||||
+ /* oslSignalAction eToDo = */ osl_raiseSignal (OSL_SIGNAL_USER_X11SUBSYSTEMERROR, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
- /* #106197# hack: until a real shutdown procedure exists
|
|
||||||
- * _exit ASAP
|
|
||||||
- */
|
|
||||||
- if( ImplGetSVData()->maAppData.mbAppQuit )
|
|
||||||
- _exit(1);
|
|
||||||
-
|
|
||||||
- // really bad hack
|
|
||||||
- if( ! SessionManagerClient::checkDocumentsSaved() )
|
|
||||||
- /* oslSignalAction eToDo = */ osl_raiseSignal (OSL_SIGNAL_USER_X11SUBSYSTEMERROR, NULL);
|
|
||||||
-
|
|
||||||
std::fprintf( stderr, "X IO Error\n" );
|
|
||||||
std::fflush( stdout );
|
|
||||||
std::fflush( stderr );
|
|
||||||
@@ -331,7 +328,7 @@ int X11SalData::XIOErrorHdl( Display * )
|
|
||||||
* do apply here. Since there is nothing to be done after an XIO
|
|
||||||
* error we have to _exit immediately.
|
|
||||||
*/
|
|
||||||
- _exit(0);
|
|
||||||
+ _exit(1);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
diff --git a/vcl/unx/gtk/app/gtkdata.cxx b/vcl/unx/gtk/app/gtkdata.cxx
|
|
||||||
index 6abb06b..23f7931 100644
|
|
||||||
--- a/vcl/unx/gtk/app/gtkdata.cxx
|
|
||||||
+++ b/vcl/unx/gtk/app/gtkdata.cxx
|
|
||||||
@@ -511,14 +511,12 @@ GtkData::GtkData( SalInstance *pInstance )
|
|
||||||
|
|
||||||
XIOErrorHandler aOrigXIOErrorHandler = NULL;
|
|
||||||
|
|
||||||
-int XIOErrorHdl(Display *pDisplay)
|
|
||||||
+int XIOErrorHdl(Display *)
|
|
||||||
{
|
|
||||||
- if (::osl::Thread::getCurrentIdentifier() != Application::GetMainThreadIdentifier())
|
|
||||||
- {
|
|
||||||
- pthread_exit(NULL);
|
|
||||||
- return 0;
|
|
||||||
- }
|
|
||||||
- return aOrigXIOErrorHandler ? aOrigXIOErrorHandler(pDisplay) : 0;
|
|
||||||
+ fprintf(stderr, "X IO Error\n");
|
|
||||||
+ _exit(1);
|
|
||||||
+ // avoid crashes in unrelated threads that still run while atexit
|
|
||||||
+ // handlers are in progress
|
|
||||||
}
|
|
||||||
|
|
||||||
GtkData::~GtkData()
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
Loading…
Reference in new issue