diff --git a/native/jni/src/correction.cpp b/native/jni/src/correction.cpp
index e892c85..afedd29 100644
--- a/native/jni/src/correction.cpp
+++ b/native/jni/src/correction.cpp
@@ -112,7 +112,7 @@
     mMaxErrors = maxErrors;
 }
 
-void Correction::checkState() {
+void Correction::checkState() const {
     if (DEBUG_DICT) {
         int inputCount = 0;
         if (mSkipPos >= 0) ++inputCount;
@@ -121,12 +121,12 @@
     }
 }
 
-bool Correction::sameAsTyped() {
+bool Correction::sameAsTyped() const {
     return mProximityInfoState.sameAsTyped(mWord, mOutputIndex);
 }
 
 int Correction::getFreqForSplitMultipleWords(const int *freqArray, const int *wordLengthArray,
-        const int wordCount, const bool isSpaceProximity, const int *word) {
+        const int wordCount, const bool isSpaceProximity, const int *word) const {
     return Correction::RankingAlgorithm::calcFreqForSplitMultipleWords(freqArray, wordLengthArray,
             wordCount, this, isSpaceProximity, word);
 }
diff --git a/native/jni/src/correction.h b/native/jni/src/correction.h
index 89e300d..0873dae 100644
--- a/native/jni/src/correction.h
+++ b/native/jni/src/correction.h
@@ -64,8 +64,8 @@
     void setCorrectionParams(const int skipPos, const int excessivePos, const int transposedPos,
             const int spaceProximityPos, const int missingSpacePos, const bool useFullEditDistance,
             const bool doAutoCompletion, const int maxErrors);
-    void checkState();
-    bool sameAsTyped();
+    void checkState() const;
+    bool sameAsTyped() const;
     bool initProcessState(const int index);
 
     int getInputIndex() const;
@@ -77,7 +77,7 @@
     }
 
     int getFreqForSplitMultipleWords(const int *freqArray, const int *wordLengthArray,
-            const int wordCount, const bool isSpaceProximity, const int *word);
+            const int wordCount, const bool isSpaceProximity, const int *word) const;
     int getFinalProbability(const int probability, int **word, int *wordLength);
     int getFinalProbabilityForSubQueue(const int probability, int **word, int *wordLength,
             const int inputSize);
diff --git a/native/jni/src/words_priority_queue.h b/native/jni/src/words_priority_queue.h
index e0833ce..8a22f05 100644
--- a/native/jni/src/words_priority_queue.h
+++ b/native/jni/src/words_priority_queue.h
@@ -87,7 +87,7 @@
         }
     }
 
-    SuggestedWord *top() {
+    SuggestedWord *top() const {
         if (mSuggestions.empty()) return 0;
         SuggestedWord *sw = mSuggestions.top();
         return sw;
