Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 19640f78 authored by Ivan Lozano's avatar Ivan Lozano Committed by Android (Google) Code Review
Browse files

Merge "Fix audioflinger in integer sanitized builds."

parents 94b22368 e02bc544
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -3312,9 +3312,13 @@ bool AudioFlinger::PlaybackThread::threadLoop()
                        // 2. threadLoop_mix (significant for heavy mixing, especially
                        //                    on low tier processors)

                        // it's OK if deltaMs is an overestimate.
                        const int32_t deltaMs =
                                (lastWriteFinished - previousLastWriteFinished) / 1000000;
                        // it's OK if deltaMs (and deltaNs) is an overestimate.
                        nsecs_t deltaNs;
                        // deltaNs = lastWriteFinished - previousLastWriteFinished;
                        __builtin_sub_overflow(
                            lastWriteFinished,previousLastWriteFinished, &deltaNs);
                        const int32_t deltaMs = deltaNs / 1000000;

                        const int32_t throttleMs = mHalfBufferMs - deltaMs;
                        if ((signed)mHalfBufferMs >= throttleMs && throttleMs > 0) {
                            usleep(throttleMs * 1000);
+2 −1
Original line number Diff line number Diff line
@@ -64,7 +64,8 @@ constexpr uint64_t FNV_prime<uint64_t>() {
}

template <typename T, size_t n>
constexpr T fnv1a(const char (&file)[n], int i = n - 1) {
__attribute__((no_sanitize("unsigned-integer-overflow")))
constexpr T fnv1a(const char (&file)[n], ssize_t i = (ssize_t)n - 1) {
    return i == -1 ? offset_basis<T>() : (fnv1a<T>(file, i - 1) ^ file[i]) * FNV_prime<T>();
}