summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThorsten Behrens <tbehrens@suse.com>2013-05-08 20:37:45 +0200
committerThorsten Behrens <tbehrens@suse.com>2013-05-15 11:22:29 +0200
commit5ce2944df838fca58808c34dd035a7318dfc1b90 (patch)
tree99122632ba1d521a9112cfd911ca113485be26cb
parent87018a47b879bdf942e4ac4124a161aab928806d (diff)
Don't leak all of the EMF+ graphic objects.
Change-Id: I7951a9d25da5feec997dd0643f8579f5bcd0ee0f (cherry picked from commit 569f6b41c6d7dcdcc65a2d6a75018a3266936532)
-rw-r--r--cppcanvas/source/inc/implrenderer.hxx6
-rw-r--r--cppcanvas/source/mtfrenderer/emfplus.cxx5
-rw-r--r--cppcanvas/source/mtfrenderer/implrenderer.cxx3
3 files changed, 8 insertions, 6 deletions
diff --git a/cppcanvas/source/inc/implrenderer.hxx b/cppcanvas/source/inc/implrenderer.hxx
index 453736825e9b..4d5918bd4609 100644
--- a/cppcanvas/source/inc/implrenderer.hxx
+++ b/cppcanvas/source/inc/implrenderer.hxx
@@ -54,9 +54,13 @@ namespace cppcanvas
{
struct OutDevState;
struct ActionFactoryParameters;
- struct EMFPObject;
struct XForm;
+ struct EMFPObject
+ {
+ virtual ~EMFPObject() {}
+ };
+
// state stack of OutputDevice, to correctly handle
// push/pop actions
class VectorOfOutDevStates
diff --git a/cppcanvas/source/mtfrenderer/emfplus.cxx b/cppcanvas/source/mtfrenderer/emfplus.cxx
index 2c80e1d99b78..4c0aca695fc7 100644
--- a/cppcanvas/source/mtfrenderer/emfplus.cxx
+++ b/cppcanvas/source/mtfrenderer/emfplus.cxx
@@ -117,11 +117,6 @@ namespace cppcanvas
s.Seek (pos);
});
- struct EMFPObject
- {
- virtual ~EMFPObject() {}
- };
-
struct EMFPPath : public EMFPObject
{
::basegfx::B2DPolyPolygon aPolygon;
diff --git a/cppcanvas/source/mtfrenderer/implrenderer.cxx b/cppcanvas/source/mtfrenderer/implrenderer.cxx
index 1f3872bba33e..5d697bbb3ecc 100644
--- a/cppcanvas/source/mtfrenderer/implrenderer.cxx
+++ b/cppcanvas/source/mtfrenderer/implrenderer.cxx
@@ -3044,6 +3044,9 @@ namespace cppcanvas
ImplRenderer::~ImplRenderer()
{
+ // don't leak EMFPObjects
+ for(unsigned int i=0; i<SAL_N_ELEMENTS(aObjects); ++i)
+ delete aObjects[i];
}
bool ImplRenderer::drawSubset( sal_Int32 nStartIndex,