diff --git a/mozilla/gc/boehm/os_dep.c b/mozilla/gc/boehm/os_dep.c index 29eb5bf17e7..ce4780b2857 100644 --- a/mozilla/gc/boehm/os_dep.c +++ b/mozilla/gc/boehm/os_dep.c @@ -2429,8 +2429,6 @@ void GC_save_callers(struct callinfo info[NFRAMES]) #if defined(SAVE_CALL_CHAIN) && defined(LINUX) -#include - #include "call_tree.h" typedef struct stack_frame stack_frame; @@ -2443,10 +2441,8 @@ struct stack_frame { static stack_frame* getStackFrame() { - jmp_buf jb; stack_frame* currentFrame; - setjmp(jb); - currentFrame = (stack_frame*)(jb[0].__jmpbuf[JB_BP]); + currentFrame = (stack_frame*)__builtin_frame_address(0); currentFrame = currentFrame->next; return currentFrame; } diff --git a/mozilla/js/src/jsutil.c b/mozilla/js/src/jsutil.c index 9f052c7446e..02ba56a021d 100644 --- a/mozilla/js/src/jsutil.c +++ b/mozilla/js/src/jsutil.c @@ -66,7 +66,6 @@ JS_PUBLIC_API(void) JS_Assert(const char *s, const char *file, JSIntn ln) #define __USE_GNU 1 #include -#include #include #include "jshash.h" #include "jsprf.h" @@ -170,13 +169,10 @@ CallTree(uint32 *bp) JSCallsite * JS_Backtrace(int skip) { - jmp_buf jb; uint32 *bp, *bpdown; - setjmp(jb); - /* Stack walking code adapted from Kipp's "leaky". */ - bp = (uint32*) jb[0].__jmpbuf[JB_BP]; + bp = (uint32*) __builtin_frame_address(0); while (--skip >= 0) { bpdown = (uint32*) *bp++; if (bpdown < bp) diff --git a/mozilla/tools/trace-malloc/lib/nsTraceMalloc.c b/mozilla/tools/trace-malloc/lib/nsTraceMalloc.c index 2092ad03d31..283f5feaca9 100644 --- a/mozilla/tools/trace-malloc/lib/nsTraceMalloc.c +++ b/mozilla/tools/trace-malloc/lib/nsTraceMalloc.c @@ -51,7 +51,6 @@ #include #include #include -#include #ifdef XP_UNIX #include #include @@ -1339,7 +1338,6 @@ backtrace(int skip) callsite * backtrace(int skip) { - jmp_buf jb; uint32 *bp, *bpdown; callsite *site, **key; PLHashNumber hash; @@ -1348,10 +1346,9 @@ backtrace(int skip) tmstats.backtrace_calls++; suppress_tracing++; - setjmp(jb); /* Stack walking code adapted from Kipp's "leaky". */ - bp = (uint32*) jb[0].__jmpbuf[JB_BP]; + bp = (uint32*) __builtin_frame_address(0); while (--skip >= 0) { bpdown = (uint32*) *bp++; if (bpdown < bp)