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

Commit bb0bd669 authored by satok's avatar satok
Browse files

Fix correction utility

Bug: 6096247

Change-Id: Ie17c60dde9bd081790b79312ce8d96d292c5128c
parent 96170384
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
#ifndef LATINIME_CORRECTION_H
#define LATINIME_CORRECTION_H

#include <assert.h>
#include <stdint.h>
#include "correction_state.h"

@@ -50,7 +51,14 @@ class Correction {
        const int temp = *base;
        if (temp != S_INT_MAX) {
            // Branch if multiplier == 2 for the optimization
            if (multiplier == 2) {
            if (multiplier < 0) {
                if (DEBUG_DICT) {
                    assert(false);
                }
                AKLOGI("--- Invalid multiplier: %d", multiplier);
            } else if (multiplier == 0) {
                *base = 0;
            } else if (multiplier == 2) {
                *base = TWO_31ST_DIV_2 >= temp ? temp << 1 : S_INT_MAX;
            } else {
                // TODO: This overflow check gives a wrong answer when, for example,