aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKeisuke Kuroyanagi <ksk@google.com>2014-03-10 04:41:52 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2014-03-10 04:41:52 -0700
commit5c4704ffad438e80435d53756795b31a36e13a6d (patch)
tree124dd7a97e62a5930e418580b154ff1ed922a961
parentd300663d7643e2adc01e7d44719d23df999b2e9f (diff)
parentda5b4fb6da45281630ab19684859c30cf0ca05ac (diff)
downloadlatinime-5c4704ffad438e80435d53756795b31a36e13a6d.tar.gz
latinime-5c4704ffad438e80435d53756795b31a36e13a6d.tar.xz
latinime-5c4704ffad438e80435d53756795b31a36e13a6d.zip
am da5b4fb6: Merge "Move initialization logic for from DicNode to DicNodeState."
* commit 'da5b4fb6da45281630ab19684859c30cf0ca05ac': Move initialization logic for from DicNode to DicNodeState.
-rw-r--r--native/jni/src/suggest/core/dicnode/dic_node.h16
-rw-r--r--native/jni/src/suggest/core/dicnode/internal/dic_node_state.h18
2 files changed, 20 insertions, 14 deletions
diff --git a/native/jni/src/suggest/core/dicnode/dic_node.h b/native/jni/src/suggest/core/dicnode/dic_node.h
index 59eff9abb..4f69a84c3 100644
--- a/native/jni/src/suggest/core/dicnode/dic_node.h
+++ b/native/jni/src/suggest/core/dicnode/dic_node.h
@@ -130,21 +130,9 @@ class DicNode {
NOT_A_PROBABILITY /* probability */, false /* isTerminal */,
true /* hasChildren */, false /* isBlacklistedOrNotAWord */, 0 /* depth */,
0 /* terminalDepth */);
- // TODO: Move to dicNodeState?
- mDicNodeState.mDicNodeStateOutput.init(); // reset for next word
- mDicNodeState.mDicNodeStateInput.init(
- &dicNode->mDicNodeState.mDicNodeStateInput, true /* resetTerminalDiffCost */);
- mDicNodeState.mDicNodeStateScoring.init(
- &dicNode->mDicNodeState.mDicNodeStateScoring);
- mDicNodeState.mDicNodeStatePrevWord.init(
- dicNode->mDicNodeState.mDicNodeStatePrevWord.getPrevWordCount() + 1,
+ mDicNodeState.initAsRootWithPreviousWord(&dicNode->mDicNodeState,
dicNode->mDicNodeProperties.getPtNodePos(),
- dicNode->mDicNodeState.mDicNodeStatePrevWord.mPrevWord,
- dicNode->mDicNodeState.mDicNodeStatePrevWord.getPrevWordLength(),
- dicNode->getOutputWordBuf(),
- dicNode->mDicNodeProperties.getDepth(),
- dicNode->mDicNodeState.mDicNodeStatePrevWord.getSecondWordFirstInputIndex(),
- mDicNodeState.mDicNodeStateInput.getInputIndex(0) /* lastInputIndex */);
+ dicNode->mDicNodeProperties.getDepth());
PROF_NODE_COPY(&dicNode->mProfiler, mProfiler);
}
diff --git a/native/jni/src/suggest/core/dicnode/internal/dic_node_state.h b/native/jni/src/suggest/core/dicnode/internal/dic_node_state.h
index f79ac7b2c..e7121a9d7 100644
--- a/native/jni/src/suggest/core/dicnode/internal/dic_node_state.h
+++ b/native/jni/src/suggest/core/dicnode/internal/dic_node_state.h
@@ -58,6 +58,24 @@ class DicNodeState {
mDicNodeStateScoring.init();
}
+ // Init with previous word.
+ void initAsRootWithPreviousWord(const DicNodeState *prevWordDicNodeState,
+ const int prevWordPos, const int prevWordCodePointCount) {
+ mDicNodeStateOutput.init(); // reset for next word
+ mDicNodeStateInput.init(
+ &prevWordDicNodeState->mDicNodeStateInput, true /* resetTerminalDiffCost */);
+ mDicNodeStateScoring.init(&prevWordDicNodeState->mDicNodeStateScoring);
+ mDicNodeStatePrevWord.init(
+ prevWordDicNodeState->mDicNodeStatePrevWord.getPrevWordCount() + 1,
+ prevWordPos,
+ prevWordDicNodeState->mDicNodeStatePrevWord.mPrevWord,
+ prevWordDicNodeState->mDicNodeStatePrevWord.getPrevWordLength(),
+ prevWordDicNodeState->mDicNodeStateOutput.mCodePointsBuf,
+ prevWordCodePointCount,
+ prevWordDicNodeState->mDicNodeStatePrevWord.getSecondWordFirstInputIndex(),
+ prevWordDicNodeState->mDicNodeStateInput.getInputIndex(0) /* lastInputIndex */);
+ }
+
// Init by copy
AK_FORCE_INLINE void init(const DicNodeState *const src) {
mDicNodeStateInput.init(&src->mDicNodeStateInput);