diff --git a/native/jni/src/suggest/core/dictionary/terminal_attributes.h b/native/jni/src/suggest/core/dictionary/terminal_attributes.h
index cec47081e1e9149ee6ea26abb193d5d2374e3485..a8520b1f15ada9c516764021797603cb0783c381 100644
--- a/native/jni/src/suggest/core/dictionary/terminal_attributes.h
+++ b/native/jni/src/suggest/core/dictionary/terminal_attributes.h
@@ -76,12 +76,13 @@ class TerminalAttributes {
               mNodeFlags(nodeFlags), mShortcutListSizePos(shortcutPos) {}
 
     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;
-        BinaryDictionaryTerminalAttributesReadingUtils::getShortcutListSizeAndForwardPointer(
-                mBinaryDictionaryInfo, &shortcutPos);
         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);
     }