libprofile: Clear method bitmap padding bits.

Explicitly clear padding bits instead of zero-initializing
the entire buffer.

Test: atest com.android.cts.dexmetadata.InstallDexMetadataHostTest#testProfileSnapshotAfterInstall
Bug: 201627008
Change-Id: I31655e053f405a8d2903fb7b2e8e7176f5344226
diff --git a/libprofile/profile/profile_compilation_info.cc b/libprofile/profile/profile_compilation_info.cc
index 8fbd1d1..5607e35 100644
--- a/libprofile/profile/profile_compilation_info.cc
+++ b/libprofile/profile/profile_compilation_info.cc
@@ -414,7 +414,7 @@
         ptr_end_(nullptr) {}
 
   explicit SafeBuffer(size_t size)
-      : storage_(new uint8_t[size]()),
+      : storage_(new uint8_t[size]),
         ptr_current_(storage_.get()),
         ptr_end_(ptr_current_ + size) {}
 
@@ -2601,6 +2601,10 @@
     return true;
   });
   DCHECK_EQ(saved_bitmap_index * num_method_ids, saved_bitmap_bit_size);
+  // Clear the padding bits.
+  size_t padding_bit_size = saved_bitmap_byte_size * kBitsPerByte - saved_bitmap_bit_size;
+  BitMemoryRegion padding_region(buffer.GetCurrentPtr(), saved_bitmap_bit_size, padding_bit_size);
+  padding_region.StoreBits(/*bit_offset=*/ 0u, /*value=*/ 0u, /*bit_length=*/ padding_bit_size);
   buffer.Advance(saved_bitmap_byte_size);
 
   uint16_t last_method_index = 0;