core.git: vcl/skia

2024-01-01 Thread Mike Kaganski (via logerrit)
 vcl/skia/gdiimpl.cxx |   20 ++--
 1 file changed, 14 insertions(+), 6 deletions(-)

New commits:
commit 14e49062012f8699125422cc8a82a22b26f43143
Author: Mike Kaganski 
AuthorDate: Mon Jan 1 17:47:11 2024 +0600
Commit: Mike Kaganski 
CommitDate: Tue Jan 2 05:56:39 2024 +0100

tdf#158945: blind fix (try to decrease pending operations limit)

*If* the crash in the bug was caused by OOM in Vulkan, then *maybe*
it was exactly the case mentioned in the comment above:

> queueing many tiny bitmaps ... may make [Skia] even run out of memory

Let's try to reduce the threshold dynamically, from 1000 down, in the
hope that this would avoid the OOM in the specific HW. If it doesn't,
it will eventually still abort().

Change-Id: If6151d4f273a5f938030121d13c268bc9906fa23
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161516
Tested-by: Jenkins
Reviewed-by: Mike Kaganski 

diff --git a/vcl/skia/gdiimpl.cxx b/vcl/skia/gdiimpl.cxx
index e03fa32c3532..bc29920f1626 100644
--- a/vcl/skia/gdiimpl.cxx
+++ b/vcl/skia/gdiimpl.cxx
@@ -462,7 +462,8 @@ void SkiaSalGraphicsImpl::postDraw()
 // a problematic operation has been performed too many times without a 
flush.
 // Note that the counter is a static variable, as all drawing shares the 
same Skia drawing
 // context (and so the flush here will also flush all drawing).
-if (pendingOperationsToFlush > 1000)
+static int maxOperationsToFlush = 1000;
+if (pendingOperationsToFlush > maxOperationsToFlush)
 {
 mSurface->flushAndSubmit();
 pendingOperationsToFlush = 0;
@@ -471,13 +472,20 @@ void SkiaSalGraphicsImpl::postDraw()
 // If there's a problem with the GPU context, abort.
 if (GrDirectContext* context = 
GrAsDirectContext(mSurface->getCanvas()->recordingContext()))
 {
-// Running out of memory on the GPU technically could be possibly 
recoverable,
-// but we don't know the exact status of the surface (and what has or 
has not been drawn to it),
-// so in practice this is unrecoverable without possible data loss.
+// We don't know the exact status of the surface (and what has or has 
not been drawn to it).
+// But let's pretend it was drawn OK, and reduce the flush limit, to 
try to avoid possible
+// small HW memory limitation
 if (context->oomed())
 {
-SAL_WARN("vcl.skia", "GPU context has run out of memory, 
aborting.");
-abort();
+if (maxOperationsToFlush > 10)
+{
+maxOperationsToFlush /= 2;
+}
+else
+{
+SAL_WARN("vcl.skia", "GPU context has run out of memory, 
aborting.");
+abort();
+}
 }
 // Unrecoverable problem.
 if (context->abandoned())


core.git: editeng/inc editeng/source

2024-01-01 Thread Tomaž Vajngerl (via logerrit)
 editeng/inc/ParagraphPortionList.hxx |   14 +-
 editeng/source/editeng/impedit3.cxx  |3 +--
 2 files changed, 14 insertions(+), 3 deletions(-)

New commits:
commit e7e7449729fe2b750506b4b165c4be993834fd16
Author: Tomaž Vajngerl 
AuthorDate: Mon Jan 1 14:34:04 2024 +0900
Commit: Tomaž Vajngerl 
CommitDate: Tue Jan 2 04:12:51 2024 +0100

editeng: add begin, end, MarkAllSelectionsInvalid to ParaPortionList

begin, end to make iteration work with range for

Change-Id: Ia64d4f8102485b257e190fc702e4aa734a81d866
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161530
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl 

diff --git a/editeng/inc/ParagraphPortionList.hxx 
b/editeng/inc/ParagraphPortionList.hxx
index 23654adc5e43..aa7862afa8d7 100644
--- a/editeng/inc/ParagraphPortionList.hxx
+++ b/editeng/inc/ParagraphPortionList.hxx
@@ -28,7 +28,8 @@ class EditDoc;
 class ParaPortionList
 {
 mutable sal_Int32 nLastCache = 0;
-std::vector> maPortions;
+typedef std::vector> ParaPortionContainerType;
+ParaPortionContainerType maPortions;
 
 public:
 ParaPortionList() = default;
@@ -50,6 +51,17 @@ public:
 void Append(std::unique_ptr p);
 sal_Int32 Count() const;
 
+ParaPortionContainerType::iterator begin() { return maPortions.begin(); }
+ParaPortionContainerType::iterator end() { return maPortions.end(); }
+ParaPortionContainerType::const_iterator cbegin() const { return 
maPortions.cbegin(); }
+ParaPortionContainerType::const_iterator cend() const { return 
maPortions.cend(); }
+
+void MarkAllSelectionsInvalid(sal_Int32 nStart)
+{
+for (auto& pParaPortion : maPortions)
+pParaPortion->MarkSelectionInvalid(nStart);
+}
+
 #if OSL_DEBUG_LEVEL > 0 && !defined NDEBUG
 // temporary:
 static void DbgCheck(ParaPortionList const&, EditDoc const& rDoc);
diff --git a/editeng/source/editeng/impedit3.cxx 
b/editeng/source/editeng/impedit3.cxx
index a4e0a54aaa0d..d50c2eb1338e 100644
--- a/editeng/source/editeng/impedit3.cxx
+++ b/editeng/source/editeng/impedit3.cxx
@@ -393,8 +393,7 @@ bool ImpEditEngine::IsPageOverflow( ) const
 
 void ImpEditEngine::FormatFullDoc()
 {
-for ( sal_Int32 nPortion = 0; nPortion < GetParaPortions().Count(); 
nPortion++ )
-GetParaPortions()[nPortion]->MarkSelectionInvalid( 0 );
+GetParaPortions().MarkAllSelectionsInvalid(0);
 FormatDoc();
 }
 


core.git: editeng/source

2024-01-01 Thread Tomaž Vajngerl (via logerrit)
 editeng/source/editeng/editeng.cxx  |   84 +++
 editeng/source/editeng/impedit.hxx  |  153 +--
 editeng/source/editeng/impedit2.cxx |  182 
 editeng/source/editeng/impedit3.cxx |  114 ++--
 editeng/source/editeng/impedit4.cxx |  199 +---
 editeng/source/editeng/impedit5.cxx |   20 +--
 6 files changed, 374 insertions(+), 378 deletions(-)

New commits:
commit de385412949e2ca52c999546677744ed070d189c
Author: Tomaž Vajngerl 
AuthorDate: Mon Jan 1 14:31:13 2024 +0900
Commit: Tomaž Vajngerl 
CommitDate: Tue Jan 2 04:12:32 2024 +0100

editeng: prefix members of ImpEditEngine

Change-Id: I05a738be8956ebaa2912c6c8a20a05002d67b789
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161529
Tested-by: Tomaž Vajngerl 
Reviewed-by: Tomaž Vajngerl 

diff --git a/editeng/source/editeng/editeng.cxx 
b/editeng/source/editeng/editeng.cxx
index c5db1b5ca9ab..7af59f499e12 100644
--- a/editeng/source/editeng/editeng.cxx
+++ b/editeng/source/editeng/editeng.cxx
@@ -393,7 +393,7 @@ void EditEngine::SetPaperSize( const Size& rNewSize )
 if ( !(bAutoPageSize || ( aNewSize.Width() != aOldSize.Width() )) )
 return;
 
-for (EditView* pView : pImpEditEngine->aEditViews)
+for (EditView* pView : pImpEditEngine->maEditViews)
 {
 if ( bAutoPageSize )
 pView->pImpEditView->RecalcOutputArea();
@@ -414,7 +414,7 @@ void EditEngine::SetPaperSize( const Size& rNewSize )
 pImpEditEngine->UpdateViews( pImpEditEngine->GetActiveView() );
 
 if ( pImpEditEngine->IsUpdateLayout() && 
pImpEditEngine->GetActiveView() )
-pImpEditEngine->pActiveView->ShowCursor( false, false );
+pImpEditEngine->mpActiveView->ShowCursor( false, false );
 }
 }
 
@@ -685,7 +685,7 @@ void EditEngine::CheckIdleFormatter()
 
 bool EditEngine::IsIdleFormatterActive() const
 {
-return pImpEditEngine->aIdleFormatter.IsActive();
+return pImpEditEngine->maIdleFormatter.IsActive();
 }
 
 ParaPortion* EditEngine::FindParaPortion(ContentNode const * pNode)
@@ -725,7 +725,7 @@ bool EditEngine::IsCallParaInsertedOrDeleted() const
 
 void EditEngine::AppendDeletedNodeInfo(DeletedNodeInfo* pInfo)
 {
-
pImpEditEngine->aDeletedNodes.push_back(std::unique_ptr(pInfo));
+
pImpEditEngine->maDeletedNodes.push_back(std::unique_ptr(pInfo));
 }
 
 void EditEngine::UpdateSelections()
@@ -969,12 +969,12 @@ EditPaM EditEngine::DeleteSelected(const EditSelection& 
rSel)
 
 void EditEngine::HandleBeginPasteOrDrop(PasteOrDropInfos& rInfos)
 {
-pImpEditEngine->aBeginPasteOrDropHdl.Call(rInfos);
+pImpEditEngine->maBeginPasteOrDropHdl.Call(rInfos);
 }
 
 void EditEngine::HandleEndPasteOrDrop(PasteOrDropInfos& rInfos)
 {
-pImpEditEngine->aEndPasteOrDropHdl.Call(rInfos);
+pImpEditEngine->maEndPasteOrDropHdl.Call(rInfos);
 }
 
 bool EditEngine::HasText() const
@@ -984,7 +984,7 @@ bool EditEngine::HasText() const
 
 const EditSelectionEngine& EditEngine::GetSelectionEngine() const
 {
-return pImpEditEngine->aSelEngine;
+return pImpEditEngine->maSelEngine;
 }
 
 void EditEngine::SetInSelectionMode(bool b)
@@ -1049,7 +1049,7 @@ bool EditEngine::PostKeyEvent( const KeyEvent& rKeyEvent, 
EditView* pEditView, v
 sal_Int32 nParas = GetParagraphCount();
 Point aPos;
 Point aViewStart( pEditView->GetOutputArea().TopLeft() );
-tools::Long n20 = 40 * pImpEditEngine->nOnePixelInRef;
+tools::Long n20 = 40 * pImpEditEngine->mnOnePixelInRef;
 for ( sal_Int32 n = 0; n < nParas; n++ )
 {
 tools::Long nH = GetTextHeight( n );
@@ -1316,7 +1316,7 @@ bool EditEngine::PostKeyEvent( const KeyEvent& rKeyEvent, 
EditView* pEditView, v
 // Only at end of word...
 sal_Int32 nIndex = aCurSel.Max().GetIndex();
 if ( ( nIndex >= aCurSel.Max().GetNode()->Len() ) ||
- ( pImpEditEngine->aWordDelimiters.indexOf( 
aCurSel.Max().GetNode()->GetChar( nIndex ) ) != -1 ) )
+ ( pImpEditEngine->maWordDelimiters.indexOf( 
aCurSel.Max().GetNode()->GetChar( nIndex ) ) != -1 ) )
 {
 EditPaM aStart( pImpEditEngine->WordLeft( 
aCurSel.Max() ) );
 OUString aWord = pImpEditEngine->GetSelected( 
EditSelection( aStart, aCurSel.Max() ) );
@@ -1327,18 +1327,18 @@ bool EditEngine::PostKeyEvent( const KeyEvent& 
rKeyEvent, EditView* pEditView, v
 LanguageType eLang = 
pImpEditEngine->GetLanguage( EditPaM( aStart.GetNode(), 
aStart.GetIndex()+1)).nLang;
 LanguageTag aLanguageTag( eLang);
 
-if 
(!pImpEditEngine->xLocaleDataWrapper.isI

core.git: editeng/inc editeng/source

2024-01-01 Thread Tomaž Vajngerl (via logerrit)
 editeng/inc/editdoc.hxx |2 --
 editeng/source/editeng/editdoc.cxx  |   10 --
 editeng/source/editeng/edtspell.cxx |6 +++---
 editeng/source/editeng/impedit.hxx  |8 
 editeng/source/editeng/impedit2.cxx |   10 +-
 5 files changed, 12 insertions(+), 24 deletions(-)

New commits:
commit 92a9fa82f412daa4e5ccb5889076a1267648e0c1
Author: Tomaž Vajngerl 
AuthorDate: Sun Dec 31 19:15:38 2023 +0900
Commit: Tomaž Vajngerl 
CommitDate: Tue Jan 2 04:11:16 2024 +0100

editeng: remove operator[] for EditDoc (use GetObject instead)

Change-Id: Ie41d2baf84d230b9ee280859d390e24b9da70be7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161482
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl 

diff --git a/editeng/inc/editdoc.hxx b/editeng/inc/editdoc.hxx
index 974447bd806c..0c2bcd28fa97 100644
--- a/editeng/inc/editdoc.hxx
+++ b/editeng/inc/editdoc.hxx
@@ -205,8 +205,6 @@ public:
 const ContentNode* GetObject(sal_Int32 nPos) const;
 ContentNode* GetObject(sal_Int32 nPos);
 sal_Int32 Count() const;
-const ContentNode* operator[](sal_Int32 nPos) const;
-ContentNode* operator[](sal_Int32 nPos);
 void Insert(sal_Int32 nPos, std::unique_ptr p);
 /// deletes
 void Remove(sal_Int32 nPos);
diff --git a/editeng/source/editeng/editdoc.cxx 
b/editeng/source/editeng/editdoc.cxx
index 07d61802c773..efc95b944833 100644
--- a/editeng/source/editeng/editdoc.cxx
+++ b/editeng/source/editeng/editdoc.cxx
@@ -933,16 +933,6 @@ ContentNode* EditDoc::GetObject(sal_Int32 nPos)
 return 0 <= nPos && o3tl::make_unsigned(nPos) < maContents.size() ? 
maContents[nPos].get() : nullptr;
 }
 
-const ContentNode* EditDoc::operator[](sal_Int32 nPos) const
-{
-return GetObject(nPos);
-}
-
-ContentNode* EditDoc::operator[](sal_Int32 nPos)
-{
-return GetObject(nPos);
-}
-
 void EditDoc::Insert(sal_Int32 nPos, std::unique_ptr pNode)
 {
 if (nPos < 0 || nPos == SAL_MAX_INT32)
diff --git a/editeng/source/editeng/edtspell.cxx 
b/editeng/source/editeng/edtspell.cxx
index c07361bd196b..36e9f5fd84ae 100644
--- a/editeng/source/editeng/edtspell.cxx
+++ b/editeng/source/editeng/edtspell.cxx
@@ -613,8 +613,8 @@ OUString const* EdtAutoCorrDoc::GetPrevPara(bool const)
 
 bAllowUndoAction = false;   // Not anymore ...
 
-EditDoc& rNodes = mpEditEngine->GetEditDoc();
-sal_Int32 nPos = rNodes.GetPos( pCurNode );
+EditDoc& rEditDoc = mpEditEngine->GetEditDoc();
+sal_Int32 nPos = rEditDoc.GetPos( pCurNode );
 
 // Special case: Bullet => Paragraph start => simply return NULL...
 const SfxBoolItem& rBulletState = mpEditEngine->GetParaAttrib( nPos, 
EE_PARA_BULLETSTATE );
@@ -632,7 +632,7 @@ OUString const* EdtAutoCorrDoc::GetPrevPara(bool const)
 for ( sal_Int32 n = nPos; n; )
 {
 n--;
-ContentNode* pNode = rNodes[n];
+ContentNode* pNode = rEditDoc.GetObject(n);
 if ( pNode->Len() )
 return & pNode->GetString();
 }
diff --git a/editeng/source/editeng/impedit.hxx 
b/editeng/source/editeng/impedit.hxx
index 7269c0e0b614..ef699b0b28ad 100644
--- a/editeng/source/editeng/impedit.hxx
+++ b/editeng/source/editeng/impedit.hxx
@@ -1090,8 +1090,8 @@ public:
 EditPaM CreateEditPaM( const EPaM& rEPaM )
 {
 DBG_ASSERT( rEPaM.nPara < maEditDoc.Count(), "CreateEditPaM: invalid 
paragraph" );
-DBG_ASSERT( maEditDoc[ rEPaM.nPara ]->Len() >= rEPaM.nIndex, 
"CreateEditPaM: invalid Index" );
-return EditPaM( maEditDoc[ rEPaM.nPara], rEPaM.nIndex );
+DBG_ASSERT(maEditDoc.GetObject(rEPaM.nPara)->Len() >= rEPaM.nIndex, 
"CreateEditPaM: invalid Index");
+return EditPaM(maEditDoc.GetObject(rEPaM.nPara), rEPaM.nIndex);
 }
 
 ESelection CreateESel(const EditSelection& rSel) const
@@ -,9 +,9 @@ public:
 DBG_ASSERT( rSel.nStartPara < maEditDoc.Count(), "CreateSel: invalid 
start paragraph" );
 DBG_ASSERT( rSel.nEndPara < maEditDoc.Count(), "CreateSel: invalid end 
paragraph" );
 EditSelection aSel;
-aSel.Min().SetNode( maEditDoc[ rSel.nStartPara ] );
+aSel.Min().SetNode(maEditDoc.GetObject(rSel.nStartPara));
 aSel.Min().SetIndex( rSel.nStartPos );
-aSel.Max().SetNode( maEditDoc[ rSel.nEndPara ] );
+aSel.Max().SetNode(maEditDoc.GetObject(rSel.nEndPara));
 aSel.Max().SetIndex( rSel.nEndPos );
 DBG_ASSERT( !aSel.DbgIsBuggy( maEditDoc ), "CreateSel: incorrect 
selection!" );
 return aSel;
diff --git a/editeng/source/editeng/impedit2.cxx 
b/editeng/source/editeng/impedit2.cxx
index 488873edd266..2b8263cc62cd 100644
--- a/editeng/source/editeng/impedit2.cxx
+++ b/editeng/source/editeng/impedit2.cxx
@@ -236,8 +236,8 @@ void ImpEditEngine::InitDoc(bool bKeepParaAttribs)
 sal_Int32 nParas = maEditDoc.Count();
 for ( sal_Int32 n = bKeepParaAttribs ? 1 : 0; n < nParas; n++ )
 {
-if ( maEditDoc[n]->GetStyleSheet() )
-EndListen

core.git: 2 commits - editeng/inc editeng/qa editeng/source include/editeng

2024-01-01 Thread Tomaž Vajngerl (via logerrit)
 editeng/inc/editdoc.hxx |2 
 editeng/qa/unit/core-test.cxx   |   93 +++-
 editeng/source/editeng/editdoc.cxx  |9 +--
 editeng/source/editeng/editeng.cxx  |4 -
 editeng/source/editeng/editundo.cxx |   45 -
 editeng/source/editeng/editundo.hxx |9 +--
 editeng/source/editeng/impedit.hxx  |2 
 editeng/source/editeng/impedit2.cxx |   31 ++--
 editeng/source/editeng/impedit3.cxx |8 +--
 include/editeng/editeng.hxx |2 
 10 files changed, 149 insertions(+), 56 deletions(-)

New commits:
commit e71934471442a8bbba7e661d3ebe5f708627c5d6
Author: Tomaž Vajngerl 
AuthorDate: Sun Dec 31 11:26:04 2023 +0900
Commit: Tomaž Vajngerl 
CommitDate: Tue Jan 2 01:21:00 2024 +0100

editeng: add max paper size constant

Change-Id: Ib51f5c5bbcf68fd156b02e04e8e99408aa97abf1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161481
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl 

diff --git a/editeng/source/editeng/impedit2.cxx 
b/editeng/source/editeng/impedit2.cxx
index 94f4c6ccfa8f..488873edd266 100644
--- a/editeng/source/editeng/impedit2.cxx
+++ b/editeng/source/editeng/impedit2.cxx
@@ -88,11 +88,13 @@ static sal_uInt16 lcl_CalcExtraSpace( const 
SvxLineSpacingItem& rLSItem )
 return nExtra;
 }
 
+constexpr tools::Long constMaxPaperSize = 0x7FFF;
+
 ImpEditEngine::ImpEditEngine( EditEngine* pEE, SfxItemPool* pItemPool ) :
 pSharedVCL(EditDLL::Get().GetSharedVclResources()),
-maPaperSize( 0x7FFF, 0x7FFF ),
-maMinAutoPaperSize( 0x0, 0x0 ),
-maMaxAutoPaperSize( 0x7FFF, 0x7FFF ),
+maPaperSize(constMaxPaperSize, constMaxPaperSize),
+maMinAutoPaperSize(0, 0),
+maMaxAutoPaperSize(constMaxPaperSize, constMaxPaperSize),
 maEditDoc( pItemPool ),
 pEditEngine(pEE),
 pActiveView(nullptr),
commit 3461a0027cf5c54ae164462d177ea222ccc76f39
Author: Tomaž Vajngerl 
AuthorDate: Sat Dec 30 22:27:42 2023 +0900
Commit: Tomaž Vajngerl 
CommitDate: Tue Jan 2 01:20:53 2024 +0100

editeng: better lifecycle control for ContentNode in EditDoc

Don't use raw pointers, when it is possible to move the unique_ptr
around into another object that is responsible for the object's
ownership.
The ContentNode is either in a vector in the EditDoc class or it
is moved to the EditUndoDelContent class for the undo/redo action.
Those 2 classes are responsible for freeing the ContentNode.

Change-Id: I977d8e418947bb48781f23575d62420260025e57
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161480
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl 

diff --git a/editeng/inc/editdoc.hxx b/editeng/inc/editdoc.hxx
index e9016989e840..974447bd806c 100644
--- a/editeng/inc/editdoc.hxx
+++ b/editeng/inc/editdoc.hxx
@@ -211,7 +211,7 @@ public:
 /// deletes
 void Remove(sal_Int32 nPos);
 /// does not delete
-void Release(sal_Int32 nPos);
+std::unique_ptr Release(sal_Int32 nPos);
 
 static OUString GetSepStr( LineEnd eEnd );
 };
diff --git a/editeng/qa/unit/core-test.cxx b/editeng/qa/unit/core-test.cxx
index b5320f90e448..c17fccf1caef 100644
--- a/editeng/qa/unit/core-test.cxx
+++ b/editeng/qa/unit/core-test.cxx
@@ -113,6 +113,7 @@ public:
 void testTdf148148();
 
 void testSingleLine();
+void testMoveParagraph();
 
 DECL_STATIC_LINK( Test, CalcFieldValueHdl, EditFieldInfo*, void );
 
@@ -139,6 +140,7 @@ public:
 CPPUNIT_TEST(testTdf147196);
 CPPUNIT_TEST(testTdf148148);
 CPPUNIT_TEST(testSingleLine);
+CPPUNIT_TEST(testMoveParagraph);
 CPPUNIT_TEST_SUITE_END();
 
 private:
@@ -555,8 +557,7 @@ IMPL_STATIC_LINK( Test, CalcFieldValueHdl, EditFieldInfo*, 
pInfo, void )
 void Test::testHyperlinkCopyPaste()
 {
 // Create Outliner instance
-Outliner aOutliner(mpItemPool.get(), OutlinerMode
-::TextObject);
+Outliner aOutliner(mpItemPool.get(), OutlinerMode::TextObject);
 aOutliner.SetCalcFieldValueHdl( LINK( nullptr, Test, CalcFieldValueHdl ) );
 
 // Create EditEngine's instance
@@ -1984,6 +1985,94 @@ void Test::testSingleLine()
 CPPUNIT_ASSERT_EQUAL(sal_Int32(1), aEditEngine.GetLineCount(0));
 }
 
+void Test::testMoveParagraph()
+{
+EditEngine aEditEngine(mpItemPool.get());
+aEditEngine.SetPaperSize(Size(5000, 5000));
+aEditEngine.SetText("Paragraph 1
Paragraph 2
Paragraph 3
Paragraph 4
Paragraph 5");
+
+CPPUNIT_ASSERT_EQUAL(true, aEditEngine.IsFormatted());
+
+CPPUNIT_ASSERT_EQUAL(sal_Int32(5), aEditEngine.GetParagraphCount());
+CPPUNIT_ASSERT_EQUAL(OUString("Paragraph 1"), aEditEngine.GetText(0));
+CPPUNIT_ASSERT_EQUAL(OUString("Paragraph 2"), aEditEngine.GetText(1));
+CPPUNIT_ASSERT_EQUAL(OUString("Paragraph 3"), aEditEngine.GetText(2));
+CPPUNIT_ASSERT_EQUAL(OUString("Paragraph 4"), aEditEngine.GetText(3));
+CPPUNIT_ASSERT_EQUAL(OUString("Paragraph 5"), aEditEngine.GetText(4));
+
+aEditEngine.MoveP

core.git: download.lst

2024-01-01 Thread Caolán McNamara (via logerrit)
 download.lst |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

New commits:
commit 78027c68397f26aec9051b82388cd7452ec66e3d
Author: Caolán McNamara 
AuthorDate: Mon Jan 1 17:07:10 2024 +
Commit: Caolán McNamara 
CommitDate: Tue Jan 2 00:36:54 2024 +0100

bump libexttextcat to latest release

Change-Id: I5fdde5668845f5b7c388322135b21adf41bd3d20
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161521
Tested-by: Jenkins
Reviewed-by: Caolán McNamara 

diff --git a/download.lst b/download.lst
index d381fca12ef6..bd17d1368c9e 100644
--- a/download.lst
+++ b/download.lst
@@ -384,8 +384,8 @@ LIBEOT_TARBALL := libeot-0.01.tar.bz2
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-LIBEXTTEXTCAT_SHA256SUM := 
6d77eace20e9ea106c1330e268ede70c9a4a89744ddc25715682754eca3368df
-LIBEXTTEXTCAT_TARBALL := libexttextcat-3.4.6.tar.xz
+LIBEXTTEXTCAT_SHA256SUM := 
df0a59d413a5b202573d8d4f5159e33a8538da4f8e8e60979facc64d6290cebd
+LIBEXTTEXTCAT_TARBALL := libexttextcat-3.4.7.tar.xz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts


core.git: 2 commits - external/cppunit vcl/source

2024-01-01 Thread Caolán McNamara (via logerrit)
 external/cppunit/0001-cid-1546460-COPY_INSTEAD_OF_MOVE.patch.1 |   27 
+-
 vcl/source/gdi/impgraph.cxx|4 -
 vcl/source/gdi/vectorgraphicdata.cxx   |2 
 3 files changed, 28 insertions(+), 5 deletions(-)

New commits:
commit 6bccf8e409a1722ab6920f60478c97241790be87
Author: Caolán McNamara 
AuthorDate: Mon Jan 1 20:49:44 2024 +
Commit: Caolán McNamara 
CommitDate: Tue Jan 2 00:36:32 2024 +0100

cid#1545235 COPY_INSTEAD_OF_MOVE

and

cid#1545514 COPY_INSTEAD_OF_MOVE
cid#1546000 COPY_INSTEAD_OF_MOVE

std::move looks useful there

Change-Id: Ic3967f283ac4c4f5b8b4797889099af5f2dbb117
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161526
Tested-by: Jenkins
Reviewed-by: Caolán McNamara 

diff --git a/vcl/source/gdi/impgraph.cxx b/vcl/source/gdi/impgraph.cxx
index ac36d2c72be4..7150aab6b0e6 100644
--- a/vcl/source/gdi/impgraph.cxx
+++ b/vcl/source/gdi/impgraph.cxx
@@ -1398,7 +1398,7 @@ void ImpGraphic::updateFromLoadedGraphic(const 
ImpGraphic* pGraphic)
 // Only set the size in case the unloaded and loaded unit matches.
 setPrefSize(aPrefSize);
 }
-maGraphicExternalLink = aLink;
+maGraphicExternalLink = std::move(aLink);
 }
 else
 {
@@ -1683,7 +1683,7 @@ bool ImpGraphic::swapInGraphic(SvStream& rStream)
 
 if (!rStream.GetError())
 {
-maVectorGraphicData = aVectorGraphicDataPtr;
+maVectorGraphicData = 
std::move(aVectorGraphicDataPtr);
 bReturn = true;
 }
 }
diff --git a/vcl/source/gdi/vectorgraphicdata.cxx 
b/vcl/source/gdi/vectorgraphicdata.cxx
index 9d94b171a45f..957d15c13a41 100644
--- a/vcl/source/gdi/vectorgraphicdata.cxx
+++ b/vcl/source/gdi/vectorgraphicdata.cxx
@@ -319,7 +319,7 @@ VectorGraphicData::VectorGraphicData(
 
 if (!rIStm.GetError())
 {
-maDataContainer = aData;
+maDataContainer = std::move(aData);
 }
 }
 }
commit 58d7eabbed200daaf8b6e1fcb82687ce70184412
Author: Caolán McNamara 
AuthorDate: Mon Jan 1 20:41:51 2024 +
Commit: Caolán McNamara 
CommitDate: Tue Jan 2 00:36:25 2024 +0100

cid#1545836 COPY_INSTEAD_OF_MOVE

Change-Id: Idb754296175f786c7850253749e3b7f968aa87fc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161525
Tested-by: Jenkins
Reviewed-by: Caolán McNamara 

diff --git a/external/cppunit/0001-cid-1546460-COPY_INSTEAD_OF_MOVE.patch.1 
b/external/cppunit/0001-cid-1546460-COPY_INSTEAD_OF_MOVE.patch.1
index 3f587e16b0a9..640d04ad5684 100644
--- a/external/cppunit/0001-cid-1546460-COPY_INSTEAD_OF_MOVE.patch.1
+++ b/external/cppunit/0001-cid-1546460-COPY_INSTEAD_OF_MOVE.patch.1
@@ -19,7 +19,30 @@ index 3b68d58..7b38a34 100644
 +m_name(std::move(name))
  {
  }
- 
+
+diff --git a/src/cppunit/XmlElement.cpp b/src/cppunit/XmlElement.cpp
+index 585c3da..be02385 100644
+--- a/src/cppunit/XmlElement.cpp
 b/src/cppunit/XmlElement.cpp
+@@ -8,8 +8,8 @@ CPPUNIT_NS_BEGIN
+   
+ XmlElement::XmlElement( std::string elementName,
+ std::string content ) 
+-  : m_name( elementName )
+-  , m_content( content )
++  : m_name(std::move(elementName))
++  , m_content(std::move(content))
+   , m_attributes()
+   , m_elements()
+ {
+@@ -18,7 +18,7 @@ XmlElement::XmlElement( std::string elementName,
+ 
+ XmlElement::XmlElement( std::string elementName,
+ int numericContent )
+-  : m_name( elementName )
++  : m_name(std::move(elementName))
+   , m_content()
+   , m_attributes()
+   , m_elements()
 -- 
 2.43.0
-


core.git: configure.ac

2024-01-01 Thread Rene Engelhard (via logerrit)
 configure.ac |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit a9008aa942c1f98f8b00b2bd2f73edc576713e92
Author: Rene Engelhard 
AuthorDate: Mon Jan 1 18:13:20 2024 +0100
Commit: Thorsten Behrens 
CommitDate: Mon Jan 1 23:28:32 2024 +0100

update LIBO_THIS_YEAR

Change-Id: I023baa2238c6cdbbd54a7e6b0fcdb128510bbd4c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161522
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens 

diff --git a/configure.ac b/configure.ac
index 1c2a9c86cf5e..737ad29d7364 100644
--- a/configure.ac
+++ b/configure.ac
@@ -520,7 +520,7 @@ AC_DEFINE_UNQUOTED(LIBO_VERSION_MICRO,$LIBO_VERSION_MICRO)
 AC_DEFINE_UNQUOTED(LIBO_VERSION_PATCH,$LIBO_VERSION_PATCH)
 
 git_date=`git log -1 --pretty=format:"%cd" --date=format:'%Y' 2>&/dev/null`
-LIBO_THIS_YEAR=${git_date:-2023}
+LIBO_THIS_YEAR=${git_date:-2024}
 AC_DEFINE_UNQUOTED(LIBO_THIS_YEAR,$LIBO_THIS_YEAR)
 
 dnl ===


core.git: Branch 'libreoffice-24-2' - configure.ac

2024-01-01 Thread Rene Engelhard (via logerrit)
 configure.ac |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit a63480d6e5f11bd258431e1cfbb98c594ce4a741
Author: Rene Engelhard 
AuthorDate: Mon Jan 1 18:13:20 2024 +0100
Commit: Thorsten Behrens 
CommitDate: Mon Jan 1 23:28:47 2024 +0100

update LIBO_THIS_YEAR

Change-Id: I023baa2238c6cdbbd54a7e6b0fcdb128510bbd4c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161419
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens 

diff --git a/configure.ac b/configure.ac
index d841c7cc76fa..ef27ed166df5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -520,7 +520,7 @@ AC_DEFINE_UNQUOTED(LIBO_VERSION_MICRO,$LIBO_VERSION_MICRO)
 AC_DEFINE_UNQUOTED(LIBO_VERSION_PATCH,$LIBO_VERSION_PATCH)
 
 git_date=`git log -1 --pretty=format:"%cd" --date=format:'%Y' 2>&/dev/null`
-LIBO_THIS_YEAR=${git_date:-2023}
+LIBO_THIS_YEAR=${git_date:-2024}
 AC_DEFINE_UNQUOTED(LIBO_THIS_YEAR,$LIBO_THIS_YEAR)
 
 dnl ===


core.git: Branch 'libreoffice-7-6' - external/boost filter/CppunitTest_filter_textfilterdetect.mk

2024-01-01 Thread Mike Kaganski (via logerrit)
 external/boost/UnpackedTarball_boost.mk
   |2 
 external/boost/boost.file_iterator.sharing_win.patch   
   |  158 ++
 filter/CppunitTest_filter_textfilterdetect.mk  
   |4 
 
filter/qa/unit/data/hybrid_calc_\320\260\320\261\320\262_\316\261\316\262\316\263.pdf"
|binary
 
filter/qa/unit/data/hybrid_impress_\320\260\320\261\320\262_\316\261\316\262\316\263.pdf"
 |binary
 
filter/qa/unit/data/hybrid_writer_\320\260\320\261\320\262_\316\261\316\262\316\263.pdf"
  |binary
 filter/qa/unit/textfilterdetect.cxx
   |   41 ++
 include/o3tl/char16_t2wchar_t.hxx  
   |1 
 sdext/source/pdfimport/filterdet.cxx   
   |4 
 sdext/source/pdfimport/inc/pdfparse.hxx
   |5 
 sdext/source/pdfimport/pdfparse/pdfparse.cxx   
   |   11 
 sdext/source/pdfimport/test/pdfunzip.cxx   
   |3 
 sdext/source/pdfimport/wrapper/wrapper.cxx 
   |3 
 13 files changed, 216 insertions(+), 16 deletions(-)

New commits:
commit 873c56df149bb463e5267162e43c755ad16779b8
Author: Mike Kaganski 
AuthorDate: Fri Dec 1 16:48:44 2023 +0300
Commit: Thorsten Behrens 
CommitDate: Mon Jan 1 23:28:09 2024 +0100

tdf#158442: fix opening hybrid PDFs on Windows

Commit 046e9545956d8ad1d69345d6b4a4c0a33714d179 (Try to revert to use
of file_iterator from boost on Windows, 2023-10-31) had introduced a
problem that pdfparse::PDFReader::read couldn't create file_iterator
for files already opened with write access: mmap_file_iterator ctor
on Windows used single FILE_SHARE_READ as dwSharedMode parameter for
CreateFileA WinAPI; and that failed, when the file was already opened
using GENERIC_WRITE in dwDesiredAccess - which happens when opening
stream in TypeDetection::impl_detectTypeFlatAndDeep.

Fix this by patching boosts' mmap_file_iterator constructor to use
FILE_SHARE_READ | FILE_SHARE_WRITE, like we do in osl_openFile.

But there was a pre-existing problem of using char-based CreateFileA
API, which disallows opening any files with names not representable
in current Windows codepage. Such hybrid PDF files would still fail
creation of the file_iterator, and open as PDF.

Fix that by further patching boost to have wstring-based constructors
for file_iterator and mmap_file_iterator on Windows, which would call
CreateFileW.

Change-Id: Ib190bc090636159ade390b3dd120957d06d7b89b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160218
Tested-by: Jenkins
Reviewed-by: Mike Kaganski 
Signed-off-by: Xisco Fauli 
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160306
Reviewed-by: Thorsten Behrens 

diff --git a/external/boost/UnpackedTarball_boost.mk 
b/external/boost/UnpackedTarball_boost.mk
index acdc5d331c76..d8bd131ac8df 100644
--- a/external/boost/UnpackedTarball_boost.mk
+++ b/external/boost/UnpackedTarball_boost.mk
@@ -35,6 +35,8 @@ boost_patches += boost-ios.patch.0
 # violations":
 boost_patches += 
0001-Avoid-boost-phoenix-placeholders-uarg1.10-ODR-violat.patch.2
 
+boost_patches += boost.file_iterator.sharing_win.patch
+
 $(eval $(call gb_UnpackedTarball_UnpackedTarball,boost))
 
 $(eval $(call gb_UnpackedTarball_set_tarball,boost,$(BOOST_TARBALL)))
diff --git a/external/boost/boost.file_iterator.sharing_win.patch 
b/external/boost/boost.file_iterator.sharing_win.patch
new file mode 100644
index ..b3b8bea3f3ff
--- /dev/null
+++ b/external/boost/boost.file_iterator.sharing_win.patch
@@ -0,0 +1,158 @@
+--- 
foo/misc/boost/boost/spirit/home/classic/iterator/impl/file_iterator.ipp.orig
 foo/misc/boost/boost/spirit/home/classic/iterator/impl/file_iterator.ipp
+@@ -181,67 +181,28 @@ public:
+ {}
+ 
+ explicit mmap_file_iterator(std::string const& fileName)
+-  : m_filesize(0), m_curChar(0)
+-{
+-HANDLE hFile = ::CreateFileA(
++  : mmap_file_iterator(::CreateFileA(
+ fileName.c_str(),
+ GENERIC_READ,
+-FILE_SHARE_READ,
++FILE_SHARE_READ | FILE_SHARE_WRITE,
+ NULL,
+ OPEN_EXISTING,
+ FILE_FLAG_SEQUENTIAL_SCAN,
+ NULL
+-);
+-
+-if (hFile == INVALID_HANDLE_VALUE)
+-return;
+-
+-// Store the size of the file, it's used to construct
+-//  the end iterator
+-m_filesize = ::GetFileSize(hFile, NULL);
++))
++{}
+ 
+-HANDLE hMap = ::CreateFileMapping(
+-hFile,
++explicit mmap_file_iterator(std::wstring const& fileName)
++  : mmap_file_iterat

cppunit.git: src/cppunit

2024-01-01 Thread Libreoffice Gerrit user
 src/cppunit/XmlElement.cpp |6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

New commits:
commit bdf2555703132b0d9c9734f173a3f6dbe60aadb9
Author: Caolán McNamara 
AuthorDate: Mon Jan 1 20:37:48 2024 +
Commit: Caolán McNamara 
CommitDate: Mon Jan 1 21:42:58 2024 +0100

cid#1545836 COPY_INSTEAD_OF_MOVE

Change-Id: I7418a44ef949504d6b80408299f23358971521ca
Reviewed-on: https://gerrit.libreoffice.org/c/cppunit/+/161524
Tested-by: Caolán McNamara 
Reviewed-by: Caolán McNamara 

diff --git a/src/cppunit/XmlElement.cpp b/src/cppunit/XmlElement.cpp
index 585c3da..be02385 100644
--- a/src/cppunit/XmlElement.cpp
+++ b/src/cppunit/XmlElement.cpp
@@ -8,8 +8,8 @@ CPPUNIT_NS_BEGIN
   
 XmlElement::XmlElement( std::string elementName,
 std::string content ) 
-  : m_name( elementName )
-  , m_content( content )
+  : m_name(std::move(elementName))
+  , m_content(std::move(content))
   , m_attributes()
   , m_elements()
 {
@@ -18,7 +18,7 @@ XmlElement::XmlElement( std::string elementName,
 
 XmlElement::XmlElement( std::string elementName,
 int numericContent )
-  : m_name( elementName )
+  : m_name(std::move(elementName))
   , m_content()
   , m_attributes()
   , m_elements()


core.git: dbaccess/source

2024-01-01 Thread Julien Nabet (via logerrit)
 dbaccess/source/ui/app/AppController.cxx|6 --
 dbaccess/source/ui/app/AppControllerDnD.cxx |3 ++-
 dbaccess/source/ui/app/AppControllerGen.cxx |9 ++---
 3 files changed, 8 insertions(+), 10 deletions(-)

New commits:
commit 13a40e9c8e1d505565bd4742cf72bb33b99f
Author: Julien Nabet 
AuthorDate: Mon Jan 1 19:05:44 2024 +0100
Commit: Julien Nabet 
CommitDate: Mon Jan 1 20:02:36 2024 +0100

Remove OApplicationController::getStrippedDatabaseName which only adds a 
layer

Change-Id: Ife0435f52b1abe62337623aa5c6010195802760b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161523
Tested-by: Jenkins
Reviewed-by: Julien Nabet 

diff --git a/dbaccess/source/ui/app/AppController.cxx 
b/dbaccess/source/ui/app/AppController.cxx
index 9d548a138139..fbe2c395633f 100644
--- a/dbaccess/source/ui/app/AppController.cxx
+++ b/dbaccess/source/ui/app/AppController.cxx
@@ -362,11 +362,12 @@ void SAL_CALL OApplicationController::disposing()
 if ( pFilter )
 aFilter = pFilter->GetFilterName();
 
+OUString sDatabaseName;
 // add to svtool history options
 SvtHistoryOptions::AppendItem( EHistoryType::PickList,
 aURL.GetURLNoPass( 
INetURLObject::DecodeMechanism::NONE ),
 aFilter,
-getStrippedDatabaseName(),
+::dbaui::getStrippedDatabaseName(m_xDataSource, 
sDatabaseName),
 std::nullopt, std::nullopt);
 
 // add to recent document list
@@ -504,7 +505,8 @@ sal_Bool SAL_CALL OApplicationController::suspend(sal_Bool 
bSuspend)
 )
 )
 {
-switch (ExecuteQuerySaveDocument(getFrameWeld(), 
getStrippedDatabaseName()))
+OUString sDatabaseName;
+switch (ExecuteQuerySaveDocument(getFrameWeld(), 
::dbaui::getStrippedDatabaseName(m_xDataSource, sDatabaseName)))
 {
 case RET_YES:
 Execute(ID_BROWSER_SAVEDOC,Sequence());
diff --git a/dbaccess/source/ui/app/AppControllerDnD.cxx 
b/dbaccess/source/ui/app/AppControllerDnD.cxx
index 76525cf8f8bd..11ee8a621381 100644
--- a/dbaccess/source/ui/app/AppControllerDnD.cxx
+++ b/dbaccess/source/ui/app/AppControllerDnD.cxx
@@ -314,7 +314,8 @@ const SharedConnection& 
OApplicationController::ensureConnection( ::dbtools::SQL
 SolarMutexGuard aSolarGuard;
 
 OUString sConnectingContext(DBA_RES(STR_COULDNOTCONNECT_DATASOURCE));
-sConnectingContext = sConnectingContext.replaceFirst("$name$", 
getStrippedDatabaseName());
+OUString sDatabaseName;
+sConnectingContext = sConnectingContext.replaceFirst("$name$", 
::dbaui::getStrippedDatabaseName(m_xDataSource, sDatabaseName));
 
 // do the connection *without* holding getMutex() to avoid deadlock
 // when we are not in the main thread and we need username/password
diff --git a/dbaccess/source/ui/app/AppControllerGen.cxx 
b/dbaccess/source/ui/app/AppControllerGen.cxx
index 8712f6386879..0f6eda11de7b 100644
--- a/dbaccess/source/ui/app/AppControllerGen.cxx
+++ b/dbaccess/source/ui/app/AppControllerGen.cxx
@@ -321,7 +321,8 @@ void SAL_CALL OApplicationController::connect(  )
 
 // no particular error, but nonetheless could not connect -> throw a 
generic exception
 OUString sConnectingContext( DBA_RES( STR_COULDNOTCONNECT_DATASOURCE ) 
);
-::dbtools::throwGenericSQLException( sConnectingContext.replaceFirst( 
"$name$", getStrippedDatabaseName() ), *this );
+OUString sDatabaseName;
+::dbtools::throwGenericSQLException( sConnectingContext.replaceFirst( 
"$name$", ::dbaui::getStrippedDatabaseName(m_xDataSource, sDatabaseName) ), 
*this );
 }
 }
 
@@ -550,12 +551,6 @@ OUString OApplicationController::getDatabaseName() const
 return sDatabaseName;
 }
 
-OUString OApplicationController::getStrippedDatabaseName() const
-{
-OUString sDatabaseName;
-return ::dbaui::getStrippedDatabaseName( m_xDataSource, sDatabaseName );
-}
-
 void OApplicationController::onDocumentOpened( const OUString& _rName, const 
sal_Int32 _nType,
 const ElementOpenMode _eMode, const Reference< XComponent >& 
_xDocument, const Reference< XComponent >& _rxDefinition )
 {


core.git: sd/source

2024-01-01 Thread Balazs Varga (via logerrit)
 sd/source/core/drawdoc3.cxx |   64 +++-
 1 file changed, 46 insertions(+), 18 deletions(-)

New commits:
commit 167659bf16a68c27fa547e6eccd62c1a6f69b057
Author: Balazs Varga 
AuthorDate: Fri Dec 29 12:01:10 2023 +0100
Commit: Balazs Varga 
CommitDate: Mon Jan 1 19:11:39 2024 +0100

tdf#157742 tdf#157783 - sd: fix copy master slides style

Copy SlideLayout property and themes from the old slide to
the new one.

Change-Id: I7310200c731839a606981c6d63c8d0d4f9ec0536
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161401
Tested-by: Jenkins
Reviewed-by: Balazs Varga 

diff --git a/sd/source/core/drawdoc3.cxx b/sd/source/core/drawdoc3.cxx
index 5062630edb88..5310789d2988 100644
--- a/sd/source/core/drawdoc3.cxx
+++ b/sd/source/core/drawdoc3.cxx
@@ -67,11 +67,11 @@ namespace {
 class InsertBookmarkAsPage_FindDuplicateLayouts
 {
 public:
-explicit InsertBookmarkAsPage_FindDuplicateLayouts( std::map &rLayoutsToTransfer )
+explicit InsertBookmarkAsPage_FindDuplicateLayouts( std::vector 
&rLayoutsToTransfer )
 : mrLayoutsToTransfer(rLayoutsToTransfer) {}
 void operator()( SdDrawDocument&, SdPage const *, bool, SdDrawDocument* );
 private:
-std::map &mrLayoutsToTransfer;
+std::vector &mrLayoutsToTransfer;
 };
 
 }
@@ -85,11 +85,11 @@ void InsertBookmarkAsPage_FindDuplicateLayouts::operator()( 
SdDrawDocument& rDoc
 if( nIndex != -1 )
 aLayout = aLayout.copy(0, nIndex);
 
-std::map::const_iterator pIter = 
mrLayoutsToTransfer.find(aLayout);
+std::vector::const_iterator pIter =
+find(mrLayoutsToTransfer.begin(), mrLayoutsToTransfer.end(), aLayout);
 
 bool bFound = pIter != mrLayoutsToTransfer.end();
 
-sal_Int32 nLayout = 20; // blank page - master slide layout ID
 const sal_uInt16 nMPageCount = rDoc.GetMasterPageCount();
 for (sal_uInt16 nMPage = 0; nMPage < nMPageCount && !bFound; nMPage++)
 {
@@ -110,15 +110,6 @@ void 
InsertBookmarkAsPage_FindDuplicateLayouts::operator()( SdDrawDocument& rDoc
 pBMMPage->GetLayoutName(), pBMMPage->GetName() + "_");
 aLayout = pBMMPage->GetName();
 
-uno::Reference< drawing::XDrawPage > 
xOldPage(rDoc.GetMasterPage(nMPage)->getUnoPage(), uno::UNO_QUERY_THROW);
-uno::Reference xPropSet(xOldPage, 
uno::UNO_QUERY_THROW);
-if (xPropSet.is())
-{
-uno::Any aLayoutID = 
xPropSet->getPropertyValue("SlideLayout");
-if (aLayoutID.hasValue()) {
-aLayoutID >>= nLayout;
-}
-}
 break;
 }
 else
@@ -127,7 +118,7 @@ void InsertBookmarkAsPage_FindDuplicateLayouts::operator()( 
SdDrawDocument& rDoc
 }
 
 if (!bFound)
-mrLayoutsToTransfer.insert({ aLayout, nLayout });
+mrLayoutsToTransfer.push_back(aLayout);
 }
 
 // Inserts a bookmark as a page
@@ -508,7 +499,7 @@ bool SdDrawDocument::InsertBookmarkAsPage(
 
 // Refactored copy'n'pasted layout name collection into 
IterateBookmarkPages
 
-std::map aLayoutsToTransfer;
+std::vector aLayoutsToTransfer;
 InsertBookmarkAsPage_FindDuplicateLayouts aSearchFunctor( 
aLayoutsToTransfer );
 lcl_IterateBookmarkPages( *this, pBookmarkDoc, rBookmarkList, 
nBMSdPageCount, aSearchFunctor, ( rBookmarkList.empty() && pBookmarkDoc != this 
) );
 
@@ -520,11 +511,14 @@ bool SdDrawDocument::InsertBookmarkAsPage(
 if( !aLayoutsToTransfer.empty() )
 bMergeMasterPages = true;
 
-for ( const auto& layout : aLayoutsToTransfer )
+std::map aSlideLayoutsToTransfer;
+std::map> aThemesToTransfer;
+
+for ( const OUString& layoutName : aLayoutsToTransfer )
 {
 StyleSheetCopyResultVector aCreatedStyles;
 
-rStyleSheetPool.CopyLayoutSheets(layout.first, 
rBookmarkStyleSheetPool, aCreatedStyles);
+rStyleSheetPool.CopyLayoutSheets(layoutName, rBookmarkStyleSheetPool, 
aCreatedStyles);
 
 if(!aCreatedStyles.empty())
 {
@@ -533,6 +527,29 @@ bool SdDrawDocument::InsertBookmarkAsPage(
 
pUndoMgr->AddUndoAction(std::make_unique(this, 
aCreatedStyles, true));
 }
 }
+
+// copy SlideLayout and Theme of the master slide
+sal_Int32 nLayout = 20; // blank page - master slide layout ID
+bool bIsMasterPage = false;
+sal_uInt16 nBMPage = pBookmarkDoc->GetPageByName(layoutName, 
bIsMasterPage);
+if (bIsMasterPage)
+{
+uno::Reference< drawing::XDrawPage > 
xOldPage(pBookmarkDoc->GetMasterPage(nBMPage)->getUnoPage(), 
uno::UNO_QUERY_THROW);
+SdrPage* pMasterPage = SdPage::getImplementation(xOldPage);
+if (pMasterPage)
+{
+aThemesToTransfer.insert({ layoutName, 
pMasterPage->getSdrPageProperties().getTheme() });
+uno::Reference xProp

libexttextcat.git: Changes to 'refs/tags/v3.4.7'

2024-01-01 Thread Libreoffice Gerrit user
Tag 'v3.4.7' created by Caolán McNamara  at 
2024-01-01 17:04 +

3.4.7
Changes since v3.4.6-2:
---
 0 files changed
---


libexttextcat.git: configure.ac src/exttextcat-version.h src/win32_config.h

2024-01-01 Thread Libreoffice Gerrit user
 configure.ac |2 +-
 src/exttextcat-version.h |4 ++--
 src/win32_config.h   |4 ++--
 3 files changed, 5 insertions(+), 5 deletions(-)

New commits:
commit 3b85d7e9fd34990f5be6a7e321c2e6b135064464
Author: Caolán McNamara 
AuthorDate: Mon Jan 1 16:16:14 2024 +
Commit: Caolán McNamara 
CommitDate: Mon Jan 1 18:03:06 2024 +0100

bump release to 3.4.7

Change-Id: I90254fe8fec2ce80b0e3b30e0f5bab7447ec08e4
Reviewed-on: https://gerrit.libreoffice.org/c/libexttextcat/+/161520
Tested-by: Caolán McNamara 
Reviewed-by: Caolán McNamara 

diff --git a/configure.ac b/configure.ac
index 1f0b918..2dfa903 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,6 +1,6 @@
 m4_define([exttextcat_version_major],[3])
 m4_define([exttextcat_version_minor],[4])
-m4_define([exttextcat_version_micro],[6])
+m4_define([exttextcat_version_micro],[7])
 
m4_define([exttextcat_version],[exttextcat_version_major.exttextcat_version_minor.exttextcat_version_micro])
 
 AC_PREREQ([2.68])
diff --git a/src/exttextcat-version.h b/src/exttextcat-version.h
index 86c4abf..ea55485 100644
--- a/src/exttextcat-version.h
+++ b/src/exttextcat-version.h
@@ -1,9 +1,9 @@
 #ifndef EXTTEXTCAT_VERSION_H
 #define EXTTEXTCAT_VERSION_H
 
-#define EXTTEXTCAT_VERSION "3.4.6"
+#define EXTTEXTCAT_VERSION "3.4.7"
 #define EXTTEXTCAT_VERSION_MAJOR 3
 #define EXTTEXTCAT_VERSION_MINOR 4
-#define EXTTEXTCAT_VERSION_MICRO 6
+#define EXTTEXTCAT_VERSION_MICRO 7
 
 #endif
diff --git a/src/win32_config.h b/src/win32_config.h
index 5025f4a..46d8b89 100644
--- a/src/win32_config.h
+++ b/src/win32_config.h
@@ -57,7 +57,7 @@
 #define PACKAGE_NAME "libexttextcat"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "libexttextcat 3.4.6"
+#define PACKAGE_STRING "libexttextcat 3.4.7"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "libexttextcat"
@@ -72,6 +72,6 @@
 #define TIME_WITH_SYS_TIME 1
 
 /* Version number of package */
-#define VERSION "3.4.6"
+#define VERSION "3.4.7"
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */


libexttextcat.git: 2 commits - langclass/fpdb.conf langclass/LM langclass/ShortTexts src/Makefile.am

2024-01-01 Thread Libreoffice Gerrit user
 langclass/LM/ilo.lm  |  400 +++
 langclass/LM/skr.lm  |  400 +++
 langclass/ShortTexts/ilo.txt |  210 ++
 langclass/ShortTexts/skr.txt |  219 +++
 langclass/fpdb.conf  |2 
 src/Makefile.am  |4 
 6 files changed, 1233 insertions(+), 2 deletions(-)

New commits:
commit 58f5a03b867e7debb56915cdf2e68bfc8448ff76
Author: Caolán McNamara 
AuthorDate: Mon Jan 1 16:56:46 2024 +
Commit: Caolán McNamara 
CommitDate: Mon Jan 1 18:02:55 2024 +0100

add Ilocano

Change-Id: I19cd769d3cc6dfff63cce165e5ab5e9f0bb9659f
Reviewed-on: https://gerrit.libreoffice.org/c/libexttextcat/+/161519
Tested-by: Caolán McNamara 
Reviewed-by: Caolán McNamara 

diff --git a/langclass/LM/ilo.lm b/langclass/LM/ilo.lm
new file mode 100644
index 000..86fde9b
--- /dev/null
+++ b/langclass/LM/ilo.lm
@@ -0,0 +1,400 @@
+a
+_
+n
+i
+g
+t
+a_
+an
+k
+e
+ti
+i_
+ng
+d
+n_
+ti_
+m
+l
+ga
+s
+p
+o
+y
+_k
+na
+it
+u
+_n
+pa
+_a
+ag
+iti
+iti_
+en
+nga
+ka
+da
+b
+an_
+ma
+_ng
+ga_
+_nga
+r
+nga_
+_nga_
+_i
+_p
+_t
+in
+al
+_m
+w
+_pa
+sa
+_iti
+_it
+_iti_
+ke
+en_
+gi
+ay
+ad
+li
+_ke
+_ka
+o_
+ya
+ana
+_ma
+_a_
+_ti
+_ti_
+pan
+ken
+ken_
+wa
+_ken
+ba
+agi
+_ken_
+_pan
+ak
+ang
+ta
+aya
+as
+nn
+te
+pana
+_pana
+nt
+gan
+ai
+int
+ali
+lin
+git
+agit
+_d
+eg
+g_
+dag
+aw
+._
+.
+teg
+dagi
+dagit
+no
+ab
+lint
+giti_
+agiti
+_s
+giti
+ik
+inte
+nte
+linte
+nteg
+integ
+at
+am
+aa
+alin
+man
+,
+ey
+,_
+A
+on
+ar
+kal
+ega
+_na
+ada
+l_
+alint
+ntega
+tega
+ap
+da_
+way
+tegan
+egan
+waya
+dd
+t_
+kali
+il
+awa
+kalin
+un
+si
+ul
+nag
+gan_
+_da
+sa_
+_kal
+_kali
+ra
+la
+me
+ysa
+ysa_
+ys
+_A
+no_
+ng_
+gg
+al_
+aba
+na_
+_w
+ki
+mi
+add
+eysa_
+eys
+eysa
+ia
+nna
+ku
+-
+dda
+anag
+_me
+_b
+ngg
+adda
+ann
+_dag
+_dagi
+mey
+lo
+meys
+_sa
+meysa
+to
+_mey
+y_
+_meys
+panag
+gal
+ulo
+egan_
+_ba
+anna
+man_
+gga
+bi
+yan
+pag
+ngga
+um
+ung
+kad
+tu
+nak
+iku
+kul
+we
+gal_
+wen
+nan
+nggal
+ggal_
+tik
+aan
+_kad
+enn
+aka
+kada
+ungg
+away
+ggal
+ungga
+_kada
+enno_
+yaw
+nno_
+awaya
+_mai
+mai
+ayaw
+ed
+nno
+wan
+asa
+ni
+ib
+enno
+kulo
+_ad
+_man
+ikulo
+_ta
+_wen
+_wenn
+wenn
+ata
+_adda
+_we
+_add
+rt
+wenno
+ikul
+_Art
+kulo_
+_ag
+Arti
+rtiku
+Artik
+Ar
+lo_
+_Ar
+adag
+rtik
+tiku
+rti
+ip
+Art
+_Arti
+tikul
+ulo_
+adagi
+I
+kadag
+ong
+_pag
+ya_
+apa
+anan
+nna_
+ami
+dda_
+yo
+nang
+kas
+d_
+im
+de
+aki
+ri
+_si
+is
+ina
+id
+gp
+et
+mang
+adda_
+anang
+pu
+wayaw
+ayawa
+gpa
+ae
+wan_
+a._
+ala
+du
+_l
+a.
+_mang
+yaway
+yawa
+anna_
+gs
+aan_
+_tu
+eng
+mak
+panan
+ara
+ili
+ao
+_I
+et_
+ika
+li_
+at_
+tung
+waya_
+tun
+naka
+dad
+aya_
+anak
+ama
+ay_
+ipa
+toy
+tungg
+_tun
+_u
+yon
+sy
+_tung
+di
+s_
+gann
+oy
+ig
+ganna
+ge
+aen
+_nai
+nai
+T
+eng_
+us
+panak
+-a
+sin
+ani
+lya
+_mak
+ilya
+ly
+tao
+bab
+ur
+aik
+r_
+ket
+om
+ily
+gr
+oma
+mo
+toy_
+n-
+_bab
+lu
+yan_
+oy_
+_ki
diff --git a/langclass/ShortTexts/ilo.txt b/langclass/ShortTexts/ilo.txt
new file mode 100644
index 000..08bd414
--- /dev/null
+++ b/langclass/ShortTexts/ilo.txt
@@ -0,0 +1,210 @@
+NAILUBONGAN A PANAKAIPAKDAAR DAGITI KALINTEGAN TI TAO
+  Idinto ta bigbigen iti naisigsigud a dayaw ken panagpapada ken ti di 
maipaidam nga kalintegan dagiti amin a puli tao nga batayan ti wayawaya, 
hustisya ken ikakapya ti lubong.
+  Idinto ta iti saan nga panangi-kan-kano ken lalaisen dagiti kalinteganti 
tao nga nagbanag iti panagsupiat a maibusor iti konsensya ti sangkataw-an, ken 
iti idadateng iti meysa nga lubong a laklak-amen dagiti tao ti wayawaya a 
panagsao ken pammati ken awanen ti panagamak ken panagrigrigat nga inda nga 
inar-arapa-ap nga impakdaar dagiti kadawyan a tao.
+  Idinto ta deytoy ti kangrunaan, tapno saan a mapilitan ti tao nga 
mangriribok a maibusor ti kinaulpit ken pannakaidadanes, masapul nga 
masalakniban babaen kadagiti annuroten ti linteg.
+  Idinto ta deytoy ti kangrunaan tapno maiwanwan ti panag-giginnayem a 
nasayat dagiti amin nga pagilyan.
+  Idinto ta dagiti umili kadagiti Nagkaykaysa nga Pagilyan ket 
pinasingkedanda iti Tsarter dagiti pammatida nga kalintegan madaydayaw ken 
panangipateg iti kinatao ken dagiti panagpapada ti kalintegan dagiti lalaki ken 
babbai ken panangeddeng nga mangiwanwan ti gimong ken ti nasayaat a pagbasaran 
iti panagbiag a siwawaya.
+  Idinto ta dagiti miembro ti Estado nagkarida nga agtungpal iti 
pannakitinnulongda kadagiti Nagkeykeysa nga Pagilyan iti panakaitandudo ti 
panagdayaw iti sangalubongan ken panangammo dagiti kalintegan ti tao ken dagiti 
kangrunaan nga panagwayawaya.
+  Idinto ta iti meysa nga kadawyan a panakaawat dagitoy nga kalintegan ken 
wayawaya ket isu't kinapateg nga naan-anay a pannaka-amiris iti deytoy nga kari.
+  Ita, ngarud inpakdaar ti Asemblia Heneral dagitoy Nailubongana 
Panangipakdaar dagiti kalintegan ti dao nga kas meysa nga pagbasaran a 
magun-odan dagiti 

back port to 7.6.5 for tdf#158442 to open LO hybridPDF in correct module

2024-01-01 Thread V Stuart Foote

Looks like this got forgotten:

https://gerrit.libreoffice.org/c/core/+/160306

--
Stuart


Re: How to force Jenkins to verify if failing probability is too high

2024-01-01 Thread Ilmari Lauhakangas

On 1.1.2024 11.20, Laurent Balland wrote:

Hello,

My change [1] did not pass Jenkins verification due to a failing 
probability of 0.45. I did not find any helpful information in Jenkins 
report [2].


I am almost sure that my change should pass. What should I modify in my 
change? How to tell Jenkins to go ahead?


Thanks for your help.

Laurent Balland


[1] https://gerrit.libreoffice.org/c/core/+/161513

[2] 
https://ci.libreoffice.org/job/gerrit_master_ml/9114/consoleFull#-355731841d24ee341-16ff-442b-9671-37df50e21a67


See the log of the actual builder: 
https://ci.libreoffice.org/job/gerrit_linux_gcc_release/156425/consoleFull


[build CPY] templates/presnt/Yellow_Idea/Thumbnails/thumbnail.png
/usr/bin/cp: cannot stat 
'/home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_gcc_release_64/workdir/CustomTarget/extras/source/templates/wizard/agenda/10grey.ott': 
No such file or directory
make[1]: *** 
[/home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_gcc_release_64/solenv/gbuild/Package.mk:35: 
/home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_gcc_release_64/instdir/share/template/common/wizard/agenda/10grey.ott] 
Error 1

make[1]: *** Waiting for unfinished jobs
/usr/bin/cp: cannot stat 
'/home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_gcc_release_64/workdir/CustomTarget/extras/source/templates/wizard/agenda/1simple.ott': 
No such file or directory
make[1]: *** 
[/home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_gcc_release_64/solenv/gbuild/Package.mk:35: 
/home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_gcc_release_64/instdir/share/template/common/wizard/agenda/1simple.ott] 
Error 1

[build XSL] templates/presnt/Yellow_Idea/content.xml
/usr/bin/cp: cannot stat 
'/home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_gcc_release_64/workdir/CustomTarget/extras/source/templates/wizard/agenda/2elegant.ott': 
No such file or directory
make[1]: *** 
[/home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_gcc_release_64/solenv/gbuild/Package.mk:35: 
/home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_gcc_release_64/instdir/share/template/common/wizard/agenda/2elegant.ott] 
Error 1

[build XSL] templates/presnt/Yellow_Idea/styles.xml
make: *** [Makefile:290: build] Error 2
Build step 'Execute shell' marked build as failure
[Checks API] No suitable checks publisher found.
Finished: FAILURE

Ilmari


core.git: sc/source

2024-01-01 Thread Julien Nabet (via logerrit)
 sc/source/core/data/markmulti.cxx |2 +-
 sc/source/ui/view/gridwin4.cxx|2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

New commits:
commit a28b1dfb2dec7ece83280232941d9d2e2b72b557
Author: Julien Nabet 
AuthorDate: Mon Jan 1 14:59:51 2024 +0100
Commit: Julien Nabet 
CommitDate: Mon Jan 1 17:20:18 2024 +0100

Replace "size() == 0 with empty()" (sc/part2)

Change-Id: I0c87b39bd89825eba5f3c90477ba41eb7e5178ca
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161517
Tested-by: Jenkins
Reviewed-by: Julien Nabet 

diff --git a/sc/source/core/data/markmulti.cxx 
b/sc/source/core/data/markmulti.cxx
index 4c92f5f25a47..9cfcd19f8819 100644
--- a/sc/source/core/data/markmulti.cxx
+++ b/sc/source/core/data/markmulti.cxx
@@ -264,7 +264,7 @@ void ScMultiSel::SetMarkArea( SCCOL nStartCol, SCCOL 
nEndCol, SCROW nStartRow, S
 void ScMultiSel::Set( ScRangeList const & rList )
 {
 Clear();
-if (rList.size() == 0)
+if (rList.empty())
 return;
 
 // sort by row to make the combining/merging faster
diff --git a/sc/source/ui/view/gridwin4.cxx b/sc/source/ui/view/gridwin4.cxx
index 218c98b12a6c..95ed4d0c7600 100644
--- a/sc/source/ui/view/gridwin4.cxx
+++ b/sc/source/ui/view/gridwin4.cxx
@@ -1423,7 +1423,7 @@ void ScGridWindow::SetupInitialPageBreaks(const 
ScDocument& rDoc, SCTAB nTab)
 std::set aRowBreaks;
 rDoc.GetAllColBreaks(aColBreaks, nTab, true, false);
 rDoc.GetAllRowBreaks(aRowBreaks, nTab, true, false);
-if (aColBreaks.size() == 0 || aRowBreaks.size() == 0)
+if (aColBreaks.empty() || aRowBreaks.empty())
 {
 maShowPageBreaksTimer.SetPriority(TaskPriority::DEFAULT_IDLE);
 maShowPageBreaksTimer.Start();


How to force Jenkins to verify if failing probability is too high

2024-01-01 Thread Laurent Balland

Hello,

My change [1] did not pass Jenkins verification due to a failing 
probability of 0.45. I did not find any helpful information in Jenkins 
report [2].


I am almost sure that my change should pass. What should I modify in my 
change? How to tell Jenkins to go ahead?


Thanks for your help.

Laurent Balland


[1] https://gerrit.libreoffice.org/c/core/+/161513

[2] 
https://ci.libreoffice.org/job/gerrit_master_ml/9114/consoleFull#-355731841d24ee341-16ff-442b-9671-37df50e21a67


core.git: Branch 'libreoffice-24-2' - vcl/skia

2024-01-01 Thread Mike Kaganski (via logerrit)
 vcl/skia/gdiimpl.cxx |   10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

New commits:
commit aff4c1055e95f04d794ef83105f4a20ac16159db
Author: Mike Kaganski 
AuthorDate: Sun Dec 31 17:04:36 2023 +0600
Commit: Patrick Luby 
CommitDate: Mon Jan 1 15:24:23 2024 +0100

Avoid unwanted creation of mSurface

Commit 2d1a0d86d2d0c00fcfee61c39f2221e786e4245b (Related: tdf#152703
Prevent possible hang when live resizing a window, 2023-01-06) had
added a call to checkSurface in SkiaSalGraphicsImpl::performFlush,
to detect resize.

This created a regression, seen e.g. in JunitTest_framework_complex,
where 'assert(!mSurface)' in SkiaSalGraphicsImpl dtor fails now on
Windows with Skia/Vulkan:

 vcllo.dll!SkiaSalGraphicsImpl::~SkiaSalGraphicsImpl() Line 296 C++
 vclplug_winlo.dll!WinSkiaSalGraphicsImpl::~WinSkiaSalGraphicsImpl()C++
 vclplug_winlo.dll!WinSkiaSalGraphicsImpl::`scalar deleting 
destructor'(unsigned int)   C++
 
vclplug_winlo.dll!std::default_delete::operator()(SalGraphicsImpl
 * _Ptr) Line 3170   C++
 
vclplug_winlo.dll!std::unique_ptr>::~unique_ptr>()
 Line 3282 C++
 vclplug_winlo.dll!WinSalGraphics::~WinSalGraphics() Line 668   C++
 vclplug_winlo.dll!WinSalGraphics::`scalar deleting destructor'(unsigned 
int)   C++
 vclplug_winlo.dll!WinSalFrame::~WinSalFrame() Line 977 C++
 vclplug_winlo.dll!WinSalFrame::`scalar deleting destructor'(unsigned int)  
C++
 vclplug_winlo.dll!SalComWndProc(HWND__ * __formal, unsigned int nMsg, 
unsigned __int64 wParam, __int64 lParam, bool & rDef) Line 667   C++
 vclplug_winlo.dll!SalComWndProcW(HWND__ * hWnd, unsigned int nMsg, 
unsigned __int64 wParam, __int64 lParam) Line 724   C++
 user32.dll!7ffaab908241()  Unknown
 user32.dll!7ffaab907efc()  Unknown
 user32.dll!7ffaab91302d()  Unknown
 ntdll.dll!7ffaac2d33b4()   Unknown
 win32u.dll!7ffaa97814d4()  Unknown
 user32.dll!7ffaab911b4f()  Unknown
 user32.dll!7ffaab911a1c()  Unknown
 sal3.dll!osl_waitCondition(void * Condition, const TimeValue * pTimeout) 
Line 93   C++
 vclplug_winlo.dll!osl::Condition::wait(const TimeValue * pTimeout) Line 
124C++
 vclplug_winlo.dll!SalYieldMutex::doAcquire(unsigned long nLockCount) Line 
140  C++
 comphelper.dll!comphelper::SolarMutex::acquire(unsigned long nLockCount) 
Line 87   C++
 vcllo.dll!SalInstance::AcquireYieldMutex(unsigned long nCount) Line 147
C++
 vcllo.dll!Application::AcquireSolarMutex(unsigned long nCount) Line 510
C++
 vclplug_winlo.dll!SolarMutexReleaser::~SolarMutexReleaser() Line 1420  C++
 vclplug_winlo.dll!WinSalInstance::DoYield(bool bWait, bool 
bHandleAllCurrentEvents) Line 586   C++
 vcllo.dll!ImplYield(bool i_bWait, bool i_bAllEvents) Line 390  C++
 vcllo.dll!Application::Yield() Line 475C++
 vcllo.dll!Application::Execute() Line 368  C++
 sofficeapp.dll!desktop::Desktop::Main() Line 1605  C++
 vcllo.dll!ImplSVMain() Line 229C++
 vcllo.dll!SVMain() Line 262C++
 sofficeapp.dll!soffice_main() Line 94  C++
 soffice.bin!sal_main() Line 51 C
 soffice.bin!main(int argc, char * * argv) Line 49  C
 soffice.bin!invoke_main() Line 79  C++
 soffice.bin!__scrt_common_main_seh() Line 288  C++
 soffice.bin!__scrt_common_main() Line 331  C++
 soffice.bin!mainCRTStartup(void * __formal) Line 17C++
 kernel32.dll!7ffaab01257d()Unknown
 ntdll.dll!7ffaac28aa58()   Unknown

This is caused by unwanted creation of mSurface in checkSurface,
outside of the Init/DeInit pair, called from WinSalGraphics'
InitGraphics/DeInitGraphics. Thus an invariant is broken, that
only when WinSalFrame initializes its mhLocalDC, its mpImpl is
initialized. Deinitialization of mpImpl is thus only called if
mhLocalDC is not null.

Since flush makes no sense without mSurface, just move the call
to checkSurface inside the mSurface check. Hope it doesn't break
the fix made in commit 2d1a0d86d2d0c00fcfee61c39f2221e786e4245b.

Change-Id: I54442e604ef7c28659b908a7fb1404c9da41b006
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161484
Reviewed-by: Patrick Luby 
Tested-by: Jenkins
(cherry picked from commit 78ff693225e015e9f3153e26fbd4dca5fa1f0095)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161413
Reviewed-by: Noel Grandin 

diff --git a/vcl/skia/gdiimpl.cxx b/vcl/skia/gdiimpl.cxx
index e4e71798da48..485eaf24618d 100644
--- a/vcl/skia/gdiimpl.cxx
+++ b/vcl/skia/gdiimpl.cxx
@@ -393,13 +393,13 @@ void SkiaSalGraphicsImpl::performFlush()
 {
 SkiaZone zone;
 flushDrawing();
-// Related: tdf#152703 Eliminate flickering during live resizing of a 
window
-// When in live resize, the SkiaSalGraphicsImpl class does not detect that
-// the window size has changed until 

core.git: extensions/test

2024-01-01 Thread Luv Sharma (via logerrit)
 extensions/test/ole/AxTestComponents/Basic.cpp |   21 +
 1 file changed, 5 insertions(+), 16 deletions(-)

New commits:
commit 6c9dda18242bce6a37f7c43277ab4647a70401c8
Author: Luv Sharma 
AuthorDate: Sun Dec 31 17:48:48 2023 +0530
Commit: Ilmari Lauhakangas 
CommitDate: Mon Jan 1 14:27:36 2024 +0100

tdf#148251 Use std::swap instead of using temporary values

Change-Id: Iac18ab1e64e58749e300f71f7e61d4a31c66355e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161496
Tested-by: Jenkins
Tested-by: Ilmari Lauhakangas 
Reviewed-by: Ilmari Lauhakangas 

diff --git a/extensions/test/ole/AxTestComponents/Basic.cpp 
b/extensions/test/ole/AxTestComponents/Basic.cpp
index 8aad56e8af52..85fbb649f923 100644
--- a/extensions/test/ole/AxTestComponents/Basic.cpp
+++ b/extensions/test/ole/AxTestComponents/Basic.cpp
@@ -1053,9 +1053,7 @@ STDMETHODIMP CBasic::outDate(DATE* val)
 
 STDMETHODIMP CBasic::inoutDate(DATE* val)
 {
-DATE tmp = *val;
-*val = m_date;
-m_date = tmp;
+std::swap(*val, m_date);
 return S_OK;
 }
 
@@ -1098,10 +1096,7 @@ STDMETHODIMP CBasic::outDecimal(DECIMAL* val)
 
 STDMETHODIMP CBasic::inoutDecimal(DECIMAL* val)
 {
-DECIMAL tmp;
-tmp = * val;
-* val = m_decimal;
-m_decimal = tmp;
+std::swap(*val, m_decimal);
 return S_OK;
 }
 
@@ -1131,9 +1126,7 @@ STDMETHODIMP CBasic::outScode(SCODE* val)
 
 STDMETHODIMP CBasic::inoutSCode(SCODE* val)
 {
-SCODE tmp = *val;
-* val = m_scode;
-m_scode = tmp;
+std::swap(*val, m_scode);
 return S_OK;
 }
 
@@ -1302,9 +1295,7 @@ STDMETHODIMP CBasic::prpMultiArg2GetValues(VARIANT* val1, 
VARIANT* valProperty)
 
 STDMETHODIMP CBasic::get_prpMultiArg3(LONG* val1, LONG* pVal)
 {
-long aLong = *val1;
-*val1 = m_long;
-m_long = aLong;
+std::swap(*val1, m_long);
 
 * pVal = m_long2;
 return S_OK;
@@ -1312,9 +1303,7 @@ STDMETHODIMP CBasic::get_prpMultiArg3(LONG* val1, LONG* 
pVal)
 
 STDMETHODIMP CBasic::put_prpMultiArg3(LONG* val1, LONG newVal)
 {
-long aLong = *val1;
-*val1 = m_long;
-m_long = aLong;
+std::swap(*val1, m_long);
 
 m_long2 = newVal;
 return S_OK;


core.git: vcl/skia

2024-01-01 Thread Julien Nabet (via logerrit)
 vcl/skia/skia_denylist_vulkan.xml |3 ---
 1 file changed, 3 deletions(-)

New commits:
commit a3f21172fdb7fed6eb61be9199980421bad71101
Author: Julien Nabet 
AuthorDate: Mon Jan 1 12:28:23 2024 +0100
Commit: Julien Nabet 
CommitDate: Mon Jan 1 13:20:51 2024 +0100

Revert "Related tdf#158739: blacklist Nvidia RTX 4050 for Skia hardware"

This reverts commit bc00fb6de3ffd3949a3cdb524f49dac7e32258a9.

Reason: the real pb has been fixed thanks to Mike with:

https://git.libreoffice.org/core/+/025a49a40a3c0c1be5bf4383e87a1cc60014b7f4%5E%21
tdf#158942: renderMethodToUseForSize may force raster surface

Change-Id: I66602d607d3ea933b4035d616ebed7fedebfb9a2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161515
Reviewed-by: Julien Nabet 
Tested-by: Jenkins

diff --git a/vcl/skia/skia_denylist_vulkan.xml 
b/vcl/skia/skia_denylist_vulkan.xml
index 668aa87713d9..8da86069fc46 100644
--- a/vcl/skia/skia_denylist_vulkan.xml
+++ b/vcl/skia/skia_denylist_vulkan.xml
@@ -48,9 +48,6 @@
  
 
 
- 
-
-
  
 
 


core.git: desktop/source

2024-01-01 Thread Julien Nabet (via logerrit)
 desktop/source/lib/init.cxx |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit 968cb673eb353bd5d19d96498c0d38c00801c8a0
Author: Julien Nabet 
AuthorDate: Sun Dec 31 12:23:51 2023 +0100
Commit: Julien Nabet 
CommitDate: Mon Jan 1 13:19:17 2024 +0100

Replace "size() != 0 with !empty()" (desktop)

Change-Id: I164e29ed02fc4abf7a5b03ca0c391fb46b60e4f4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161483
Tested-by: Jenkins
Reviewed-by: Julien Nabet 

diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
index 4b1658d95e20..cc3139fcd22e 100644
--- a/desktop/source/lib/init.cxx
+++ b/desktop/source/lib/init.cxx
@@ -4564,7 +4564,7 @@ static void doc_registerCallback(LibreOfficeKitDocument* 
pThis,
 
pViewShell->setLibreOfficeKitViewCallback(pDocument->mpCallbackFlushHandlers[nView].get());
 }
 
-if (pDocument->maFontsMissing.size() != 0)
+if (!pDocument->maFontsMissing.empty())
 {
 OString sPayload = "{ \"fontsmissing\": [ "_ostr;
 bool bFirst = true;


core.git: sw/source

2024-01-01 Thread Julien Nabet (via logerrit)
 sw/source/core/doc/textboxhelper.cxx |2 +-
 sw/source/core/table/swnewtable.cxx  |2 +-
 sw/source/core/unocore/unotbl.cxx|2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

New commits:
commit 3f6396291a044274fd3238c797f3aff4a458fa37
Author: Julien Nabet 
AuthorDate: Sun Dec 31 12:29:03 2023 +0100
Commit: Julien Nabet 
CommitDate: Mon Jan 1 12:13:25 2024 +0100

Replace "size() != 0 with !empty()" (sw)

Change-Id: Iaa94c0b057694429b327cbca847fee06ad74256a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161489
Tested-by: Jenkins
Reviewed-by: Julien Nabet 

diff --git a/sw/source/core/doc/textboxhelper.cxx 
b/sw/source/core/doc/textboxhelper.cxx
index 253e39a29383..4a1dfc6ead43 100644
--- a/sw/source/core/doc/textboxhelper.cxx
+++ b/sw/source/core/doc/textboxhelper.cxx
@@ -1686,7 +1686,7 @@ SwTextBoxNode::SwTextBoxNode(SwFrameFormat* pOwnerShape)
 
 SwTextBoxNode::~SwTextBoxNode()
 {
-if (m_pTextBoxes.size() != 0)
+if (!m_pTextBoxes.empty())
 {
 SAL_WARN("sw.core", "SwTextBoxNode::~SwTextBoxNode(): Text-Box-Vector 
still not empty!");
 assert(false);
diff --git a/sw/source/core/table/swnewtable.cxx 
b/sw/source/core/table/swnewtable.cxx
index 3cc2e3670711..1a21a9e0354b 100644
--- a/sw/source/core/table/swnewtable.cxx
+++ b/sw/source/core/table/swnewtable.cxx
@@ -2383,7 +2383,7 @@ bool SwTable::CanConvertSubtables() const
 {
 return false; // no formulas in fields yet
 }
-if (pDoc->GetAttrPool().GetItemSurrogates(RES_BOXATR_FORMULA).size() != 0)
+if (!pDoc->GetAttrPool().GetItemSurrogates(RES_BOXATR_FORMULA).empty())
 {
 return false; // no table box formulas yet
 }
diff --git a/sw/source/core/unocore/unotbl.cxx 
b/sw/source/core/unocore/unotbl.cxx
index eb683b0b1c69..70c1849df7e9 100644
--- a/sw/source/core/unocore/unotbl.cxx
+++ b/sw/source/core/unocore/unotbl.cxx
@@ -503,7 +503,7 @@ static const SwTableBox* lcl_FindCornerTableBox(const 
SwTableLines& rTableLines,
 const SwTableLine* pLine(i_bTopLeft ? pLines->front() : 
pLines->back());
 assert(pLine);
 const SwTableBoxes& rBoxes(pLine->GetTabBoxes());
-assert(rBoxes.size() != 0);
+assert(!rBoxes.empty());
 const SwTableBox* pBox = i_bTopLeft ? rBoxes.front() : rBoxes.back();
 assert(pBox);
 if (pBox->GetSttNd())


core.git: chart2/source

2024-01-01 Thread Julien Nabet (via logerrit)
 chart2/source/view/main/VLegend.cxx |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit 77585439438d9ccfd77534341178a948a575edee
Author: Julien Nabet 
AuthorDate: Sun Dec 31 12:08:04 2023 +0100
Commit: Julien Nabet 
CommitDate: Mon Jan 1 12:10:15 2024 +0100

Replace "size() == 0 with empty()" (chart2)

Change-Id: Ia1e082d6cf6db2a3df2b5dd5fc8f13caee529fdd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161465
Tested-by: Jenkins
Reviewed-by: Julien Nabet 

diff --git a/chart2/source/view/main/VLegend.cxx 
b/chart2/source/view/main/VLegend.cxx
index 8a4935e9b058..72c0165a69f5 100644
--- a/chart2/source/view/main/VLegend.cxx
+++ b/chart2/source/view/main/VLegend.cxx
@@ -449,7 +449,7 @@ awt::Size lcl_placeLegendEntries(
 else
 --nNewLen;
 }
-if (aTextShapes.size() == 0)
+if (aTextShapes.empty())
 {
 DrawModelWrapper::removeShape(rEntries[0].xSymbol);
 rEntries.pop_back();


core.git: chart2/source

2024-01-01 Thread Luv Sharma (via logerrit)
 chart2/source/tools/NameContainer.cxx |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit a058fa6eb87dcc4a01dac14674e15ff3ba611ced
Author: Luv Sharma 
AuthorDate: Sun Dec 31 17:04:17 2023 +0530
Commit: Ilmari Lauhakangas 
CommitDate: Mon Jan 1 12:05:25 2024 +0100

tdf#158237 chart2: use c++20 contains() instead of find() and end()

Change-Id: I065f672de257e8a16a4cb9d41ff6334e5fea1823
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161492
Tested-by: Ilmari Lauhakangas 
Reviewed-by: Ilmari Lauhakangas 

diff --git a/chart2/source/tools/NameContainer.cxx 
b/chart2/source/tools/NameContainer.cxx
index 23e0a2821d1c..1cc79a8eaec0 100644
--- a/chart2/source/tools/NameContainer.cxx
+++ b/chart2/source/tools/NameContainer.cxx
@@ -65,7 +65,7 @@ Sequence< OUString > SAL_CALL 
NameContainer::getSupportedServiceNames()
 // XNameContainer
 void SAL_CALL NameContainer::insertByName( const OUString& rName, const Any& 
rElement )
 {
-if( m_aMap.find( rName ) != m_aMap.end() )
+if( m_aMap.contains( rName ))
 throw container::ElementExistException();
 m_aMap.emplace( rName, rElement );
 }


core.git: vcl/inc

2024-01-01 Thread Luv Sharma (via logerrit)
 vcl/inc/unx/x11/x11sys.hxx |5 +
 1 file changed, 1 insertion(+), 4 deletions(-)

New commits:
commit 8eadc80ac0c5e194a99ba57a2bf9d29e1465bdf8
Author: Luv Sharma 
AuthorDate: Mon Jan 1 02:58:43 2024 +0530
Commit: Ilmari Lauhakangas 
CommitDate: Mon Jan 1 12:03:50 2024 +0100

tdf#143148 Use pragma once instead of include guards in vcl

Change-Id: Icd42bbdaedd7f9ed7bc63c14ed0f4ec43c9a37c8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161508
Tested-by: Jenkins
Tested-by: Ilmari Lauhakangas 
Reviewed-by: Ilmari Lauhakangas 

diff --git a/vcl/inc/unx/x11/x11sys.hxx b/vcl/inc/unx/x11/x11sys.hxx
index b48cf26e6a75..37c5b0b7d1c5 100644
--- a/vcl/inc/unx/x11/x11sys.hxx
+++ b/vcl/inc/unx/x11/x11sys.hxx
@@ -17,8 +17,7 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
-#ifndef INCLUDED_VCL_INC_UNX_X11_X11SYS_HXX
-#define INCLUDED_VCL_INC_UNX_X11_X11SYS_HXX
+#pragma once
 
 #include 
 
@@ -37,6 +36,4 @@ public:
   const std::vector< OUString >& rButtons ) 
override;
 };
 
-#endif // INCLUDED_VCL_INC_UNX_X11_X11SYS_HXX
-
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */


core.git: helpcontent2

2024-01-01 Thread Taichi Haradaguchi (via logerrit)
 helpcontent2 |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit d978e2fe9e7e259bf724178d2d4fe4f9cda18e5f
Author: Taichi Haradaguchi <20001...@ymail.ne.jp>
AuthorDate: Mon Jan 1 19:25:20 2024 +0900
Commit: Gerrit Code Review 
CommitDate: Mon Jan 1 11:25:20 2024 +0100

Update git submodules

* Update helpcontent2 from branch 'master'
  to a7fc08834190211307266e4af41d53cdb54e3cd4
  - Fix broken link to "Text Box"

This issue affects versions 24.2 and later.

Change-Id: Icd61deadf03a83c34935e6c05a3554785f649abe
Reviewed-on: https://gerrit.libreoffice.org/c/help/+/161461
Tested-by: Jenkins
Tested-by: Taichi Haradaguchi <20001...@ymail.ne.jp>
Reviewed-by: Taichi Haradaguchi <20001...@ymail.ne.jp>

diff --git a/helpcontent2 b/helpcontent2
index 58b85d5d8886..a7fc08834190 16
--- a/helpcontent2
+++ b/helpcontent2
@@ -1 +1 @@
-Subproject commit 58b85d5d8886f116064102e38d98e494643fb55d
+Subproject commit a7fc08834190211307266e4af41d53cdb54e3cd4


help.git: source/text

2024-01-01 Thread Taichi Haradaguchi (via logerrit)
 source/text/simpress/main0104.xhp |4 +---
 source/text/swriter/main0104.xhp  |6 +-
 2 files changed, 2 insertions(+), 8 deletions(-)

New commits:
commit a7fc08834190211307266e4af41d53cdb54e3cd4
Author: Taichi Haradaguchi <20001...@ymail.ne.jp>
AuthorDate: Sun Dec 31 15:55:13 2023 +0900
Commit: Taichi Haradaguchi <20001...@ymail.ne.jp>
CommitDate: Mon Jan 1 11:25:19 2024 +0100

Fix broken link to "Text Box"

This issue affects versions 24.2 and later.

Change-Id: Icd61deadf03a83c34935e6c05a3554785f649abe
Reviewed-on: https://gerrit.libreoffice.org/c/help/+/161461
Tested-by: Jenkins
Tested-by: Taichi Haradaguchi <20001...@ymail.ne.jp>
Reviewed-by: Taichi Haradaguchi <20001...@ymail.ne.jp>

diff --git a/source/text/simpress/main0104.xhp 
b/source/text/simpress/main0104.xhp
index 855cda2857..1f4a5eeb25 100644
--- a/source/text/simpress/main0104.xhp
+++ b/source/text/simpress/main0104.xhp
@@ -44,9 +44,7 @@
 
 
 
-
-
-
+
 
 Floating 
Frame
 
diff --git a/source/text/swriter/main0104.xhp b/source/text/swriter/main0104.xhp
index 4a0ebc8627..cc856e3c4b 100644
--- a/source/text/swriter/main0104.xhp
+++ b/source/text/swriter/main0104.xhp
@@ -34,20 +34,16 @@
 Page Break
 Inserts a manual page break at the current cursor 
position and places the cursor at the beginning of the next 
page.
 
-
 
 
-
 
-
 
 
 Section
 
 Text from 
File
 
-Textbox
-
+
 
 
 


core.git: vcl/skia

2024-01-01 Thread Mike Kaganski (via logerrit)
 vcl/skia/SkiaHelper.cxx |3 +++
 1 file changed, 3 insertions(+)

New commits:
commit 3c8af232a4981150b1c9396ca947fbfcef5a222e
Author: Mike Kaganski 
AuthorDate: Mon Jan 1 15:17:00 2024 +0600
Commit: Mike Kaganski 
CommitDate: Mon Jan 1 11:22:00 2024 +0100

Missing includes

Obviously included indirectly, but were confusing VS IDE

Change-Id: I68e0d9ca96a6fcef1bf8c8f12bfecb543690a75a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161514
Tested-by: Jenkins
Reviewed-by: Mike Kaganski 

diff --git a/vcl/skia/SkiaHelper.cxx b/vcl/skia/SkiaHelper.cxx
index 5d4942efce1b..d59b865a0751 100644
--- a/vcl/skia/SkiaHelper.cxx
+++ b/vcl/skia/SkiaHelper.cxx
@@ -9,6 +9,8 @@
 
 #include 
 
+#include 
+
 #include 
 
 #include 
@@ -34,6 +36,7 @@ bool isAlphaMaskBlendingEnabled() { return false; }
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 


core.git: Branch 'libreoffice-7-6' - vcl/skia

2024-01-01 Thread Mike Kaganski (via logerrit)
 vcl/skia/gdiimpl.cxx |   10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

New commits:
commit c1a44c635f1203f60fd9771b94bffec210922305
Author: Mike Kaganski 
AuthorDate: Sun Dec 31 17:04:36 2023 +0600
Commit: Noel Grandin 
CommitDate: Mon Jan 1 10:26:02 2024 +0100

Avoid unwanted creation of mSurface

Commit 2d1a0d86d2d0c00fcfee61c39f2221e786e4245b (Related: tdf#152703
Prevent possible hang when live resizing a window, 2023-01-06) had
added a call to checkSurface in SkiaSalGraphicsImpl::performFlush,
to detect resize.

This created a regression, seen e.g. in JunitTest_framework_complex,
where 'assert(!mSurface)' in SkiaSalGraphicsImpl dtor fails now on
Windows with Skia/Vulkan:

 vcllo.dll!SkiaSalGraphicsImpl::~SkiaSalGraphicsImpl() Line 296 C++
 vclplug_winlo.dll!WinSkiaSalGraphicsImpl::~WinSkiaSalGraphicsImpl()C++
 vclplug_winlo.dll!WinSkiaSalGraphicsImpl::`scalar deleting 
destructor'(unsigned int)   C++
 
vclplug_winlo.dll!std::default_delete::operator()(SalGraphicsImpl
 * _Ptr) Line 3170   C++
 
vclplug_winlo.dll!std::unique_ptr>::~unique_ptr>()
 Line 3282 C++
 vclplug_winlo.dll!WinSalGraphics::~WinSalGraphics() Line 668   C++
 vclplug_winlo.dll!WinSalGraphics::`scalar deleting destructor'(unsigned 
int)   C++
 vclplug_winlo.dll!WinSalFrame::~WinSalFrame() Line 977 C++
 vclplug_winlo.dll!WinSalFrame::`scalar deleting destructor'(unsigned int)  
C++
 vclplug_winlo.dll!SalComWndProc(HWND__ * __formal, unsigned int nMsg, 
unsigned __int64 wParam, __int64 lParam, bool & rDef) Line 667   C++
 vclplug_winlo.dll!SalComWndProcW(HWND__ * hWnd, unsigned int nMsg, 
unsigned __int64 wParam, __int64 lParam) Line 724   C++
 user32.dll!7ffaab908241()  Unknown
 user32.dll!7ffaab907efc()  Unknown
 user32.dll!7ffaab91302d()  Unknown
 ntdll.dll!7ffaac2d33b4()   Unknown
 win32u.dll!7ffaa97814d4()  Unknown
 user32.dll!7ffaab911b4f()  Unknown
 user32.dll!7ffaab911a1c()  Unknown
 sal3.dll!osl_waitCondition(void * Condition, const TimeValue * pTimeout) 
Line 93   C++
 vclplug_winlo.dll!osl::Condition::wait(const TimeValue * pTimeout) Line 
124C++
 vclplug_winlo.dll!SalYieldMutex::doAcquire(unsigned long nLockCount) Line 
140  C++
 comphelper.dll!comphelper::SolarMutex::acquire(unsigned long nLockCount) 
Line 87   C++
 vcllo.dll!SalInstance::AcquireYieldMutex(unsigned long nCount) Line 147
C++
 vcllo.dll!Application::AcquireSolarMutex(unsigned long nCount) Line 510
C++
 vclplug_winlo.dll!SolarMutexReleaser::~SolarMutexReleaser() Line 1420  C++
 vclplug_winlo.dll!WinSalInstance::DoYield(bool bWait, bool 
bHandleAllCurrentEvents) Line 586   C++
 vcllo.dll!ImplYield(bool i_bWait, bool i_bAllEvents) Line 390  C++
 vcllo.dll!Application::Yield() Line 475C++
 vcllo.dll!Application::Execute() Line 368  C++
 sofficeapp.dll!desktop::Desktop::Main() Line 1605  C++
 vcllo.dll!ImplSVMain() Line 229C++
 vcllo.dll!SVMain() Line 262C++
 sofficeapp.dll!soffice_main() Line 94  C++
 soffice.bin!sal_main() Line 51 C
 soffice.bin!main(int argc, char * * argv) Line 49  C
 soffice.bin!invoke_main() Line 79  C++
 soffice.bin!__scrt_common_main_seh() Line 288  C++
 soffice.bin!__scrt_common_main() Line 331  C++
 soffice.bin!mainCRTStartup(void * __formal) Line 17C++
 kernel32.dll!7ffaab01257d()Unknown
 ntdll.dll!7ffaac28aa58()   Unknown

This is caused by unwanted creation of mSurface in checkSurface,
outside of the Init/DeInit pair, called from WinSalGraphics'
InitGraphics/DeInitGraphics. Thus an invariant is broken, that
only when WinSalFrame initializes its mhLocalDC, its mpImpl is
initialized. Deinitialization of mpImpl is thus only called if
mhLocalDC is not null.

Since flush makes no sense without mSurface, just move the call
to checkSurface inside the mSurface check. Hope it doesn't break
the fix made in commit 2d1a0d86d2d0c00fcfee61c39f2221e786e4245b.

Change-Id: I54442e604ef7c28659b908a7fb1404c9da41b006
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161484
Reviewed-by: Patrick Luby 
Tested-by: Jenkins
(cherry picked from commit 78ff693225e015e9f3153e26fbd4dca5fa1f0095)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161414
Reviewed-by: Noel Grandin 

diff --git a/vcl/skia/gdiimpl.cxx b/vcl/skia/gdiimpl.cxx
index 2ae3b8d85e23..a6e030924ab6 100644
--- a/vcl/skia/gdiimpl.cxx
+++ b/vcl/skia/gdiimpl.cxx
@@ -393,13 +393,13 @@ void SkiaSalGraphicsImpl::performFlush()
 {
 SkiaZone zone;
 flushDrawing();
-// Related: tdf#152703 Eliminate flickering during live resizing of a 
window
-// When in live resize, the SkiaSalGraphicsImpl class does not detect that
-// the window size has changed until 

core.git: ucb/source

2024-01-01 Thread Julien Nabet (via logerrit)
 ucb/source/ucp/webdav-curl/CurlUri.cxx |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit ff07799606ff0d2405225d818c4fbbaf30c4a10f
Author: Julien Nabet 
AuthorDate: Sat Dec 30 18:01:10 2023 +0100
Commit: Noel Grandin 
CommitDate: Mon Jan 1 10:25:38 2024 +0100

cid#1545411 Resource leak

Change-Id: I3ecb388a69c261a74b6d1a7b7d467d1a32956916
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161449
Tested-by: Jenkins
Reviewed-by: Noel Grandin 

diff --git a/ucb/source/ucp/webdav-curl/CurlUri.cxx 
b/ucb/source/ucp/webdav-curl/CurlUri.cxx
index 3ee218d5aca3..1b478cce8a45 100644
--- a/ucb/source/ucp/webdav-curl/CurlUri.cxx
+++ b/ucb/source/ucp/webdav-curl/CurlUri.cxx
@@ -290,7 +290,7 @@ CurlUri 
CurlUri::CloneWithRelativeRefPathAbsolute(std::u16string_view rRelativeR
 SAL_WARN("ucb.ucp.webdav.curl", "curl_url_set failed: " << uc);
 throw DAVException(DAVException::DAV_INVALID_ARG);
 }
-return CurlUri(*pUrl.release());
+return CurlUri(*pUrl);
 }
 
 OUString EncodeSegment(OUString const& rSegment)


core.git: sw/source

2024-01-01 Thread Jamie Douglass (via logerrit)
 sw/source/uibase/uiview/view2.cxx |8 
 1 file changed, 4 insertions(+), 4 deletions(-)

New commits:
commit ef5aadffaefe47870f1e9472d7cdb8d37526c104
Author: Jamie Douglass 
AuthorDate: Mon Jan 1 11:30:39 2024 +1100
Commit: Mike Kaganski 
CommitDate: Mon Jan 1 10:15:24 2024 +0100

tdf#142494 Word count set to 0 when no words are selected.

The application now correctly recognises selections without words.
When a selection is made that does not contain a word, the word count is
set to zero, and the text "Selected: 0 words, x chars" now appears

Change-Id: Icfa0a6fe2bf6315485102d6ad9b3cea5b6d8d139
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161509
Tested-by: Jenkins
Reviewed-by: Mike Kaganski 

diff --git a/sw/source/uibase/uiview/view2.cxx 
b/sw/source/uibase/uiview/view2.cxx
index cc6faf78a3c5..2c7a07449715 100644
--- a/sw/source/uibase/uiview/view2.cxx
+++ b/sw/source/uibase/uiview/view2.cxx
@@ -1876,11 +1876,11 @@ void SwView::StateStatusLine(SfxItemSet &rSet)
 rShell.CountWords(selectionStats);
 documentStats = 
rShell.GetDoc()->getIDocumentStatistics().GetUpdatedDocStat( true /* 
complete-async */, false /* don't update fields */ );
 
-sal_uLong nWord = selectionStats.nWord ? selectionStats.nWord 
: documentStats.nWord;
+sal_uLong nWord = selectionStats.nChar ? selectionStats.nWord 
: documentStats.nWord;
 sal_uLong nChar = selectionStats.nChar ? selectionStats.nChar 
: documentStats.nChar;
-TranslateId pResId = selectionStats.nWord ? STR_WORDCOUNT : 
STR_WORDCOUNT_NO_SELECTION;
-TranslateNId pWordResId = selectionStats.nWord ? 
STR_WORDCOUNT_WORDARG : STR_WORDCOUNT_WORDARG_NO_SELECTION;
-TranslateNId pCharResId = selectionStats.nWord ? 
STR_WORDCOUNT_CHARARG : STR_WORDCOUNT_CHARARG_NO_SELECTION;
+TranslateId pResId = selectionStats.nChar ? STR_WORDCOUNT : 
STR_WORDCOUNT_NO_SELECTION;
+TranslateNId pWordResId = selectionStats.nChar ? 
STR_WORDCOUNT_WORDARG : STR_WORDCOUNT_WORDARG_NO_SELECTION;
+TranslateNId pCharResId = selectionStats.nChar ? 
STR_WORDCOUNT_CHARARG : STR_WORDCOUNT_CHARARG_NO_SELECTION;
 
 const LocaleDataWrapper& rLocaleData = 
Application::GetSettings().GetUILocaleDataWrapper();
 OUString aWordArg = SwResId(pWordResId, 
nWord).replaceAll("$1", rLocaleData.getNum(nWord, 0));


Jamie Douglass License Statement

2024-01-01 Thread Jamie Douglass

All of my past & future contributions to LibreOffice may be licensed under the 
MPLv2/LGPLv3+ dual license.

core.git: editeng/inc editeng/source

2024-01-01 Thread Tomaž Vajngerl (via logerrit)
 editeng/inc/editdoc.hxx |7 +--
 editeng/source/editeng/editdoc.cxx  |   18 +-
 editeng/source/editeng/impedit2.cxx |6 +++---
 editeng/source/editeng/impedit3.cxx |2 +-
 4 files changed, 18 insertions(+), 15 deletions(-)

New commits:
commit 417d1d56b39453b5ae8396a8286d8291061f049b
Author: Tomaž Vajngerl 
AuthorDate: Sat Dec 30 11:25:34 2023 +0900
Commit: Tomaž Vajngerl 
CommitDate: Mon Jan 1 09:21:14 2024 +0100

editeng: make it clear EditDoc is responsible for ContentNodes

Change-Id: I38b9b1a5ba48d73438865f5a040f2483f6814c40
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161479
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl 

diff --git a/editeng/inc/editdoc.hxx b/editeng/inc/editdoc.hxx
index 7fc29556957c..e9016989e840 100644
--- a/editeng/inc/editdoc.hxx
+++ b/editeng/inc/editdoc.hxx
@@ -100,7 +100,10 @@ public:
 };
 
 
-
+/** Edit document
+ *
+ * Holder, responsible for the content nodes and the manipulation of those.
+ */
 class EditDoc
 {
 private:
@@ -204,7 +207,7 @@ public:
 sal_Int32 Count() const;
 const ContentNode* operator[](sal_Int32 nPos) const;
 ContentNode* operator[](sal_Int32 nPos);
-void Insert(sal_Int32 nPos, ContentNode* p);
+void Insert(sal_Int32 nPos, std::unique_ptr p);
 /// deletes
 void Remove(sal_Int32 nPos);
 /// does not delete
diff --git a/editeng/source/editeng/editdoc.cxx 
b/editeng/source/editeng/editdoc.cxx
index 0afcc9cdd81c..c44c0b5a123c 100644
--- a/editeng/source/editeng/editdoc.cxx
+++ b/editeng/source/editeng/editdoc.cxx
@@ -943,14 +943,14 @@ ContentNode* EditDoc::operator[](sal_Int32 nPos)
 return GetObject(nPos);
 }
 
-void EditDoc::Insert(sal_Int32 nPos, ContentNode* p)
+void EditDoc::Insert(sal_Int32 nPos, std::unique_ptr pNode)
 {
 if (nPos < 0 || nPos == SAL_MAX_INT32)
 {
 SAL_WARN( "editeng", "EditDoc::Insert - overflow pos " << nPos);
 return;
 }
-maContents.insert(maContents.begin()+nPos, 
std::unique_ptr(p));
+maContents.insert(maContents.begin()+nPos, std::move(pNode));
 }
 
 void EditDoc::Remove(sal_Int32 nPos)
@@ -1057,8 +1057,8 @@ EditPaM EditDoc::Clear()
 {
 maContents.clear();
 
-ContentNode* pNode = new ContentNode( GetItemPool() );
-Insert(0, pNode);
+ContentNode* pNode = new ContentNode(GetItemPool());
+Insert(0, std::unique_ptr(pNode));
 
 CreateDefFont(false);
 
@@ -1100,8 +1100,8 @@ EditPaM EditDoc::RemoveText()
 
 maContents.clear();
 
-ContentNode* pNode = new ContentNode( GetItemPool() );
-Insert(0, pNode);
+ContentNode* pNode = new ContentNode(GetItemPool());
+Insert(0, std::unique_ptr(pNode));
 
 pNode->SetStyleSheet(pPrevStyle, false);
 pNode->GetContentAttribs().GetItems().Set( aPrevSet );
@@ -1109,7 +1109,7 @@ EditPaM EditDoc::RemoveText()
 
 SetModified(true);
 
-return EditPaM( pNode, 0 );
+return EditPaM(pNode, 0);
 }
 
 EditPaM EditDoc::InsertText( EditPaM aPaM, std::u16string_view rStr )
@@ -1143,7 +1143,7 @@ EditPaM EditDoc::InsertParaBreak( EditPaM aPaM, bool 
bKeepEndingAttribs )
 aContentAttribs.GetItems().Put( SfxBoolItem( EE_PARA_BULLETSTATE, true) );
 
 // ContentNode constructor copies also the paragraph attributes
-ContentNode* pNode = new ContentNode( aStr, std::move(aContentAttribs) );
+ContentNode* pNode = new ContentNode(aStr, std::move(aContentAttribs));
 
 // Copy the Default Font
 pNode->GetCharAttribs().GetDefFont() = 
aPaM.GetNode()->GetCharAttribs().GetDefFont();
@@ -1161,7 +1161,7 @@ EditPaM EditDoc::InsertParaBreak( EditPaM aPaM, bool 
bKeepEndingAttribs )
 // Character attributes may need to be copied or trimmed:
 pNode->CopyAndCutAttribs( aPaM.GetNode(), GetItemPool(), 
bKeepEndingAttribs );
 
-Insert(nPos+1, pNode);
+Insert(nPos+1, std::unique_ptr(pNode));
 
 SetModified(true);
 
diff --git a/editeng/source/editeng/impedit2.cxx 
b/editeng/source/editeng/impedit2.cxx
index d3a62cb2b9de..b7a1aca97e2f 100644
--- a/editeng/source/editeng/impedit2.cxx
+++ b/editeng/source/editeng/impedit2.cxx
@@ -2218,8 +2218,8 @@ EditSelection ImpEditEngine::ImpMoveParagraphs( Range 
aOldPositions, sal_Int32 n
 aSelection.Max().SetNode( pTmpPortion->GetNode() );
 aSelection.Max().SetIndex( pTmpPortion->GetNode()->Len() );
 
-ContentNode* pN = pTmpPortion->GetNode();
-maEditDoc.Insert(nRealNewPos+i, pN);
+ContentNode* pNode = pTmpPortion->GetNode();
+maEditDoc.Insert(nRealNewPos+i, std::unique_ptr(pNode));
 
 GetParaPortions().Insert(nRealNewPos+i, std::move(pTmpPortion));
 ++i;
@@ -2998,7 +2998,7 @@ EditPaM ImpEditEngine::ImpFastInsertParagraph( sal_Int32 
nPara )
 if ( GetStatus().DoOnlineSpelling() )
 pNode->CreateWrongList();
 
-maEditDoc.Insert(nPara, pNode);
+maEditDoc.Insert(nPara, std::unique_ptr(pNode));
 
 GetParaPortions().Insert(nPara, std::make_unique( pNode ));
 if 

core.git: 2 commits - editeng/inc editeng/source

2024-01-01 Thread Tomaž Vajngerl (via logerrit)
 editeng/inc/ParagraphPortion.hxx |   26 +++---
 editeng/inc/ParagraphPortionList.hxx |5 +-
 editeng/inc/editdoc.hxx  |   60 ++--
 editeng/source/editeng/editdoc.cxx   |   64 +--
 4 files changed, 75 insertions(+), 80 deletions(-)

New commits:
commit 252c0316c3be09079e08afc9fa512ca5a60ea957
Author: Tomaž Vajngerl 
AuthorDate: Fri Dec 29 21:55:54 2023 +0900
Commit: Tomaž Vajngerl 
CommitDate: Mon Jan 1 09:21:06 2024 +0100

editeng: prefix members of EditDoc

Change-Id: I403db061b6e3e184e97c5ec3ce5746d2fdff0749
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161478
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl 

diff --git a/editeng/inc/editdoc.hxx b/editeng/inc/editdoc.hxx
index 738c0b2d5772..7fc29556957c 100644
--- a/editeng/inc/editdoc.hxx
+++ b/editeng/inc/editdoc.hxx
@@ -104,20 +104,20 @@ public:
 class EditDoc
 {
 private:
-mutable sal_Int32 nLastCache;
-std::vector > maContents;
+mutable sal_Int32 mnLastCache;
+std::vector> maContents;
 
-rtl::Reference pItemPool;
-Link  aModifyHdl;
+rtl::Reference mpItemPool;
+Link maModifyHdl;
 
 SvxFont maDefFont;   //faster than ever from the pool!!
-sal_uInt16  nDefTab;
-boolbIsVertical:1;
+sal_uInt16  mnDefTab;
+boolmbIsVertical:1;
 TextRotationmnRotation;
-boolbIsFixedCellHeight:1;
+boolmbIsFixedCellHeight:1;
 
-boolbModified:1;
-boolbDisableAttributeExpanding:1;
+boolmbModified:1;
+boolmbDisableAttributeExpanding:1;
 
 public:
 EditDoc( SfxItemPool* pItemPool );
@@ -126,28 +126,44 @@ public:
 voiddumpAsXml(xmlTextWriterPtr pWriter) const;
 voidClearSpellErrors();
 
-boolIsModified() const  { return bModified; }
+boolIsModified() const  { return mbModified; }
 voidSetModified( bool b );
 
-voidDisableAttributeExpanding() { bDisableAttributeExpanding = 
true; }
+voidDisableAttributeExpanding() { mbDisableAttributeExpanding 
= true; }
 
-voidSetModifyHdl( const Link& rLink ) { 
aModifyHdl = rLink; }
+voidSetModifyHdl(const Link& rLink)
+{
+maModifyHdl = rLink;
+}
 
 voidCreateDefFont( bool bUseStyles );
 const SvxFont&  GetDefFont() const { return maDefFont; }
 
-voidSetDefTab( sal_uInt16 nTab ){ nDefTab = nTab ? nTab : 
DEFTAB; }
-sal_uInt16  GetDefTab() const   { return nDefTab; }
+voidSetDefTab(sal_uInt16 nTab)
+{
+mnDefTab = nTab ? nTab : DEFTAB;
+}
 
-voidSetVertical( bool bVertical )   { bIsVertical = bVertical; 
}
+sal_uInt16  GetDefTab() const
+{
+return mnDefTab;
+}
+
+voidSetVertical( bool bVertical )   { mbIsVertical = 
bVertical; }
 boolIsEffectivelyVertical() const;
 boolIsTopToBottom() const;
 boolGetVertical() const;
 voidSetRotation( TextRotation nRotation )   { mnRotation = 
nRotation; }
 TextRotationGetRotation() const { return 
mnRotation; }
 
-voidSetFixedCellHeight( bool bUseFixedCellHeight )  { 
bIsFixedCellHeight = bUseFixedCellHeight; }
-boolIsFixedCellHeight() const   { return 
bIsFixedCellHeight; }
+voidSetFixedCellHeight( bool bUseFixedCellHeight )
+{
+mbIsFixedCellHeight = bUseFixedCellHeight;
+}
+boolIsFixedCellHeight() const
+{
+return mbIsFixedCellHeight;
+}
 
 EditPaM Clear();
 EditPaM RemoveText();
@@ -166,8 +182,14 @@ public:
 EditPaM GetStartPaM() const;
 EditPaM GetEndPaM() const;
 
-SfxItemPool&GetItemPool()   { return *pItemPool; }
-const SfxItemPool&  GetItemPool() const { return *pItemPool; }
+SfxItemPool&GetItemPool()
+{
+return *mpItemPool;
+}
+const SfxItemPool&  GetItemPool() const
+{
+return *mpItemPool;
+}
 
 voidInsertAttrib( const SfxPoolItem& rItem, ContentNode* 
pNode, sal_Int32 nStart, sal_Int32 nEnd );
 voidInsertAttrib( ContentNode* pNode, sal_Int32 nStart, 
sal_Int32 nEnd, const SfxPoolItem& rPoolItem );
diff --git a/editeng/source/editeng/editdoc.cxx 
b/editeng/source/editeng/editdoc.cxx
index fdfd74edb09a..0afcc9cdd81c 100644
--- a/editeng/source/editeng/editdoc.cxx
+++ b/editeng/source/editeng/editdoc.cxx
@@ -790,14 +790,14 @@ void EditSelection::Adjust( const EditDoc& rNodes )
 }
 
 EditDoc::EditDoc( SfxItemPool* pPool ) :
-nLastCache(0),
-pItemPool(pPool ? pPool : new EditEngineItemPool()),
-