Fix: Reading invalid dictionary position.
Bug: 6669677 Change-Id: I3f4078aaa8cf72f3b366e7851457e9c753c0102fmain
parent
b6f5d3e39d
commit
f6aa9e9a1d
|
@ -76,12 +76,13 @@ class TerminalAttributes {
|
||||||
mNodeFlags(nodeFlags), mShortcutListSizePos(shortcutPos) {}
|
mNodeFlags(nodeFlags), mShortcutListSizePos(shortcutPos) {}
|
||||||
|
|
||||||
inline ShortcutIterator getShortcutIterator() const {
|
inline ShortcutIterator getShortcutIterator() const {
|
||||||
// The size of the shortcuts is stored here so that the whole shortcut chunk can be
|
|
||||||
// skipped quickly, so we ignore it.
|
|
||||||
int shortcutPos = mShortcutListSizePos;
|
int shortcutPos = mShortcutListSizePos;
|
||||||
|
const bool hasShortcutList = 0 != (mNodeFlags & BinaryFormat::FLAG_HAS_SHORTCUT_TARGETS);
|
||||||
|
if (hasShortcutList) {
|
||||||
BinaryDictionaryTerminalAttributesReadingUtils::getShortcutListSizeAndForwardPointer(
|
BinaryDictionaryTerminalAttributesReadingUtils::getShortcutListSizeAndForwardPointer(
|
||||||
mBinaryDictionaryInfo, &shortcutPos);
|
mBinaryDictionaryInfo, &shortcutPos);
|
||||||
const bool hasShortcutList = 0 != (mNodeFlags & BinaryFormat::FLAG_HAS_SHORTCUT_TARGETS);
|
}
|
||||||
|
// shortcutPos is never used if hasShortcutList is false.
|
||||||
return ShortcutIterator(mBinaryDictionaryInfo, shortcutPos, hasShortcutList);
|
return ShortcutIterator(mBinaryDictionaryInfo, shortcutPos, hasShortcutList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue