diff options
author | Kjell Ahlstedt <kjellahlstedt@gmail.com> | 2018-07-17 16:22:13 +0200 |
---|---|---|
committer | Kjell Ahlstedt <kjellahlstedt@gmail.com> | 2018-07-17 16:22:13 +0200 |
commit | 6bc4f4e20fe3a3c60b786140dc3b1f5fc9028e29 (patch) | |
tree | 00836c0894cfab7102c3d89da313b9584393e8a2 /glib/glibmm/main.cc | |
parent | d3ca7e5e260dcf96fe3da8a04fadcd0e4e944971 (diff) | |
download | glibmm-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.cc | 7 |
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)) { } |