diff options
author | nealsid <nealsid@4c0a9323-5329-0410-9bdc-e9ce6186880e> | 2009-02-23 09:28:29 +0000 |
---|---|---|
committer | nealsid <nealsid@4c0a9323-5329-0410-9bdc-e9ce6186880e> | 2009-02-23 09:28:29 +0000 |
commit | 4af5fe0b593f5d79aee8c54f6bc1542b1deed87e (patch) | |
tree | 86f57a6b88d3d730d3f0b06a9214d7e0dfbaf495 /src | |
parent | See https://bugzilla.mozilla.org/show_bug.cgi?id=397200 (diff) | |
download | breakpad-4af5fe0b593f5d79aee8c54f6bc1542b1deed87e.tar.xz |
Fix build breaks on Solaris using Sun Studio.
Written by Ginn Chen & Eagle.Lu@
R=nealsid (although I don't have a Solaris machine to build on, & these changes look localized to Sun-only builds)
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@314 4c0a9323-5329-0410-9bdc-e9ce6186880e
Diffstat (limited to 'src')
-rw-r--r-- | src/common/solaris/dump_symbols.cc | 7 | ||||
-rw-r--r-- | src/google_breakpad/common/minidump_cpu_ppc.h | 8 |
2 files changed, 12 insertions, 3 deletions
diff --git a/src/common/solaris/dump_symbols.cc b/src/common/solaris/dump_symbols.cc index a0697ff9..816d744c 100644 --- a/src/common/solaris/dump_symbols.cc +++ b/src/common/solaris/dump_symbols.cc @@ -176,7 +176,9 @@ inline void RecalculateOffset(struct slist* cur_list, char *stabstr) { // Demangle using demangle library on Solaris. std::string Demangle(const char *mangled) { int status = 0; + std::string str(mangled); char *demangled = (char *)malloc(demangleLen); + if (!demangled) { fprintf(stderr, "no enough memory.\n"); goto out; @@ -188,12 +190,11 @@ std::string Demangle(const char *mangled) { goto out; } - std::string str(demangled); + str = demangled; free(demangled); - return str; out: - return std::string(mangled); + return str; } bool WriteFormat(int fd, const char *fmt, ...) { diff --git a/src/google_breakpad/common/minidump_cpu_ppc.h b/src/google_breakpad/common/minidump_cpu_ppc.h index 40a64931..038e921a 100644 --- a/src/google_breakpad/common/minidump_cpu_ppc.h +++ b/src/google_breakpad/common/minidump_cpu_ppc.h @@ -107,7 +107,11 @@ typedef struct { /* Use the same 32-bit alignment when accessing this structure from 64-bit code * as is used natively in 32-bit code. #pragma pack is a MSVC extension * supported by gcc. */ +#if defined(__SUNPRO_C) || defined(__SUNPRO_CC) +#pragma pack(4) +#else #pragma pack(push, 4) +#endif typedef struct { /* context_flags is not present in ppc_thread_state, but it aids @@ -136,7 +140,11 @@ typedef struct { MDVectorSaveAreaPPC vector_save; } MDRawContextPPC; /* Based on ppc_thread_state */ +#if defined(__SUNPRO_C) || defined(__SUNPRO_CC) +#pragma pack(0) +#else #pragma pack(pop) +#endif /* For (MDRawContextPPC).context_flags. These values indicate the type of * context stored in the structure. MD_CONTEXT_PPC is Breakpad-defined. Its |