[Libreoffice-commits] core.git: Branch 'libreoffice-6-4' - sw/inc sw/source
GülÅah Köse (via logerrit)
logerrit at kemper.freedesktop.org
Thu Mar 12 07:51:25 UTC 2020
sw/inc/ndgrf.hxx | 3 ++-
sw/source/core/graphic/ndgrf.cxx | 9 +++++++--
2 files changed, 9 insertions(+), 3 deletions(-)
New commits:
commit c5ecde36b8e980cc4a0ca88ccebd95ac3155bdd9
Author: Gülşah Köse <gulsah.kose at collabora.com>
AuthorDate: Fri Mar 6 16:12:59 2020 +0300
Commit: Andras Timar <andras.timar at collabora.com>
CommitDate: Thu Mar 12 08:50:55 2020 +0100
tdf#131185 Prevent unnecessary SwapIn calls.
When the http response is 404 or something like
that we shouldn't retry the download embeded image
constantly. This causes libreoffice to short freezes.
Change-Id: I7381d04f12e9fbea961dd0e3333ea0d39aa93d14
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90102
Tested-by: Jenkins
Reviewed-by: Gülşah Köse <gulsah.kose at collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90045
Reviewed-by: Andras Timar <andras.timar at collabora.com>
diff --git a/sw/inc/ndgrf.hxx b/sw/inc/ndgrf.hxx
index 65716602c16f..5434d301761a 100644
--- a/sw/inc/ndgrf.hxx
+++ b/sw/inc/ndgrf.hxx
@@ -39,7 +39,8 @@ class SW_DLLPUBLIC SwGrfNode: public SwNoTextNode
std::unique_ptr<GraphicObject> mpReplacementGraphic;
tools::SvRef<sfx2::SvBaseLink> refLink; ///< If graphics only as link then pointer is set.
Size nGrfSize;
- bool bInSwapIn :1;
+ bool bInSwapIn :1; // to avoid recursion in SwGrfNode::SwapIn
+ bool bInBaseLinkSwapIn :1; // to avoid recursion in SwBaseLink::SwapIn
bool bChgTwipSize :1;
bool bFrameInPaint :1; ///< To avoid Start-/EndActions in Paint via SwapIn.
diff --git a/sw/source/core/graphic/ndgrf.cxx b/sw/source/core/graphic/ndgrf.cxx
index f52780ae9001..fdfac6b7a693 100644
--- a/sw/source/core/graphic/ndgrf.cxx
+++ b/sw/source/core/graphic/ndgrf.cxx
@@ -68,6 +68,7 @@ SwGrfNode::SwGrfNode(
SwAttrSet const * pAutoAttr ) :
SwNoTextNode( rWhere, SwNodeType::Grf, pGrfColl, pAutoAttr ),
maGrfObj(),
+ bInBaseLinkSwapIn(true),
// #i73788#
mbLinkedInputStreamReady( false ),
mbIsStreamReadOnly( false )
@@ -84,6 +85,7 @@ SwGrfNode::SwGrfNode( const SwNodeIndex & rWhere,
SwAttrSet const * pAutoAttr ) :
SwNoTextNode( rWhere, SwNodeType::Grf, pGrfColl, pAutoAttr ),
maGrfObj(rGrfObj),
+ bInBaseLinkSwapIn(true),
// #i73788#
mbLinkedInputStreamReady( false ),
mbIsStreamReadOnly( false )
@@ -105,6 +107,7 @@ SwGrfNode::SwGrfNode( const SwNodeIndex & rWhere,
SwAttrSet const * pAutoAttr ) :
SwNoTextNode( rWhere, SwNodeType::Grf, pGrfColl, pAutoAttr ),
maGrfObj(),
+ bInBaseLinkSwapIn(true),
// #i73788#
mbLinkedInputStreamReady( false ),
mbIsStreamReadOnly( false )
@@ -449,13 +452,15 @@ bool SwGrfNode::SwapIn(bool bWaitForData)
if( pLink )
{
- if( GraphicType::NONE == maGrfObj.GetType() ||
- GraphicType::Default == maGrfObj.GetType() )
+ if( (GraphicType::NONE == maGrfObj.GetType() ||
+ GraphicType::Default == maGrfObj.GetType()) &&
+ bInBaseLinkSwapIn)
{
// link was not loaded yet
if( pLink->SwapIn( bWaitForData ) )
{
bRet = true;
+ bInBaseLinkSwapIn = false;
}
else if( GraphicType::Default == maGrfObj.GetType() )
{
More information about the Libreoffice-commits
mailing list