Index: media/capture/content/video_capture_oracle.cc |
diff --git a/media/capture/content/video_capture_oracle.cc b/media/capture/content/video_capture_oracle.cc |
index 1a4ed3750c727708fccea44c4753be47e7ecfda1..e6793906d14e2f77dcc89d3f25b05f0d23d478d1 100644 |
--- a/media/capture/content/video_capture_oracle.cc |
+++ b/media/capture/content/video_capture_oracle.cc |
@@ -6,6 +6,7 @@ |
#include <algorithm> |
+#include "base/compiler_specific.h" |
#include "base/format_macros.h" |
#include "base/numerics/safe_conversions.h" |
#include "base/strings/stringprintf.h" |
@@ -384,9 +385,11 @@ void VideoCaptureOracle::SetFrameTimestamp(int frame_number, |
frame_timestamps_[frame_number % kMaxFrameTimestamps] = timestamp; |
} |
-bool VideoCaptureOracle::IsFrameInRecentHistory(int frame_number) const { |
+NOINLINE bool VideoCaptureOracle::IsFrameInRecentHistory( |
+ int frame_number) const { |
// Adding (next_frame_number_ >= 0) helps the compiler deduce that there |
- // is no possibility of overflow here. |
+ // is no possibility of overflow here. NOINLINE is also required to ensure the |
+ // compiler can make this deduction (some compilers fail to otherwise...). |
return (frame_number >= 0 && next_frame_number_ >= 0 && |
frame_number <= next_frame_number_ && |
(next_frame_number_ - frame_number) < kMaxFrameTimestamps); |