summaryrefslogtreecommitdiffstats
path: root/src/display
diff options
context:
space:
mode:
authorMenTaLguY <mental@rydia.net>2006-03-15 04:07:41 +0000
committermental <mental@users.sourceforge.net>2006-03-15 04:07:41 +0000
commitf6f201213db27d2aae22264c4d7770884b8c6ea9 (patch)
treefab3322ab8affa723d736ba9bc1ac669d658fb43 /src/display
parentshared_ptr -> ptr_shared (diff)
downloadinkscape-f6f201213db27d2aae22264c4d7770884b8c6ea9.tar.gz
inkscape-f6f201213db27d2aae22264c4d7770884b8c6ea9.zip
Replace GC::Managed<>::clearOnceInaccessible with GC::soft_ptr<>
(bzr r241)
Diffstat (limited to 'src/display')
-rw-r--r--src/display/nr-arena-item.cpp7
-rw-r--r--src/display/nr-arena-item.h9
2 files changed, 4 insertions, 12 deletions
diff --git a/src/display/nr-arena-item.cpp b/src/display/nr-arena-item.cpp
index ccabe7b28..e816460b9 100644
--- a/src/display/nr-arena-item.cpp
+++ b/src/display/nr-arena-item.cpp
@@ -63,13 +63,6 @@ nr_arena_item_class_init (NRArenaItemClass *klass)
object_class->cpp_ctor = NRObject::invoke_ctor<NRArenaItem>;
}
-NRArenaItem::NRArenaItem() {
- // clear all reverse-pointing pointers before finalization
- clearOnceInaccessible(&arena);
- clearOnceInaccessible(&parent);
- clearOnceInaccessible(&prev);
-}
-
static void
nr_arena_item_init (NRArenaItem *item)
{
diff --git a/src/display/nr-arena-item.h b/src/display/nr-arena-item.h
index f43152ff9..737fed879 100644
--- a/src/display/nr-arena-item.h
+++ b/src/display/nr-arena-item.h
@@ -56,6 +56,7 @@
#include <libnr/nr-rect-l.h>
#include <libnr/nr-pixblock.h>
#include <libnr/nr-object.h>
+#include "gc-soft-ptr.h"
#include "nr-arena-forward.h"
// My testing shows that disabling cache reduces the amount
@@ -70,12 +71,10 @@ struct NRGC {
};
struct NRArenaItem : public NRObject {
- NRArenaItem();
-
- NRArena *arena;
- NRArenaItem *parent;
+ Inkscape::GC::soft_ptr<NRArena> arena;
+ Inkscape::GC::soft_ptr<NRArenaItem> parent;
NRArenaItem *next;
- NRArenaItem *prev;
+ Inkscape::GC::soft_ptr<NRArenaItem> prev;
/* Item state */
unsigned int state : 16;