AU: Include the manifest size in the delta payload usage report.

BUG=none
TEST=generated delta reports

Change-Id: I515953377757616ced2c2520396bab88e59b4474

Review URL: http://codereview.chromium.org/3707006
diff --git a/delta_diff_generator.cc b/delta_diff_generator.cc
index 4b3ad95..c330f6c 100644
--- a/delta_diff_generator.cc
+++ b/delta_diff_generator.cc
@@ -464,7 +464,8 @@
 };
 
 void ReportPayloadUsage(const Graph& graph,
-                        const DeltaArchiveManifest& manifest) {
+                        const DeltaArchiveManifest& manifest,
+                        const int64_t manifest_metadata_size) {
   vector<DeltaObject> objects;
   off_t total_size = 0;
 
@@ -490,6 +491,11 @@
     total_size += op.data_length();
   }
 
+  objects.push_back(DeltaObject("<manifest-metadata>",
+                                -1,
+                                manifest_metadata_size));
+  total_size += manifest_metadata_size;
+
   std::sort(objects.begin(), objects.end());
 
   static const char kFormatString[] = "%6.2f%% %10llu %-10s %s\n";
@@ -499,7 +505,7 @@
     fprintf(stderr, kFormatString,
             object.size * 100.0 / total_size,
             object.size,
-            kInstallOperationTypes[object.type],
+            object.type >= 0 ? kInstallOperationTypes[object.type] : "-",
             object.name.c_str());
   }
   fprintf(stderr, kFormatString, 100.0, total_size, "", "<total>");
@@ -1482,7 +1488,9 @@
                           static_cast<ssize_t>(signature_blob.size()));
   }
 
-  ReportPayloadUsage(graph, manifest);
+  int64_t manifest_metadata_size =
+      strlen(kDeltaMagic) + 2 * sizeof(uint64_t) + serialized_manifest.size();
+  ReportPayloadUsage(graph, manifest, manifest_metadata_size);
 
   LOG(INFO) << "All done. Successfully created delta file.";
   return true;