[PATCH libreoffice-4-0] rhbz#915743: Avoid potentially blocking autocompletion for n...

Stephan Bergmann (via Code Review) gerrit at gerrit.libreoffice.org
Mon Mar 11 09:20:18 PDT 2013


Hi,

I have submitted a patch for review:

    https://gerrit.libreoffice.org/2669

To pull it, you can do:

    git pull ssh://gerrit.libreoffice.org:29418/core refs/changes/69/2669/1

rhbz#915743: Avoid potentially blocking autocompletion for non file URLs

In theory, the logic of how SvtMatchContext_Impl threads are used to obtain
autocompletion information could probably be improved so that long-latency
scenarios would only block the ultimate closing of the dialog, if anything at
all.  In practice, this is probably not worth it, as users likely do not expect
an autocompletion feature for remote content, anyway.  (And previous commits
like 260afe56fd6b2f34de8290f3cdb7d1df5b88f8a8 "neon commands cannot be aborted"
make it questionable whether any remaining blocking upon closing of the dialog
could be bounded in a reasonable manner.)

Change-Id: Ie82b9a70285b30fe88cf4c40992710087e86815e
(cherry picked from commit c6dfb3825cad9c8f6f87f4afc8fdbc386919e640)
---
M svtools/source/control/inettbc.cxx
1 file changed, 8 insertions(+), 1 deletion(-)



diff --git a/svtools/source/control/inettbc.cxx b/svtools/source/control/inettbc.cxx
index 6c0ce2a..706a8f7 100644
--- a/svtools/source/control/inettbc.cxx
+++ b/svtools/source/control/inettbc.cxx
@@ -584,7 +584,14 @@
             {
                 INetURLObject aURLObject( aMatch );
                 String aMainURL( aURLObject.GetMainURL( INetURLObject::NO_DECODE ) );
-                if ( aMainURL.Len() )
+                // Disable autocompletion for anything but the (local) file
+                // system (for which access is hopefully fast), as the logic of
+                // how SvtMatchContext_Impl is used requires this code to run to
+                // completion before further user input is processed, and even
+                // SvtMatchContext_Impl::Stop does not guarantee a speedy
+                // return:
+                if ( aMainURL.Len()
+                     && aURLObject.GetProtocol() == INET_PROT_FILE )
                 {
                     // if text input is a directory, it must be part of the match list! Until then it is scanned
                     if ( UCBContentHelper::IsFolder( aMainURL ) && aURLObject.hasFinalSlash() )

-- 
To view, visit https://gerrit.libreoffice.org/2669
To unsubscribe, visit https://gerrit.libreoffice.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie82b9a70285b30fe88cf4c40992710087e86815e
Gerrit-PatchSet: 1
Gerrit-Project: core
Gerrit-Branch: libreoffice-4-0
Gerrit-Owner: Stephan Bergmann <sbergman at redhat.com>



More information about the LibreOffice mailing list