diff options
author | Caolán McNamara <caolanm@redhat.com> | 2023-04-09 19:30:56 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2023-04-10 10:40:01 +0200 |
commit | ffdee63185d910f9c239ddf1686f72589eee0973 (patch) | |
tree | d1be3dd50cf127fdcaa55f2954c53bf5212daed0 | |
parent | 60bce1af8aab2115d603781193bb659b35d1aedb (diff) |
ofz#57800 Timeout
Change-Id: I14b4906ce61b3d8a86cb9a766986c49e0b0e6abc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150171
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r-- | lotuswordpro/qa/cppunit/data/pass/ofz57800-1.lwp | bin | 0 -> 56867 bytes | |||
-rw-r--r-- | lotuswordpro/source/filter/lwplayout.cxx | 7 |
2 files changed, 3 insertions, 4 deletions
diff --git a/lotuswordpro/qa/cppunit/data/pass/ofz57800-1.lwp b/lotuswordpro/qa/cppunit/data/pass/ofz57800-1.lwp Binary files differnew file mode 100644 index 000000000000..3d9b4299f8e1 --- /dev/null +++ b/lotuswordpro/qa/cppunit/data/pass/ofz57800-1.lwp diff --git a/lotuswordpro/source/filter/lwplayout.cxx b/lotuswordpro/source/filter/lwplayout.cxx index 4de86299e369..895137e282f2 100644 --- a/lotuswordpro/source/filter/lwplayout.cxx +++ b/lotuswordpro/source/filter/lwplayout.cxx @@ -370,7 +370,7 @@ bool LwpVirtualLayout::IsStyleLayout() LwpVirtualLayout* LwpVirtualLayout::FindChildByType(LWP_LAYOUT_TYPE eType) { LwpObjectID* pID = &GetChildHead(); - LwpVirtualLayout* pPrevLayout = nullptr; + o3tl::sorted_vector<LwpVirtualLayout*> aSeen; while (pID && !pID->IsNull()) { @@ -378,14 +378,13 @@ LwpVirtualLayout* LwpVirtualLayout::FindChildByType(LWP_LAYOUT_TYPE eType) if (!pLayout) break; - if (pPrevLayout && pLayout == pPrevLayout) + bool bAlreadySeen = !aSeen.insert(pLayout).second; + if (bAlreadySeen) { SAL_WARN("lwp", "loop in layout"); break; } - pPrevLayout = pLayout; - if (pLayout->GetLayoutType() == eType) return pLayout; |