diff options
author | Szilárd Pfeiffer <szilard.pfeiffer@gmail.com> | 2008-08-18 11:27:25 +0000 |
---|---|---|
committer | Murray Cumming <murrayc@src.gnome.org> | 2008-08-18 11:27:25 +0000 |
commit | 39182710355b53403196b36ad15793511dcd21a0 (patch) | |
tree | 6314d7072147bcf5b3788d4bb3c798186d7f1d7f /glib/src/nodetree.hg | |
parent | 439e00dcc3107d9bf159fad74cfc134acb87518e (diff) | |
download | glibmm-39182710355b53403196b36ad15793511dcd21a0.tar.gz |
Fixed pointer handling problem in find_child. Bug #547909.
2008-08-15 Szilárd Pfeiffer <szilard.pfeiffer@gmail.com>
* glib/src/nodetree.hg: Fixed pointer handling problem in find_child.
Bug #547909.
svn path=/trunk/; revision=717
Diffstat (limited to 'glib/src/nodetree.hg')
-rw-r--r-- | glib/src/nodetree.hg | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/glib/src/nodetree.hg b/glib/src/nodetree.hg index fc55ae70..09679b9b 100644 --- a/glib/src/nodetree.hg +++ b/glib/src/nodetree.hg @@ -310,10 +310,10 @@ public: */ NodeTree<T>* find_child(const T& data, TraverseFlags flags = TRAVERSE_ALL) { - sigc::slot<void, GNode*, const T&, GNode*> real_slot = sigc::ptr_fun(on_compare_child); + sigc::slot<void, GNode*, const T&, GNode**> real_slot = sigc::ptr_fun(on_compare_child); GNode* child = 0; - type_foreach_gnode_slot bound_slot = sigc::bind(real_slot, data, child); + type_foreach_gnode_slot bound_slot = sigc::bind(real_slot, data, &child); g_node_children_foreach(gobj(), (GTraverseFlags)flags, c_callback_foreach_compare_child, reinterpret_cast<gpointer>(&bound_slot)); @@ -660,11 +660,11 @@ private: } /// Method for comparing a single child (Internal use). - static void on_compare_child(GNode* node, const T& needle, GNode* result) + static void on_compare_child(GNode* node, const T& needle, GNode** result) { if((0 != result) && (wrap(node)->data() == needle)) { - result = node; + *result = node; } } |