diff options
Diffstat (limited to 'testing/firefox/fix-tools.patch')
-rw-r--r-- | testing/firefox/fix-tools.patch | 66 |
1 files changed, 37 insertions, 29 deletions
diff --git a/testing/firefox/fix-tools.patch b/testing/firefox/fix-tools.patch index b0a6d4fbcc1..86185870f03 100644 --- a/testing/firefox/fix-tools.patch +++ b/testing/firefox/fix-tools.patch @@ -1,5 +1,26 @@ ---- mozilla-release.orig/tools/profiler/local_debug_info_symbolizer.cc -+++ mozilla-release/tools/profiler/local_debug_info_symbolizer.cc +diff --git a/tools/profiler/LulElf.cpp b/tools/profiler/LulElf.cpp +index 203b15d..08a270a 100644 +--- a/tools/profiler/LulElf.cpp ++++ b/tools/profiler/LulElf.cpp +@@ -612,10 +612,10 @@ string FormatIdentifier(unsigned char identifier[16]) { + // Return the non-directory portion of FILENAME: the portion after the + // last slash, or the whole filename if there are no slashes. + string BaseFileName(const string &filename) { +- // Lots of copies! basename's behavior is less than ideal. +- char *c_filename = strdup(filename.c_str()); +- string base = basename(c_filename); +- free(c_filename); ++ // basename's behavior is less than ideal so avoid it ++ const char *c_filename = filename.c_str(); ++ const char *p = strrchr(c_filename, '/'); ++ string base = p ? p+1 : c_filename; + return base; + } + +diff --git a/tools/profiler/local_debug_info_symbolizer.cc b/tools/profiler/local_debug_info_symbolizer.cc +index 2232130..41dabc8 100644 +--- a/tools/profiler/local_debug_info_symbolizer.cc ++++ b/tools/profiler/local_debug_info_symbolizer.cc @@ -3,6 +3,7 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ @@ -8,19 +29,23 @@ #include "PlatformMacros.h" #include "nsAutoPtr.h" ---- mozilla-release.orig/tools/profiler/platform-linux.cc -+++ mozilla-release/tools/profiler/platform-linux.cc -@@ -84,7 +84,7 @@ - - #define SIGNAL_SAVE_PROFILE SIGUSR2 +diff --git a/tools/profiler/platform-linux-lul.h b/tools/profiler/platform-linux-lul.h +index 64714aa..563d8c0 100644 +--- a/tools/profiler/platform-linux-lul.h ++++ b/tools/profiler/platform-linux-lul.h +@@ -18,7 +18,7 @@ logging_sink_for_LUL(const char* str); + // We need a definition of gettid(), but glibc doesn't provide a + // wrapper for it. -#if defined(__GLIBC__) -+#if 1 - // glibc doesn't implement gettid(2). ++#if defined(__linux__) + #include <unistd.h> #include <sys/syscall.h> - pid_t gettid() ---- mozilla-release.orig/tools/profiler/platform.h -+++ mozilla-release/tools/profiler/platform.h + static inline pid_t gettid() +diff --git a/tools/profiler/platform.h b/tools/profiler/platform.h +index bb938a4..c721926 100644 +--- a/tools/profiler/platform.h ++++ b/tools/profiler/platform.h @@ -29,6 +29,8 @@ #ifndef TOOLS_PLATFORM_H_ #define TOOLS_PLATFORM_H_ @@ -30,20 +55,3 @@ #ifdef ANDROID #include <android/log.h> #else ---- mozilla-release.orig/tools/profiler/LulElf.cpp -+++ mozilla-release/tools/profiler/LulElf.cpp -@@ -579,10 +579,10 @@ - // Return the non-directory portion of FILENAME: the portion after the - // last slash, or the whole filename if there are no slashes. - string BaseFileName(const string &filename) { -- // Lots of copies! basename's behavior is less than ideal. -- char *c_filename = strdup(filename.c_str()); -- string base = basename(c_filename); -- free(c_filename); -+ // basename's behavior is less than ideal so avoid it -+ const char *c_filename = filename.c_str(); -+ const char *p = strrchr(c_filename, '/'); -+ string base = p ? p+1 : c_filename; - return base; - } - |