summaryrefslogtreecommitdiff
path: root/cppcanvas
diff options
context:
space:
mode:
authorThorsten Behrens <tbehrens@suse.com>2013-05-08 20:37:45 +0200
committerThorsten Behrens <tbehrens@suse.com>2013-05-08 20:50:09 +0200
commit569f6b41c6d7dcdcc65a2d6a75018a3266936532 (patch)
tree3818303c71f3f6a91369a8471dc4cf9319915002 /cppcanvas
parent6bd878b29f43179c396bcb1ee7c0b1038e90007c (diff)
Don't leak all of the EMF+ graphic objects.
Change-Id: I7951a9d25da5feec997dd0643f8579f5bcd0ee0f
Diffstat (limited to 'cppcanvas')
-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 addcdc2f15b1..79a2967f88d6 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 693a57c2e91b..c17c38e9eaa8 100644
--- a/cppcanvas/source/mtfrenderer/emfplus.cxx
+++ b/cppcanvas/source/mtfrenderer/emfplus.cxx
@@ -110,11 +110,6 @@ namespace cppcanvas
}
#endif
- 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 635a5fb3e440..5bc99a529a41 100644
--- a/cppcanvas/source/mtfrenderer/implrenderer.cxx
+++ b/cppcanvas/source/mtfrenderer/implrenderer.cxx
@@ -3038,6 +3038,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,