Beware macro argument multiple expansion...

This commit is contained in:
Brendan Eich 2008-08-11 14:44:22 -07:00
parent a2af1922f6
commit 0280e606df

View File

@ -2668,8 +2668,9 @@ js_Interpret(JSContext *cx)
: normalJumpTable)) : normalJumpTable))
# define ENABLE_TRACER(flag) \ # define ENABLE_TRACER(flag) \
JS_BEGIN_MACRO \ JS_BEGIN_MACRO \
JS_ASSERT((flag) == !!JS_TRACE_MONITOR(cx).recorder); \ bool flag_ = (flag); \
jumpTable = (flag) ? recordingJumpTable : normalJumpTable; \ JS_ASSERT(flag_ == !!JS_TRACE_MONITOR(cx).recorder); \
jumpTable = flag_ ? recordingJumpTable : normalJumpTable; \
JS_END_MACRO JS_END_MACRO
#else #else
# define LOAD_INTERRUPT_HANDLER(cx) \ # define LOAD_INTERRUPT_HANDLER(cx) \
@ -2678,8 +2679,9 @@ js_Interpret(JSContext *cx)
? 0 : 255)) ? 0 : 255))
# define ENABLE_TRACER(flag) \ # define ENABLE_TRACER(flag) \
JS_BEGIN_MACRO \ JS_BEGIN_MACRO \
JS_ASSERT((flag) == !!JS_TRACE_MONITOR(cx).recorder); \ bool flag_ = (flag); \
switchMask = (flag) ? 0 : 255; \ JS_ASSERT(flag_ == !!JS_TRACE_MONITOR(cx).recorder); \
switchMask = flag_ ? 0 : 255; \
JS_END_MACRO JS_END_MACRO
#endif #endif