summaryrefslogtreecommitdiffstats
path: root/src/sp-use.cpp
diff options
context:
space:
mode:
authorMarkus Engel <markus.engel@tum.de>2013-04-01 23:41:30 +0000
committerMarkus Engel <markus.engel@tum.de>2013-04-01 23:41:30 +0000
commit69f3b6f1abb2bb422935d43262e1e99aab359954 (patch)
treee1e2d2b0504d22e81b04501155995f5694a4cd7b /src/sp-use.cpp
parentAdded experimental constructor to SPRect. Memory leaks because of non-virtual... (diff)
downloadinkscape-69f3b6f1abb2bb422935d43262e1e99aab359954.tar.gz
inkscape-69f3b6f1abb2bb422935d43262e1e99aab359954.zip
Added constructors to SP classes.
(bzr r11608.1.67)
Diffstat (limited to 'src/sp-use.cpp')
-rw-r--r--src/sp-use.cpp16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/sp-use.cpp b/src/sp-use.cpp
index 64a167014..f146ef1db 100644
--- a/src/sp-use.cpp
+++ b/src/sp-use.cpp
@@ -47,7 +47,7 @@ static void sp_use_delete_self(SPObject *deleted, SPUse *self);
//void m_print(gchar *say, Geom::Affine m)
//{ g_print("%s %g %g %g %g %g %g\n", say, m[0], m[1], m[2], m[3], m[4], m[5]); }
-G_DEFINE_TYPE(SPUse, sp_use, SP_TYPE_ITEM);
+G_DEFINE_TYPE(SPUse, sp_use, G_TYPE_OBJECT);
static void
sp_use_class_init(SPUseClass *classname)
@@ -63,9 +63,9 @@ CUse::CUse(SPUse* use) : CItem(use) {
CUse::~CUse() {
}
-static void
-sp_use_init(SPUse *use)
-{
+SPUse::SPUse() : SPItem() {
+ SPUse* use = this;
+
use->cuse = new CUse(use);
use->typeHierarchy.insert(typeid(SPUse));
@@ -73,6 +73,8 @@ sp_use_init(SPUse *use)
use->citem = use->cuse;
use->cobject = use->cuse;
+ use->child = NULL;
+
use->x.unset();
use->y.unset();
use->width.unset(SVGLength::PERCENT, 1.0, 1.0);
@@ -90,6 +92,12 @@ sp_use_init(SPUse *use)
}
static void
+sp_use_init(SPUse *use)
+{
+ new (use) SPUse();
+}
+
+static void
sp_use_finalize(GObject *obj)
{
SPUse *use = reinterpret_cast<SPUse *>(obj);