[Libreoffice-commits] core.git: dtrans/source

Urs Fässler urs at bitzgi.ch
Thu Feb 14 10:57:25 PST 2013


 dtrans/source/win32/clipb/WinClipbImpl.cxx |   19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)

New commits:
commit 1e95602e5d566468ed075b1813e21ba08039b2db
Author: Urs Fässler <urs at bitzgi.ch>
Date:   Thu Feb 14 16:36:06 2013 +0100

    Translation of german comment
    
    Change-Id: I2876e33ccfd5dd7b33747d77a4cdaaa03bd01de9

diff --git a/dtrans/source/win32/clipb/WinClipbImpl.cxx b/dtrans/source/win32/clipb/WinClipbImpl.cxx
index 167e889..76e4c64 100644
--- a/dtrans/source/win32/clipb/WinClipbImpl.cxx
+++ b/dtrans/source/win32/clipb/WinClipbImpl.cxx
@@ -180,16 +180,15 @@ sal_Int8 SAL_CALL CWinClipbImpl::getRenderingCapabilities(  ) throw( RuntimeExce
 
 void SAL_CALL CWinClipbImpl::flushClipboard( ) throw( RuntimeException )
 {
-    // sollte eigentlich hier stehen: ClearableMutexGuard aGuard( m_ClipContentMutex );
-    // geht aber nicht, da FlushClipboard zurückruft und das DataObject
-    // freigibt und damit würde es einen Deadlock in onReleaseDataObject geben
-    // FlushClipboard muß synchron sein, damit das runterfahren ggf. erst weitergeht,
-    // wenn alle Clipboard-Formate gerendert wurden
-    // die Abfrage ist nötig, damit nur geflusht wird, wenn wir wirklich Clipboardowner
-    // sind (ich weiss nicht genau was passiert, wenn man flusht und nicht Clipboard
-    // owner ist).
-    // eventuell kann man aber die Abfrage in den Clipboard STA Thread verlagern, indem
-    // man sich dort das DataObject merkt und vor dem flushen OleIsCurrentClipboard ruft
+    // actually it should be ClearableMutexGuard aGuard( m_ClipContentMutex );
+    // but it does not work since FlushClipboard does a callback and frees DataObject
+    // which results in a deadlock in onReleaseDataObject.
+    // FlushClipboard had to be synchron in order to prevent shutdown until all
+    // clipboard-formats are redered.
+    // The request is needed to prevent flushing if we are not clipboard owner (it is
+    // not known what happens if we flush but aren't clipoard owner).
+    // It may be possible to move the request to the clipboard STA thread by saving the
+    // DataObject and call OleIsCurrentClipboard bevore flushing.
 
     if ( NULL != m_pCurrentClipContent )
         m_MtaOleClipboard.flushClipboard( );


More information about the Libreoffice-commits mailing list