mirror of
https://git.suyu.dev/suyu/breakpad.git
synced 2025-12-25 16:54:43 +01:00
Allow Breakpad processor library to build on Solaris with the native Sun
toolchain (#142). Patch by Alfred Peng. r=me. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@213 4c0a9323-5329-0410-9bdc-e9ce6186880e
This commit is contained in:
parent
7e2b64f5fd
commit
0e6f5c95d7
8 changed files with 44 additions and 4 deletions
|
|
@ -33,14 +33,28 @@
|
|||
#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:
|
||||
|
|
@ -65,13 +79,23 @@ 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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue