[Libreoffice-commits] core.git: Branch 'feature/vclref' - 2 commits - vcl/inc vcl/qa vcl/source
Michael Meeks
michael.meeks at collabora.com
Thu Mar 19 06:51:51 PDT 2015
vcl/inc/svdata.hxx | 2 ++
vcl/qa/cppunit/outdev.cxx | 26 +++++++++++++-------------
vcl/source/app/svdata.cxx | 8 ++++++++
3 files changed, 23 insertions(+), 13 deletions(-)
New commits:
commit 3af9a3aba0d2148e1e0ad93c16e198af05730edc
Author: Michael Meeks <michael.meeks at collabora.com>
Date: Thu Mar 19 13:56:13 2015 +0000
ImplSVGDIData didn't dispose its contents previously; clobber it for now.
Change-Id: I71c877773cbdabe10f617d1d3d7141ebd6d93923
diff --git a/vcl/inc/svdata.hxx b/vcl/inc/svdata.hxx
index a8bbd58..cdba5cd 100644
--- a/vcl/inc/svdata.hxx
+++ b/vcl/inc/svdata.hxx
@@ -152,6 +152,8 @@ struct ImplSVAppData
struct ImplSVGDIData
{
+ ~ImplSVGDIData();
+
VclPtr<OutputDevice> mpFirstWinGraphics; // First OutputDevice with a Frame Graphics
VclPtr<OutputDevice> mpLastWinGraphics; // Last OutputDevice with a Frame Graphics
VclPtr<OutputDevice> mpFirstVirGraphics; // First OutputDevice with a VirtualDevice Graphics
diff --git a/vcl/source/app/svdata.cxx b/vcl/source/app/svdata.cxx
index 4459fad..213f13d 100644
--- a/vcl/source/app/svdata.cxx
+++ b/vcl/source/app/svdata.cxx
@@ -88,6 +88,14 @@ ImplSVData::ImplSVData()
maNWFData.maMenuBarHighlightTextColor = Color( COL_TRANSPARENT );
}
+ImplSVGDIData::~ImplSVGDIData()
+{
+ // FIXME: deliberately leak any remaining OutputDevice
+ // until we have their pGraphics reference counted, doing
+ // any disposes so late in shutdown is rather unsafe.
+ memset( this, 0, sizeof( ImplSVGDIData ) );
+}
+
void ImplDeInitSVData()
{
ImplSVData* pSVData = ImplGetSVData();
commit 01cd8cbebeba7221123ad01b29bc7b3d3a378c59
Author: Michael Meeks <michael.meeks at collabora.com>
Date: Thu Mar 19 13:56:03 2015 +0000
fix VirtualDevice unit test.
Change-Id: I7a1f95ae1d8577114634c62aa89d3c7e1fde62c1
diff --git a/vcl/qa/cppunit/outdev.cxx b/vcl/qa/cppunit/outdev.cxx
index 63d88b8..8377a19 100644
--- a/vcl/qa/cppunit/outdev.cxx
+++ b/vcl/qa/cppunit/outdev.cxx
@@ -32,17 +32,17 @@ public:
void VclOutdevTest::testVirtualDevice()
{
- VirtualDevice aVDev;
- aVDev.SetOutputSizePixel(Size(32,32));
- aVDev.SetBackground(Wallpaper(COL_WHITE));
- aVDev.Erase();
- aVDev.DrawPixel(Point(1,2),COL_BLUE);
- aVDev.DrawPixel(Point(31,30),COL_RED);
-
- Size aSize = aVDev.GetOutputSizePixel();
+ ScopedVclPtr<VirtualDevice> pVDev( new VirtualDevice() );
+ pVDev->SetOutputSizePixel(Size(32,32));
+ pVDev->SetBackground(Wallpaper(COL_WHITE));
+ pVDev->Erase();
+ pVDev->DrawPixel(Point(1,2),COL_BLUE);
+ pVDev->DrawPixel(Point(31,30),COL_RED);
+
+ Size aSize = pVDev->GetOutputSizePixel();
CPPUNIT_ASSERT(aSize == Size(32,32));
- Bitmap aBmp = aVDev.GetBitmap(Point(),aSize);
+ Bitmap aBmp = pVDev->GetBitmap(Point(),aSize);
#if 0
OUString rFileName("/tmp/foo-unx.png");
@@ -56,12 +56,12 @@ void VclOutdevTest::testVirtualDevice()
}
#endif
- CPPUNIT_ASSERT_EQUAL(COL_WHITE, aVDev.GetPixel(Point(0,0)).GetColor());
+ CPPUNIT_ASSERT_EQUAL(COL_WHITE, pVDev->GetPixel(Point(0,0)).GetColor());
#if defined LINUX //TODO: various failures on Mac and Windows tinderboxes
- CPPUNIT_ASSERT_EQUAL(COL_BLUE, aVDev.GetPixel(Point(1,2)).GetColor());
- CPPUNIT_ASSERT_EQUAL(COL_RED, aVDev.GetPixel(Point(31,30)).GetColor());
+ CPPUNIT_ASSERT_EQUAL(COL_BLUE, pVDev->GetPixel(Point(1,2)).GetColor());
+ CPPUNIT_ASSERT_EQUAL(COL_RED, pVDev->GetPixel(Point(31,30)).GetColor());
#endif
- CPPUNIT_ASSERT_EQUAL(COL_WHITE, aVDev.GetPixel(Point(30,31)).GetColor());
+ CPPUNIT_ASSERT_EQUAL(COL_WHITE, pVDev->GetPixel(Point(30,31)).GetColor());
// Gotcha: y and x swap for BitmapReadAccess: deep joy.
Bitmap::ScopedReadAccess pAcc(aBmp);
More information about the Libreoffice-commits
mailing list