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_);
 }