Merge "Fix: Reading invalid dictionary position."

main
Keisuke Kuroynagi 2013-07-02 09:42:52 +00:00 committed by Android (Google) Code Review
commit 07718a5e7d
1 changed files with 5 additions and 4 deletions

View File

@ -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;
BinaryDictionaryTerminalAttributesReadingUtils::getShortcutListSizeAndForwardPointer(
mBinaryDictionaryInfo, &shortcutPos);
const bool hasShortcutList = 0 != (mNodeFlags & BinaryFormat::FLAG_HAS_SHORTCUT_TARGETS); const bool hasShortcutList = 0 != (mNodeFlags & BinaryFormat::FLAG_HAS_SHORTCUT_TARGETS);
if (hasShortcutList) {
BinaryDictionaryTerminalAttributesReadingUtils::getShortcutListSizeAndForwardPointer(
mBinaryDictionaryInfo, &shortcutPos);
}
// shortcutPos is never used if hasShortcutList is false.
return ShortcutIterator(mBinaryDictionaryInfo, shortcutPos, hasShortcutList); return ShortcutIterator(mBinaryDictionaryInfo, shortcutPos, hasShortcutList);
} }