From 77acc6adabb7ff90a2de3636b48ee1ad2c52f525 Mon Sep 17 00:00:00 2001 From: "rsesek@chromium.org" Date: Wed, 24 Apr 2013 18:15:48 +0000 Subject: Rewrite SimpleStringDictionary with NonAllocatingMap. NonAllocatingMap has a near-identical interface, but is significantly less code, more customizable, and has storage that is POD. BUG=http://code.google.com/p/chromium/issues/detail?id=77656 Review URL: https://breakpad.appspot.com/568002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1161 4c0a9323-5329-0410-9bdc-e9ce6186880e --- src/client/ios/Breakpad.mm | 10 ++++------ src/client/mac/Framework/Breakpad.mm | 6 ++---- src/client/mac/crash_generation/ConfigFile.mm | 10 +++++----- src/client/mac/crash_generation/Inspector.h | 11 ++++++----- 4 files changed, 17 insertions(+), 20 deletions(-) (limited to 'src/client') diff --git a/src/client/ios/Breakpad.mm b/src/client/ios/Breakpad.mm index 39f4dc07..e8c4240b 100644 --- a/src/client/ios/Breakpad.mm +++ b/src/client/ios/Breakpad.mm @@ -67,9 +67,7 @@ using google_breakpad::ConfigFile; using google_breakpad::EnsureDirectoryPathExists; -using google_breakpad::KeyValueEntry; using google_breakpad::SimpleStringDictionary; -using google_breakpad::SimpleStringDictionaryIterator; //============================================================================= // We want any memory allocations which are used by breakpad during the @@ -469,10 +467,10 @@ void Breakpad::UploadData(NSData *data, NSString *name, NSDictionary *server_parameters) { NSMutableDictionary *config = [NSMutableDictionary dictionary]; - SimpleStringDictionaryIterator it(*config_params_); - while (const KeyValueEntry *next = it.Next()) { - [config setValue:[NSString stringWithUTF8String:next->GetValue()] - forKey:[NSString stringWithUTF8String:next->GetKey()]]; + SimpleStringDictionary::Iterator it(*config_params_); + while (const SimpleStringDictionary::Entry *next = it.Next()) { + [config setValue:[NSString stringWithUTF8String:next->value] + forKey:[NSString stringWithUTF8String:next->key]]; } Uploader *uploader = diff --git a/src/client/mac/Framework/Breakpad.mm b/src/client/mac/Framework/Breakpad.mm index 71555e8f..8967be1e 100644 --- a/src/client/mac/Framework/Breakpad.mm +++ b/src/client/mac/Framework/Breakpad.mm @@ -66,13 +66,11 @@ #define catch(X) if (false) #endif // __EXCEPTIONS -using google_breakpad::KeyValueEntry; using google_breakpad::MachPortSender; using google_breakpad::MachReceiveMessage; using google_breakpad::MachSendMessage; using google_breakpad::ReceivePort; using google_breakpad::SimpleStringDictionary; -using google_breakpad::SimpleStringDictionaryIterator; //============================================================================= // We want any memory allocations which are used by breakpad during the @@ -697,8 +695,8 @@ bool Breakpad::HandleException(int exception_type, if (result == KERN_SUCCESS) { // Now, send a series of key-value pairs to the Inspector. - const KeyValueEntry *entry = NULL; - SimpleStringDictionaryIterator iter(*config_params_); + const SimpleStringDictionary::Entry *entry = NULL; + SimpleStringDictionary::Iterator iter(*config_params_); while ( (entry = iter.Next()) ) { KeyValueMessageData keyvalue_data(*entry); diff --git a/src/client/mac/crash_generation/ConfigFile.mm b/src/client/mac/crash_generation/ConfigFile.mm index 0b7f0e15..7ff25378 100644 --- a/src/client/mac/crash_generation/ConfigFile.mm +++ b/src/client/mac/crash_generation/ConfigFile.mm @@ -166,15 +166,15 @@ void ConfigFile::WriteFile(const char* directory, BOOL result = YES; const SimpleStringDictionary &dictionary = *configurationParameters; - const KeyValueEntry *entry = NULL; - SimpleStringDictionaryIterator iter(dictionary); + const SimpleStringDictionary::Entry *entry = NULL; + SimpleStringDictionary::Iterator iter(dictionary); while ((entry = iter.Next())) { DEBUGLOG(stderr, "config: (%s) -> (%s)\n", - entry->GetKey(), - entry->GetValue()); - result = AppendConfigString(entry->GetKey(), entry->GetValue()); + entry->key, + entry->value); + result = AppendConfigString(entry->key, entry->value); if (!result) break; diff --git a/src/client/mac/crash_generation/Inspector.h b/src/client/mac/crash_generation/Inspector.h index 890e2157..4fb62f6b 100644 --- a/src/client/mac/crash_generation/Inspector.h +++ b/src/client/mac/crash_generation/Inspector.h @@ -65,13 +65,14 @@ struct InspectorInfo { struct KeyValueMessageData { public: KeyValueMessageData() {} - KeyValueMessageData(const google_breakpad::KeyValueEntry &inEntry) { - strlcpy(key, inEntry.GetKey(), sizeof(key) ); - strlcpy(value, inEntry.GetValue(), sizeof(value) ); + explicit KeyValueMessageData( + const google_breakpad::SimpleStringDictionary::Entry &inEntry) { + strlcpy(key, inEntry.key, sizeof(key) ); + strlcpy(value, inEntry.value, sizeof(value) ); } - char key[google_breakpad::KeyValueEntry::MAX_STRING_STORAGE_SIZE]; - char value[google_breakpad::KeyValueEntry::MAX_STRING_STORAGE_SIZE]; + char key[google_breakpad::SimpleStringDictionary::key_size]; + char value[google_breakpad::SimpleStringDictionary::value_size]; }; using std::string; -- cgit v1.2.1