This is the second example I've seen in two days concerning misuse of CHECK_ macros. They expand into an if statement after the call, so can not appear on calls that are part of a return statement, or a conditional statement, or likely a number of other places, as the if code either becomes unreachable or else does not do what may be expected.

David
-----

On 23/09/2016 2:04 AM, Brent Christian wrote:
Hi,

Looks like my 8165372 change broke the slowdebug build.  Please review
my fix (which also breaks up a pretty long line):

--- a/src/share/vm/prims/stackwalk.cpp
+++ b/src/share/vm/prims/stackwalk.cpp
@@ -331,10 +331,12 @@
     assert (use_frames_array(mode), "Bad mode for get live frame");
     RegisterMap regMap(jt, true);
     LiveFrameStream stream(jt, &regMap);
-    return fetchFirstBatch(stream, stackStream, mode, skip_frames,
frame_count, start_index, frames_array, CHECK_NULL);
+    return fetchFirstBatch(stream, stackStream, mode, skip_frames,
frame_count,
+                           start_index, frames_array, THREAD);
   } else {
     JavaFrameStream stream(jt, mode);
-    return fetchFirstBatch(stream, stackStream, mode, skip_frames,
frame_count, start_index, frames_array, CHECK_NULL);
+    return fetchFirstBatch(stream, stackStream, mode, skip_frames,
frame_count,
+                           start_index, frames_array, THREAD);
   }
 }

Thanks!
-Brent

Reply via email to