summaryrefslogtreecommitdiffstats
path: root/sord/sordmm.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'sord/sordmm.hpp')
-rw-r--r--sord/sordmm.hpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/sord/sordmm.hpp b/sord/sordmm.hpp
index ba59ed9..4f3b609 100644
--- a/sord/sordmm.hpp
+++ b/sord/sordmm.hpp
@@ -171,12 +171,14 @@ public:
}
}
- const Node& operator=(const Node& other) {
- if (_c_obj) {
- sord_node_free(_world->c_obj(), _c_obj);
+ Node& operator=(const Node& other) {
+ if (&other != this) {
+ if (_c_obj) {
+ sord_node_free(_world->c_obj(), _c_obj);
+ }
+ _world = other._world;
+ _c_obj = other._c_obj ? sord_node_copy(other._c_obj) : NULL;
}
- _world = other._world;
- _c_obj = other._c_obj ? sord_node_copy(other._c_obj) : NULL;
return *this;
}