summaryrefslogtreecommitdiff
path: root/glib/src/nodetree.hg
diff options
context:
space:
mode:
authorSzilárd Pfeiffer <szilard.pfeiffer@gmail.com>2008-08-18 11:27:25 +0000
committerMurray Cumming <murrayc@src.gnome.org>2008-08-18 11:27:25 +0000
commit39182710355b53403196b36ad15793511dcd21a0 (patch)
tree6314d7072147bcf5b3788d4bb3c798186d7f1d7f /glib/src/nodetree.hg
parent439e00dcc3107d9bf159fad74cfc134acb87518e (diff)
downloadglibmm-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.hg8
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;
}
}