summaryrefslogtreecommitdiffstats
path: root/src/sp-rect.cpp
diff options
context:
space:
mode:
authorMarkus Engel <markus.engel@tum.de>2013-04-01 21:50:52 +0000
committerMarkus Engel <markus.engel@tum.de>2013-04-01 21:50:52 +0000
commit7504b21ce73f7f2d3787ab5f363b5e5acc721a23 (patch)
tree9923f639e4c7862b40ffef2e3f21bec5b3be9f23 /src/sp-rect.cpp
parentReplaced calls to g_object_(un)ref with sp_object_(un)ref. (diff)
downloadinkscape-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.cpp14
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;