Fix: wrong bigram entry pos can be used during GC.

Bug: 14425059
Change-Id: I4e7c977c5ef184953682175b118de5473cdb64a6
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/bigram/ver4_bigram_list_policy.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/bigram/ver4_bigram_list_policy.cpp
index 146cab6..08dc107 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/bigram/ver4_bigram_list_policy.cpp
+++ b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/bigram/ver4_bigram_list_policy.cpp
@@ -175,9 +175,9 @@
     bool hasNext = true;
     int readingPos = bigramListPos;
     while (hasNext) {
-        const int entryPos = readingPos;
         const BigramEntry bigramEntry =
                 mBigramDictContent->getBigramEntryAndAdvancePosition(&readingPos);
+        const int entryPos = readingPos - mBigramDictContent->getBigramEntrySize();
         hasNext = bigramEntry.hasNext();
         if (!bigramEntry.isValid()) {
             continue;
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_writing_helper.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_writing_helper.cpp
index 40fdfa0..0e658f8 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_writing_helper.cpp
+++ b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_writing_helper.cpp
@@ -242,9 +242,9 @@
         bool hasNext = true;
         int readingPos = bigramListPos;
         while (hasNext) {
-            const int entryPos = readingPos;
             const BigramEntry bigramEntry =
                     bigramDictContent->getBigramEntryAndAdvancePosition(&readingPos);
+            const int entryPos = readingPos - bigramDictContent->getBigramEntrySize();
             hasNext = bigramEntry.hasNext();
             if (!bigramEntry.isValid()) {
                 continue;