aboutsummaryrefslogtreecommitdiffstats
path: root/main/xulrunner/fix-tools.patch
diff options
context:
space:
mode:
Diffstat (limited to 'main/xulrunner/fix-tools.patch')
-rw-r--r--main/xulrunner/fix-tools.patch17
1 files changed, 17 insertions, 0 deletions
diff --git a/main/xulrunner/fix-tools.patch b/main/xulrunner/fix-tools.patch
index bd468991ec..b0a6d4fbcc 100644
--- a/main/xulrunner/fix-tools.patch
+++ b/main/xulrunner/fix-tools.patch
@@ -30,3 +30,20 @@
#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;
+ }
+