You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by al...@apache.org on 2013/06/07 13:35:52 UTC
svn commit: r1490593 - in /openoffice/trunk/main/sw: inc/unotxdoc.hxx
source/ui/app/docsh.cxx source/ui/uno/unotxdoc.cxx
Author: alg
Date: Fri Jun 7 11:35:51 2013
New Revision: 1490593
URL: http://svn.apache.org/r1490593
Log:
i121125 Secured release of remembered data (ViewShell) in PDFExport when nothing gets exported (no call to render implementaion in Writer)
Modified:
openoffice/trunk/main/sw/inc/unotxdoc.hxx
openoffice/trunk/main/sw/source/ui/app/docsh.cxx
openoffice/trunk/main/sw/source/ui/uno/unotxdoc.cxx
Modified: openoffice/trunk/main/sw/inc/unotxdoc.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sw/inc/unotxdoc.hxx?rev=1490593&r1=1490592&r2=1490593&view=diff
==============================================================================
--- openoffice/trunk/main/sw/inc/unotxdoc.hxx (original)
+++ openoffice/trunk/main/sw/inc/unotxdoc.hxx Fri Jun 7 11:35:51 2013
@@ -440,6 +440,8 @@ public:
SwXDrawPage* GetDrawPage();
SwDocShell* GetDocShell() {return pDocShell;}
+ // #121125# react on ViewShell change
+ void ReactOnViewShellChange();
void * SAL_CALL operator new( size_t ) throw();
void SAL_CALL operator delete( void * ) throw();
Modified: openoffice/trunk/main/sw/source/ui/app/docsh.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sw/source/ui/app/docsh.cxx?rev=1490593&r1=1490592&r2=1490593&view=diff
==============================================================================
--- openoffice/trunk/main/sw/source/ui/app/docsh.cxx (original)
+++ openoffice/trunk/main/sw/source/ui/app/docsh.cxx Fri Jun 7 11:35:51 2013
@@ -1125,12 +1125,32 @@ SfxStyleSheetBasePool* SwDocShell::GetSt
}
+#include <unotxdoc.hxx>
+
void SwDocShell::SetView(SwView* pVw)
{
- if ( 0 != (pView = pVw) )
- pWrtShell = &pView->GetWrtShell();
- else
- pWrtShell = 0;
+ bool bChanged(false);
+
+ if(0 != (pView = pVw))
+ {
+ pWrtShell = &pView->GetWrtShell();
+ bChanged = true;
+ }
+ else
+ {
+ pWrtShell = 0;
+ bChanged = true;
+ }
+
+ if(bChanged)
+ {
+ // #121125# SwXTextDocument may hold references to the ViewShell, so inform
+ // it about changes to allow to react on it. This happens e.g. when printing
+ // and/or PDF export (SwViewOptionAdjust_Impl holds a reference to the view
+ // and needs to be destroyed)
+ uno::Reference< text::XTextDocument > xDoc(GetBaseModel(), uno::UNO_QUERY);
+ ((SwXTextDocument*)xDoc.get())->ReactOnViewShellChange();
+ }
}
Modified: openoffice/trunk/main/sw/source/ui/uno/unotxdoc.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sw/source/ui/uno/unotxdoc.cxx?rev=1490593&r1=1490592&r2=1490593&view=diff
==============================================================================
--- openoffice/trunk/main/sw/source/ui/uno/unotxdoc.cxx (original)
+++ openoffice/trunk/main/sw/source/ui/uno/unotxdoc.cxx Fri Jun 7 11:35:51 2013
@@ -3504,6 +3504,23 @@ uno::Sequence< lang::Locale > SAL_CALL S
return aLanguages;
}
+// #121125# react on ViewShell change; a reference to the ViewShell is
+// held in SwViewOptionAdjust_Impl, thus needs to be cleaned up
+void SwXTextDocument::ReactOnViewShellChange()
+{
+ if(m_pRenderData)
+ {
+ delete m_pRenderData;
+ m_pRenderData = NULL;
+ }
+
+ if(m_pPrintUIOptions)
+ {
+ delete m_pPrintUIOptions;
+ m_pPrintUIOptions = NULL;
+ }
+}
+
/* -----------------25.10.99 11:06-------------------
--------------------------------------------------*/