include/vcl/dialog.hxx | 2 +- vcl/README.lifecycle | 4 ++-- vcl/qa/cppunit/lifecycle.cxx | 1 - 3 files changed, 3 insertions(+), 4 deletions(-)
New commits: commit b55ee51befef86a32a996b4dc55014c21b45ef5c Author: Caolán McNamara <[email protected]> AuthorDate: Sat Jun 1 21:53:32 2019 +0100 Commit: Caolán McNamara <[email protected]> CommitDate: Sun Jun 2 16:43:35 2019 +0200 no direct ModelessDialog instantiation left Change-Id: If31cf3c02ab714f45ebbc0139e0e77102b5eb2ba Reviewed-on: https://gerrit.libreoffice.org/73325 Tested-by: Jenkins Reviewed-by: Caolán McNamara <[email protected]> Tested-by: Caolán McNamara <[email protected]> diff --git a/include/vcl/dialog.hxx b/include/vcl/dialog.hxx index 2b3b1f29f2e6..3748dbd943d5 100644 --- a/include/vcl/dialog.hxx +++ b/include/vcl/dialog.hxx @@ -188,7 +188,7 @@ class VCL_DLLPUBLIC ModelessDialog : public Dialog ModelessDialog (const ModelessDialog &) = delete; ModelessDialog & operator= (const ModelessDialog &) = delete; -public: +protected: explicit ModelessDialog( vcl::Window* pParent, const OUString& rID, const OUString& rUIXMLDescription, Dialog::InitFlag eFlag = Dialog::InitFlag::Default ); }; diff --git a/vcl/README.lifecycle b/vcl/README.lifecycle index dc6286210780..d9d186425b64 100644 --- a/vcl/README.lifecycle +++ b/vcl/README.lifecycle @@ -308,11 +308,11 @@ ways and often both. Window that has already been destroyed. This can easily happen via this sort of pattern: - ModelessDialog *pDlg = VclPtr<ModelessDialog>(nullptr /* parent */); + ModalDialog *pDlg = VclPtr<ModalDialog>(nullptr /* parent */); // by here the pDlg quite probably points to free'd memory... It is necessary in these cases to ensure that the *pDlg is - a VclPtr<ModelessDialog> instead. + a VclPtr<ModalDialog> instead. ** It crashes with some invalid memory #2... diff --git a/vcl/qa/cppunit/lifecycle.cxx b/vcl/qa/cppunit/lifecycle.cxx index 118114736c6a..98db6704e28a 100644 --- a/vcl/qa/cppunit/lifecycle.cxx +++ b/vcl/qa/cppunit/lifecycle.cxx @@ -299,7 +299,6 @@ void LifecycleTest::testLeakage() aObjects.push_back(LeakTestObject::Create<VclVButtonBox>(xVBox)); } - aObjects.push_back(LeakTestObject::Create<ModelessDialog>(xParent, "PrintProgressDialog", "vcl/ui/printprogressdialog.ui")); aObjects.push_back(LeakTestObject::Create<ModalDialog>(xParent, "PrintProgressDialog", "vcl/ui/printprogressdialog.ui")); xParent.clear(); _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
