[Libreoffice-commits] core.git: Branch 'libreoffice-6-3' - vcl/source

Jan-Marek Glogowski (via logerrit) logerrit at kemper.freedesktop.org
Fri Nov 15 18:25:33 UTC 2019


 vcl/source/gdi/pdfwriter.cxx      |    1 +
 vcl/source/gdi/pdfwriter_impl.cxx |    1 +
 2 files changed, 2 insertions(+)

New commits:
commit 27cfadd5e7a0897ee9fd046ab3e35edfd3aa2369
Author:     Jan-Marek Glogowski <jan-marek.glogowski at extern.cib.de>
AuthorDate: Wed Nov 13 03:45:38 2019 +0100
Commit:     Jan-Marek Glogowski <glogow at fbihome.de>
CommitDate: Fri Nov 15 19:24:26 2019 +0100

    tdf#128434 really free the VclPtr<PDFWriterImpl>
    
    This fixes the major reference cycle introduced by my commit
    b85ff98383942360901b8242cf77366782400426 ("Change PDFWriterImpl
    into an OutputDevice"), and adds the missing disposeAndClear()
    call.
    
    Maybe it would be better to add a ScopedVclPtr in the PDFWriter
    class and revert all the other VclPtr<PDFWriterImpl> users back
    to the original PDFWriterImpl*. The PDFWriter code really
    doesn't need any of the special VclPtr handling.
    
    Change-Id: Ia64fb207ad274d9323e350022f6b8af35c44e9f5
    Reviewed-on: https://gerrit.libreoffice.org/82562
    Tested-by: Jenkins
    Reviewed-by: Jan-Marek Glogowski <glogow at fbihome.de>
    (cherry picked from commit 4dd87ccdab80eb094cede538e3d742148df3880a)
    Reviewed-on: https://gerrit.libreoffice.org/82660
    (cherry picked from commit f4a2bc0da65695d9744e8b4be20a09c03fb196e0)
    Reviewed-on: https://gerrit.libreoffice.org/82779
    Reviewed-by: Michael Weghorn <m.weghorn at posteo.de>

diff --git a/vcl/source/gdi/pdfwriter.cxx b/vcl/source/gdi/pdfwriter.cxx
index a50b0dd717a2..b8d35359af46 100644
--- a/vcl/source/gdi/pdfwriter.cxx
+++ b/vcl/source/gdi/pdfwriter.cxx
@@ -35,6 +35,7 @@ PDFWriter::PDFWriter( const PDFWriter::PDFWriterContext& rContext, const css::un
 
 PDFWriter::~PDFWriter()
 {
+    xImplementation.disposeAndClear();
 }
 
 OutputDevice* PDFWriter::GetReferenceDevice()
diff --git a/vcl/source/gdi/pdfwriter_impl.cxx b/vcl/source/gdi/pdfwriter_impl.cxx
index 46f8393de082..e1186fa22f32 100644
--- a/vcl/source/gdi/pdfwriter_impl.cxx
+++ b/vcl/source/gdi/pdfwriter_impl.cxx
@@ -1428,6 +1428,7 @@ void PDFWriterImpl::dispose()
 {
     if( m_aCipher )
         rtl_cipher_destroyARCFOUR( m_aCipher );
+    m_aPages.clear();
     VirtualDevice::dispose();
 }
 


More information about the Libreoffice-commits mailing list