diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/common/mac/dump_syms.h | 2 | ||||
-rw-r--r-- | src/common/mac/dump_syms.mm | 9 | ||||
-rw-r--r-- | src/common/mac/dwarf/dwarf2reader.cc | 12 | ||||
-rw-r--r-- | src/common/mac/dwarf/dwarf2reader.h | 5 | ||||
-rw-r--r-- | src/common/mac/dwarf/functioninfo.cc | 21 | ||||
-rw-r--r-- | src/google_breakpad/processor/basic_source_line_resolver.h | 24 | ||||
-rw-r--r-- | src/processor/basic_source_line_resolver.cc | 13 |
7 files changed, 3 insertions, 83 deletions
diff --git a/src/common/mac/dump_syms.h b/src/common/mac/dump_syms.h index 12d8f7d6..5ed3e3b6 100644 --- a/src/common/mac/dump_syms.h +++ b/src/common/mac/dump_syms.h @@ -37,7 +37,7 @@ // This will map from an architecture string to a SectionMap, which // will contain the offsets for all the sections in the dictionary -typedef hash_map<string, dwarf2reader::SectionMap *> ArchSectionMap; +typedef map<string, dwarf2reader::SectionMap *> ArchSectionMap; @interface DumpSymbols : NSObject { @protected diff --git a/src/common/mac/dump_syms.mm b/src/common/mac/dump_syms.mm index 73e4f76a..8f0b9fe1 100644 --- a/src/common/mac/dump_syms.mm +++ b/src/common/mac/dump_syms.mm @@ -68,15 +68,6 @@ static NSString *kHeaderCPUTypeKey = @"cpuType"; // for pruning out extraneous non-function symbols. static const int kTextSection = 1; -namespace __gnu_cxx { -template<> - struct hash<std::string> { - size_t operator()(const std::string& k) const { - return hash< const char* >()( k.c_str() ); - } -}; -} - // Dump FunctionMap to stdout. Print address, function name, file // name, line number, lowpc, and highpc if available. void DumpFunctionMap(const dwarf2reader::FunctionMap function_map) { diff --git a/src/common/mac/dwarf/dwarf2reader.cc b/src/common/mac/dwarf/dwarf2reader.cc index 6e7a2f1d..dd21561d 100644 --- a/src/common/mac/dwarf/dwarf2reader.cc +++ b/src/common/mac/dwarf/dwarf2reader.cc @@ -26,7 +26,6 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -#include <ext/hash_map> #include <stack> #include <utility> @@ -35,17 +34,6 @@ #include "common/mac/dwarf/bytereader.h" #include "common/mac/dwarf/line_state_machine.h" -namespace __gnu_cxx -{ - template<> struct hash< std::string > - { - size_t operator()( const std::string& x ) const - { - return hash< const char* >()( x.c_str() ); - } - }; -} - namespace dwarf2reader { // Read a DWARF2/3 initial length field from START, using READER, and diff --git a/src/common/mac/dwarf/dwarf2reader.h b/src/common/mac/dwarf/dwarf2reader.h index f27cdac7..cb47d97f 100644 --- a/src/common/mac/dwarf/dwarf2reader.h +++ b/src/common/mac/dwarf/dwarf2reader.h @@ -36,8 +36,8 @@ #ifndef COMMON_MAC_DWARF_DWARF2READER_H__ #define COMMON_MAC_DWARF_DWARF2READER_H__ -#include <ext/hash_map> #include <list> +#include <map> #include <string> #include <utility> #include <vector> @@ -46,7 +46,6 @@ #include "common/mac/dwarf/types.h" using namespace std; -using namespace __gnu_cxx; namespace dwarf2reader { struct LineStateMachine; @@ -56,7 +55,7 @@ class LineInfoHandler; // This maps from a string naming a section to a pair containing a // the data for the section, and the size of the section. -typedef hash_map<string, pair<const char*, uint64> > SectionMap; +typedef map<string, pair<const char*, uint64> > SectionMap; typedef list<pair<enum DwarfAttribute, enum DwarfForm> > AttributeList; typedef AttributeList::iterator AttributeIterator; typedef AttributeList::const_iterator ConstAttributeIterator; diff --git a/src/common/mac/dwarf/functioninfo.cc b/src/common/mac/dwarf/functioninfo.cc index 267d6cf9..3501c035 100644 --- a/src/common/mac/dwarf/functioninfo.cc +++ b/src/common/mac/dwarf/functioninfo.cc @@ -39,27 +39,6 @@ #include "common/mac/dwarf/bytereader.h" -namespace __gnu_cxx { - -// Implement a string hash function so that std::string can be used as a key -// in STL maps and sets. The hash algorithm comes from the GNU C++ library, -// in <tr1/functional>. It is duplicated here because GCC versions prior to -// 4.3.2 are unable to compile <tr1/functional> when RTTI is disabled, as it -// may be in this code. - -template<> -struct hash<std::string> { - std::size_t operator()(const std::string& s) const { - std::size_t result = 0; - for (std::string::const_iterator i = s.begin(); i != s.end(); ++i) - result = (result * 131) + *i; - return result; - } -}; - -} // namespace __gnu_cxx - - namespace dwarf2reader { // Given an offset value, its form, and the base offset of the diff --git a/src/google_breakpad/processor/basic_source_line_resolver.h b/src/google_breakpad/processor/basic_source_line_resolver.h index 38759579..c01cc685 100644 --- a/src/google_breakpad/processor/basic_source_line_resolver.h +++ b/src/google_breakpad/processor/basic_source_line_resolver.h @@ -33,28 +33,14 @@ #ifndef GOOGLE_BREAKPAD_PROCESSOR_BASIC_SOURCE_LINE_RESOLVER_H__ #define GOOGLE_BREAKPAD_PROCESSOR_BASIC_SOURCE_LINE_RESOLVER_H__ -// TODO: Platforms that have no hash_map can use map, at the likely cost of -// performance. -#ifdef __SUNPRO_CC -#define BSLR_NO_HASH_MAP -#endif // __SUNPRO_CC - -#ifdef BSLR_NO_HASH_MAP #include <map> -#else // BSLR_NO_HASH_MAP -#include <ext/hash_map> -#endif // BSLR_NO_HASH_MAP #include "google_breakpad/processor/source_line_resolver_interface.h" namespace google_breakpad { using std::string; -#ifdef BSLR_NO_HASH_MAP using std::map; -#else // BSLR_NO_HASH_MAP -using __gnu_cxx::hash_map; -#endif // BSLR_NO_HASH_MAP class BasicSourceLineResolver : public SourceLineResolverInterface { public: @@ -85,23 +71,13 @@ class BasicSourceLineResolver : public SourceLineResolverInterface { struct Function; struct PublicSymbol; struct File; -#ifdef BSLR_NO_HASH_MAP struct CompareString { bool operator()(const string &s1, const string &s2) const; }; -#else // BSLR_NO_HASH_MAP - struct HashString { - size_t operator()(const string &s) const; - }; -#endif // BSLR_NO_HASH_MAP class Module; // All of the modules we've loaded -#ifdef BSLR_NO_HASH_MAP typedef map<string, Module*, CompareString> ModuleMap; -#else // BSLR_NO_HASH_MAP - typedef hash_map<string, Module*, HashString> ModuleMap; -#endif // BSLR_NO_HASH_MAP ModuleMap *modules_; // Disallow unwanted copy ctor and assignment operator diff --git a/src/processor/basic_source_line_resolver.cc b/src/processor/basic_source_line_resolver.cc index fe04439e..63a94a3a 100644 --- a/src/processor/basic_source_line_resolver.cc +++ b/src/processor/basic_source_line_resolver.cc @@ -51,9 +51,6 @@ using std::map; using std::vector; using std::make_pair; -#ifndef BSLR_NO_HASH_MAP -using __gnu_cxx::hash; -#endif // BSLR_NO_HASH_MAP namespace google_breakpad { @@ -125,11 +122,7 @@ class BasicSourceLineResolver::Module { private: friend class BasicSourceLineResolver; -#ifdef BSLR_NO_HASH_MAP typedef map<int, string> FileMap; -#else // BSLR_NO_HASH_MAP - typedef hash_map<int, string> FileMap; -#endif // BSLR_NO_HASH_MAP // The types for stack_info_. This is equivalent to MS DIA's // StackFrameTypeEnum. Each identifies a different type of frame @@ -702,15 +695,9 @@ bool BasicSourceLineResolver::Module::ParseStackInfo(char *stack_info_line) { return true; } -#ifdef BSLR_NO_HASH_MAP bool BasicSourceLineResolver::CompareString::operator()( const string &s1, const string &s2) const { return strcmp(s1.c_str(), s2.c_str()) < 0; } -#else // BSLR_NO_HASH_MAP -size_t BasicSourceLineResolver::HashString::operator()(const string &s) const { - return hash<const char*>()(s.c_str()); -} -#endif // BSLR_NO_HASH_MAP } // namespace google_breakpad |