diff options
| author | Markus Engel <markus.engel@tum.de> | 2013-04-01 21:50:52 +0000 |
|---|---|---|
| committer | Markus Engel <markus.engel@tum.de> | 2013-04-01 21:50:52 +0000 |
| commit | 7504b21ce73f7f2d3787ab5f363b5e5acc721a23 (patch) | |
| tree | 9923f639e4c7862b40ffef2e3f21bec5b3be9f23 /src/sp-rect.cpp | |
| parent | Replaced calls to g_object_(un)ref with sp_object_(un)ref. (diff) | |
| download | inkscape-7504b21ce73f7f2d3787ab5f363b5e5acc721a23.tar.gz inkscape-7504b21ce73f7f2d3787ab5f363b5e5acc721a23.zip | |
Added experimental constructor to SPRect. Memory leaks because of non-virtual destructor.
(bzr r11608.1.66)
Diffstat (limited to 'src/sp-rect.cpp')
| -rw-r--r-- | src/sp-rect.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/sp-rect.cpp b/src/sp-rect.cpp index 7ab9854d4..3d06e8304 100644 --- a/src/sp-rect.cpp +++ b/src/sp-rect.cpp @@ -31,7 +31,7 @@ #define noRECT_VERBOSE -G_DEFINE_TYPE(SPRect, sp_rect, SP_TYPE_SHAPE); +G_DEFINE_TYPE(SPRect, sp_rect, G_TYPE_OBJECT); static void sp_rect_class_init(SPRectClass *klass) @@ -45,9 +45,9 @@ CRect::CRect(SPRect* rect) : CShape(rect) { CRect::~CRect() { } -static void -sp_rect_init(SPRect *rect) -{ +SPRect::SPRect() : SPShape() { + SPRect* rect = this; + rect->crect = new CRect(rect); rect->typeHierarchy.insert(typeid(SPRect)); @@ -66,6 +66,12 @@ sp_rect_init(SPRect *rect) /* sp_svg_length_unset(&rect->ry, SP_SVG_UNIT_NONE, 0.0, 0.0); */ } +static void +sp_rect_init(SPRect *rect) +{ + new (rect) SPRect(); +} + void CRect::build(SPDocument* doc, Inkscape::XML::Node* repr) { SPRect* object = this->sprect; |
