Bug 618422 - Fix MSVC warning in profiler (r=dmandelin)
authorBill McCloskey <wmccloskey@mozilla.com>
Thu, 30 Dec 2010 14:16:13 -0800
changeset 59972 6545473b75b4ebe7af494d243b3ec5e4dfe79005
parent 59971 b139e168fbf00b363a15edca33ac10b935289176
child 59973 68f2d2c8114519fb8c1913a73013f665c6b738d3
push id17820
push usercleary@mozilla.com
push dateTue, 04 Jan 2011 21:40:57 +0000
treeherdermozilla-central@969691cfe40e [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersdmandelin
bugs618422
milestone2.0b9pre
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 618422 - Fix MSVC warning in profiler (r=dmandelin)
js/src/jstracer.cpp
js/src/jstracer.h
--- a/js/src/jstracer.cpp
+++ b/js/src/jstracer.cpp
@@ -17047,20 +17047,21 @@ LoopProfile::decide(JSContext *cx)
             if (prof) {
                 /*
                  * Note that execOK for the inner loop is left unchanged. So even
                  * if we trace the inner loop, we will never call that trace
                  * on its own. We'll only call it from this trace.
                  */
                 prof->profiled = true;
                 prof->traceOK = true;
-                if (IsBlacklisted(loop.top))
+                if (IsBlacklisted(loop.top)) {
                     debug_only_printf(LC_TMProfiler, "Unblacklisting at %d\n",
                                       js_PCToLineNumber(cx, loop.script, loop.top));
-                Unblacklist(loop.script, loop.top);
+                    Unblacklist(loop.script, loop.top);
+                }
             }
         }
     }
 
     if (!traceOK) {
         debug_only_printf(LC_TMProfiler, "Blacklisting at %d\n", line);
         Blacklist(top);
     }
--- a/js/src/jstracer.h
+++ b/js/src/jstracer.h
@@ -226,18 +226,18 @@ public:
     TreeFragment* root;
 
     TreeFragment* toTreeFragment();
 };
 
 #ifdef NJ_NO_VARIADIC_MACROS
 
 #define debug_only_stmt(action)            /* */
-static void debug_only_printf(int mask, const char *fmt, ...) {}
-#define debug_only_print0(mask, str)       /* */
+static void debug_only_printf(int mask, const char *fmt, ...) JS_BEGIN_MACRO JS_END_MACRO
+#define debug_only_print0(mask, str)       JS_BEGIN_MACRO JS_END_MACRO
 
 #elif defined(JS_JIT_SPEW)
 
 // Top level logging controller object.
 extern nanojit::LogControl LogController;
 
 // Top level profiling hook, needed to harvest profile info from Fragments
 // whose logical lifetime is about to finish
@@ -260,18 +260,18 @@ extern void FragProfiling_FragFinalizer(
             LogController.printf("%s", str);                                   \
             fflush(stdout);                                                    \
         }                                                                      \
     JS_END_MACRO
 
 #else
 
 #define debug_only_stmt(action)            /* */
-#define debug_only_printf(mask, fmt, ...)  /* */
-#define debug_only_print0(mask, str)       /* */
+#define debug_only_printf(mask, fmt, ...)  JS_BEGIN_MACRO JS_END_MACRO
+#define debug_only_print0(mask, str)       JS_BEGIN_MACRO JS_END_MACRO
 
 #endif
 
 /*
  * The oracle keeps track of hit counts for program counter locations, as
  * well as slots that should not be demoted to int because we know them to
  * overflow or they result in type-unstable traces. We are using simple
  * hash tables.  Collisions lead to loss of optimization (demotable slots