Fix overflow sanitizer in EffectVisualizer.
This makes an implicit conversion to a signed integer explicit before
the unsigned integer overflow happens. This was causing runtime errors
on integer sanitized builds.
runtime error: unsigned integer overflow: 1664 - 4096 cannot be
represented in type 'unsigned int'
Bug: 30969751
Test: Compiles.
Change-Id: I1d4b5ab024e94c19ff448110064340125cd01e01
Merged-In: I1d4b5ab024e94c19ff448110064340125cd01e01
diff --git a/media/libeffects/visualizer/EffectVisualizer.cpp b/media/libeffects/visualizer/EffectVisualizer.cpp
index 0e82339..c33f9f5 100644
--- a/media/libeffects/visualizer/EffectVisualizer.cpp
+++ b/media/libeffects/visualizer/EffectVisualizer.cpp
@@ -594,7 +594,7 @@
deltaSmpl = CAPTURE_BUF_SIZE;
}
- int32_t capturePoint = pContext->mCaptureIdx - deltaSmpl;
+ int32_t capturePoint = (int32_t)pContext->mCaptureIdx - deltaSmpl;
// a negative capturePoint means we wrap the buffer.
if (capturePoint < 0) {
uint32_t size = -capturePoint;