diff options
author | Andreas Volz <andreas.volz@tux-style.com> | 2016-03-06 18:15:54 +0100 |
---|---|---|
committer | Andreas Volz <andreas.volz@tux-style.com> | 2016-03-06 18:15:54 +0100 |
commit | 39720279656d37bd12f731166524e3b8cb736b0d (patch) | |
tree | 906d8cd96691991bdb2c5709d02f55ceab75273d | |
parent | 9e97cdbcc029da35b5341777de092fa16908fb52 (diff) | |
parent | 021325e5e5cec6fe618f7ac6bcc2f5a20f40f07f (diff) | |
download | dbus-c++-39720279656d37bd12f731166524e3b8cb736b0d.tar.gz |
Merge pull request #1 from steffen-kiess/fix-copy-containers
Fix copying containers
-rw-r--r-- | src/message.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/message.cpp b/src/message.cpp index 3f0cac4..eacea92 100644 --- a/src/message.cpp +++ b/src/message.cpp @@ -346,13 +346,17 @@ void MessageIter::copy_data(MessageIter &to) debug_log("copying compound type: %c[%s]", from.type(), sig); MessageIter to_container(to.msg()); - dbus_message_iter_open_container + dbus_bool_t ret = dbus_message_iter_open_container ( (DBusMessageIter *) & (to._iter), from.type(), - from.type() == DBUS_TYPE_VARIANT ? NULL : sig, + (from.type() == DBUS_TYPE_VARIANT || from.type() == DBUS_TYPE_ARRAY) ? sig : NULL, (DBusMessageIter *) & (to_container._iter) ); + if (!ret) + { + throw ErrorNoMemory("Unable to append container"); + } from_container.copy_data(to_container); to.close_container(to_container); |