sc/source/core/data/postit.cxx |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

New commits:
commit 3933b60ba52d0916b0c2fa886b4127788a7f7d1c
Author:     Justin Luth <justin.l...@collabora.com>
AuthorDate: Thu Dec 12 20:01:34 2024 -0500
Commit:     Miklos Vajna <vmik...@collabora.com>
CommitDate: Mon Dec 16 09:31:09 2024 +0100

    tdf#163033 sc: fix crash when copying comment to another ScDocument
    
    Fixes a crash that started with
    7.6.0.2 commit eec038b982b4672ac8feb030cb6bae546fa8c901
    
    The crash occurred when comments were copied (without cloning)
    to another document and then the source document was closed,
    removing access to the (uncloned) comment.
    
    Also took the opportunity to put the (minutely) most expensive
    comparison at the end of the if clause.
    
    Change-Id: Ia5c1313aa17550f760d5f870c566f06b7abd598b
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/178394
    Tested-by: Jenkins
    Reviewed-by: Justin Luth <jl...@mail.com>
    (cherry picked from commit 6edc10c6b0b8322db63230b3a71e393437cbb7ac)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/178420
    Reviewed-by: Miklos Vajna <vmik...@collabora.com>
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com>

diff --git a/sc/source/core/data/postit.cxx b/sc/source/core/data/postit.cxx
index 695106ee5202..570dd28142f7 100644
--- a/sc/source/core/data/postit.cxx
+++ b/sc/source/core/data/postit.cxx
@@ -484,8 +484,9 @@ ScPostIt::~ScPostIt()
 
 std::unique_ptr<ScPostIt> ScPostIt::Clone( const ScAddress& rOwnPos, 
ScDocument& rDestDoc, const ScAddress& rDestPos, bool bCloneCaption ) const
 {
-    // tdf#117307: Don't clone comment, if it is in the same position
-    if ( (rOwnPos == rDestPos) && !mrDoc.IsClipboard() )
+    // tdf#117307: Don't clone comment, if it is in the same position in the 
same document
+    const bool bIsSameDoc = mrDoc.GetPool() == rDestDoc.GetPool();
+    if (bIsSameDoc && !mrDoc.IsClipboard() && rOwnPos == rDestPos)
         bCloneCaption = false;
     CreateCaptionFromInitData( rOwnPos );
     sal_uInt32 nPostItId = comphelper::LibreOfficeKit::isActive() ? 0 : 
mnPostItId;

Reply via email to