summaryrefslogtreecommitdiff
path: root/glib/glibmm/main.cc
diff options
context:
space:
mode:
authorKjell Ahlstedt <kjellahlstedt@gmail.com>2018-07-17 16:22:13 +0200
committerKjell Ahlstedt <kjellahlstedt@gmail.com>2018-07-17 16:22:13 +0200
commit6bc4f4e20fe3a3c60b786140dc3b1f5fc9028e29 (patch)
tree00836c0894cfab7102c3d89da313b9584393e8a2 /glib/glibmm/main.cc
parentd3ca7e5e260dcf96fe3da8a04fadcd0e4e944971 (diff)
downloadglibmm-6bc4f4e20fe3a3c60b786140dc3b1f5fc9028e29.tar.gz
Avoid compiler warnings from function pointer conversions
gcc8 -Wextra prints a warning when reinterpret_cast is used for conversion between different types of function pointers. Avoid that by adding Glib::bitwise_equivalent_cast<>() with a union with members of the two types of function pointers. * glib/src/optiongroup.ccg: Use Glib::bitwise_equivalent_cast<>() to convert from a function pointer to void*. See https://github.com/libsigcplusplus/libsigcplusplus/issues/1
Diffstat (limited to 'glib/glibmm/main.cc')
-rw-r--r--glib/glibmm/main.cc7
1 files changed, 4 insertions, 3 deletions
diff --git a/glib/glibmm/main.cc b/glib/glibmm/main.cc
index 7edb8f41..15200099 100644
--- a/glib/glibmm/main.cc
+++ b/glib/glibmm/main.cc
@@ -18,6 +18,7 @@
#include <glibmm/exceptionhandler.h>
#include <glibmm/wrap.h>
#include <glibmm/iochannel.h>
+#include <glibmm/utility.h>
#include <algorithm>
namespace
@@ -507,7 +508,7 @@ SignalChildWatch::connect(const sigc::slot<void(GPid, int)>& slot, GPid pid, int
if (priority != G_PRIORITY_DEFAULT)
g_source_set_priority(source, priority);
- g_source_set_callback(source, (GSourceFunc)&glibmm_child_watch_callback,
+ g_source_set_callback(source, Glib::bitwise_equivalent_cast<GSourceFunc>(&glibmm_child_watch_callback),
conn_node,
&glibmm_source_destroy_notify_callback);
@@ -1231,13 +1232,13 @@ IOSource::IOSource(PollFD::fd_t fd, IOCondition condition) : poll_fd_(fd, condit
IOSource::IOSource(const Glib::RefPtr<IOChannel>& channel, IOCondition condition)
: Source(g_io_create_watch(channel->gobj(), (GIOCondition)condition),
- (GSourceFunc)&glibmm_iosource_callback)
+ Glib::bitwise_equivalent_cast<GSourceFunc>(&glibmm_iosource_callback))
{
}
IOSource::IOSource(GIOChannel* channel, IOCondition condition)
: Source(g_io_create_watch(channel, (GIOCondition)condition),
- (GSourceFunc)&glibmm_iosource_callback)
+ Glib::bitwise_equivalent_cast<GSourceFunc>(&glibmm_iosource_callback))
{
}