chrome: dbus: add default MessageReader constructor
There's no need for a dbus::MessageReader to be initialized with
a message, the underlying DBusMessageIter is fully initialized by
dbus_message_iter_recurse() as called by PopArray, etc.
This allows for:
dbus::MessageReader reader;
other_reader->PopArray(&reader);
BUG=none
TEST=verified with arrays, variants and dictionary types.
Change-Id: Id4a9d2de2b28ec3a2da42f822934a39865d9e9ef
Review URL: http://codereview.chromium.org/9342009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@120864 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/dbus/message.cc b/dbus/message.cc
index 2750cb18..bf2c2c3 100644
--- a/dbus/message.cc
+++ b/dbus/message.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -429,7 +429,8 @@
MessageWriter::MessageWriter(Message* message) :
message_(message),
container_is_open_(false) {
- dbus_message_iter_init_append(message_->raw_message(), &raw_message_iter_);
+ if (message)
+ dbus_message_iter_init_append(message_->raw_message(), &raw_message_iter_);
}
MessageWriter::~MessageWriter() {
@@ -665,7 +666,8 @@
MessageReader::MessageReader(Message* message)
: message_(message) {
- dbus_message_iter_init(message_->raw_message(), &raw_message_iter_);
+ if (message)
+ dbus_message_iter_init(message_->raw_message(), &raw_message_iter_);
}