mirror of
https://gitlab.futo.org/keyboard/latinime.git
synced 2024-09-28 14:54:30 +01:00
am 256937b4
: Merge "Fix getChildrenPosition."
* commit '256937b475a8183ac8bfa7964188071497d4fe7d': Fix getChildrenPosition.
This commit is contained in:
commit
3255b9dad5
@ -758,8 +758,15 @@ public class BinaryDictEncoderUtils {
|
||||
final FormatOptions formatOptions) {
|
||||
int positionOfChildrenPosField = ptNode.mCachedAddressAfterUpdate
|
||||
+ getNodeHeaderSize(ptNode, formatOptions);
|
||||
if (ptNode.mFrequency >= 0) {
|
||||
positionOfChildrenPosField += FormatSpec.PTNODE_FREQUENCY_SIZE;
|
||||
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;
|
||||
}
|
||||
}
|
||||
return null == ptNode.mChildren ? FormatSpec.NO_CHILDREN_ADDRESS
|
||||
: ptNode.mChildren.mCachedAddressAfterUpdate - positionOfChildrenPosField;
|
||||
|
Loading…
Reference in New Issue
Block a user