Be more const-correct
authorSimon McVittie <simon.mcvittie@collabora.co.uk>
Fri, 7 Oct 2016 16:41:01 +0000 (17:41 +0100)
committerSimon McVittie <smcv@debian.org>
Thu, 13 Oct 2016 16:20:28 +0000 (17:20 +0100)
commit8db5ca900fd84ea1c055cd15600dfe352e542df5
tree72c37822da382f513fff45acc5d90811c5f9701f
parentcc7df2fbf944d53ec6bbed499ef1e054bdfa0eb9
Be more const-correct

As a general design principle, strings that we aren't going to modify
should usually be const. When compiling with -Wwrite-strings, quoted
string constants are of type "const char *", causing compiler warnings
when they are assigned to char * variables.

Unfortunately, we need to add casts in a few places:

* _dbus_list_append(), _dbus_test_oom_handling() and similar generic
  "user-data" APIs take a void *, not a const void *, so we have
  to cast
* For historical reasons the execve() family of functions take a
  (char * const *), i.e. a constant pointer to an array of mutable
  strings, so again we have to cast
* _dbus_spawn_async_with_babysitter similarly takes a char **,
  although we can make it a little more const-correct by making it
  take (char * const *) like execve() does

This also incorporates a subsequent patch by Thomas Zimmermann to
put various string constants in static storage, which is a little
more efficient.

Signed-off-by: Simon McVittie <smcv@debian.org>
Reviewed-by: Thomas Zimmermann <tdz@users.sourceforge.net>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=97357
19 files changed:
bus/config-parser.c
bus/desktop-file.c
bus/driver.c
bus/test-launch-helper.c
bus/test-main.c
bus/test-system.c
dbus/dbus-connection.c
dbus/dbus-spawn-test.c
dbus/dbus-spawn-win.c
dbus/dbus-spawn.c
dbus/dbus-spawn.h
dbus/dbus-sysdeps-unix.c
dbus/dbus-sysdeps-win.c
test/name-test/test-pending-call-dispatch.c
test/name-test/test-pending-call-timeout.c
test/name-test/test-threads-init.c
tools/dbus-launch-win.c
tools/dbus-launch-x11.c
tools/dbus-uuidgen.c