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@fbihome.de>
(cherry picked from commit 4dd87ccdab80eb094cede538e3d742148df3880a)
Reviewed-on: https://gerrit.libreoffice.org/82660
diff --git a/vcl/source/gdi/pdfwriter.cxx b/vcl/source/gdi/pdfwriter.cxx
index 4e5a3c1..9a41891 100644
--- a/vcl/source/gdi/pdfwriter.cxx
+++ b/vcl/source/gdi/pdfwriter.cxx
@@ -34,6 +34,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 a63a2152e..83d5c75 100644
--- a/vcl/source/gdi/pdfwriter_impl.cxx
+++ b/vcl/source/gdi/pdfwriter_impl.cxx
@@ -1418,6 +1418,7 @@ void PDFWriterImpl::dispose()
{
    if( m_aCipher )
        rtl_cipher_destroyARCFOUR( m_aCipher );
    m_aPages.clear();
    VirtualDevice::dispose();
}