| Index: snapshot/minidump/minidump_simple_string_dictionary_reader.cc
|
| diff --git a/snapshot/minidump/minidump_simple_string_dictionary_reader.cc b/snapshot/minidump/minidump_simple_string_dictionary_reader.cc
|
| index 685266d74d5450da9eddcacad8263ca1ca8a154f..88399452be5fbc0f8f57d08b0a9231b088e0e77e 100644
|
| --- a/snapshot/minidump/minidump_simple_string_dictionary_reader.cc
|
| +++ b/snapshot/minidump/minidump_simple_string_dictionary_reader.cc
|
| @@ -28,8 +28,9 @@ bool ReadMinidumpSimpleStringDictionary(
|
| FileReaderInterface* file_reader,
|
| const MINIDUMP_LOCATION_DESCRIPTOR& location,
|
| std::map<std::string, std::string>* dictionary) {
|
| + dictionary->clear();
|
| +
|
| if (location.Rva == 0) {
|
| - dictionary->clear();
|
| return true;
|
| }
|
|
|
| @@ -48,7 +49,8 @@ bool ReadMinidumpSimpleStringDictionary(
|
| }
|
|
|
| if (location.DataSize !=
|
| - entry_count * sizeof(MinidumpSimpleStringDictionaryEntry)) {
|
| + sizeof(MinidumpSimpleStringDictionary) +
|
| + entry_count * sizeof(MinidumpSimpleStringDictionaryEntry)) {
|
| LOG(ERROR) << "simple_string_dictionary size mismatch";
|
| return false;
|
| }
|
| @@ -73,15 +75,14 @@ bool ReadMinidumpSimpleStringDictionary(
|
| continue;
|
| }
|
|
|
| - if (local_dictionary.find(key) != local_dictionary.end()) {
|
| + if (dictionary->find(key) != dictionary->end()) {
|
| LOG(WARNING) << "duplicate key " << key << ", discarding value " << value;
|
| continue;
|
| }
|
|
|
| - local_dictionary.insert(std::make_pair(key, value));
|
| + dictionary->insert(std::make_pair(key, value));
|
| }
|
|
|
| - dictionary->swap(local_dictionary);
|
| return true;
|
| }
|
|
|
|
|