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

Commit 256937b4 authored by Ken Wakasa's avatar Ken Wakasa Committed by Android (Google) Code Review
Browse files

Merge "Fix getChildrenPosition."

parents 59418672 d0c87576
Loading
Loading
Loading
Loading
+9 −2
Original line number Original line Diff line number Diff line
@@ -758,9 +758,16 @@ public class BinaryDictEncoderUtils {
            final FormatOptions formatOptions) {
            final FormatOptions formatOptions) {
        int positionOfChildrenPosField = ptNode.mCachedAddressAfterUpdate
        int positionOfChildrenPosField = ptNode.mCachedAddressAfterUpdate
                + getNodeHeaderSize(ptNode, formatOptions);
                + getNodeHeaderSize(ptNode, formatOptions);
        if (ptNode.mFrequency >= 0) {
        if (ptNode.isTerminal()) {
            // A terminal node has either the terminal id or the frequency.
            // If positionOfChildrenPosField is incorrect, we may crash when jumping to the children
            // position.
            if (formatOptions.mHasTerminalId) {
                positionOfChildrenPosField += FormatSpec.PTNODE_TERMINAL_ID_SIZE;
            } else {
                positionOfChildrenPosField += FormatSpec.PTNODE_FREQUENCY_SIZE;
                positionOfChildrenPosField += FormatSpec.PTNODE_FREQUENCY_SIZE;
            }
            }
        }
        return null == ptNode.mChildren ? FormatSpec.NO_CHILDREN_ADDRESS
        return null == ptNode.mChildren ? FormatSpec.NO_CHILDREN_ADDRESS
                : ptNode.mChildren.mCachedAddressAfterUpdate - positionOfChildrenPosField;
                : ptNode.mChildren.mCachedAddressAfterUpdate - positionOfChildrenPosField;
    }
    }