From 5e1b2250821fa1f23720b260d94d104c63722096 Mon Sep 17 00:00:00 2001 From: Keisuke Kuroyanagi Date: Mon, 15 Dec 2014 18:53:22 +0900 Subject: [PATCH] Add missing error check in TrieMap. Bug: 18725954 Change-Id: I8fcb0d15dda3f823a4575fe707bcdec57ff5e89b --- .../src/suggest/policyimpl/dictionary/utils/trie_map.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/trie_map.cpp b/native/jni/src/suggest/policyimpl/dictionary/utils/trie_map.cpp index 39f417ebb..b7ef2b9bd 100644 --- a/native/jni/src/suggest/policyimpl/dictionary/utils/trie_map.cpp +++ b/native/jni/src/suggest/policyimpl/dictionary/utils/trie_map.cpp @@ -79,6 +79,9 @@ int TrieMap::getNextLevelBitmapEntryIndex(const int key, const int bitmapEntryIn } // Create a value entry and a bitmap entry. const int valueEntryIndex = allocateTable(TERMINAL_LINKED_ENTRY_COUNT); + if (valueEntryIndex == INVALID_INDEX) { + return INVALID_INDEX; + } if (!writeEntry(Entry(0, terminalEntry.getValue()), valueEntryIndex)) { return INVALID_INDEX; } @@ -195,6 +198,9 @@ bool TrieMap::writeValue(const uint64_t value, const int terminalEntryIndex) { } // Create value entry and write value. const int valueEntryIndex = allocateTable(TERMINAL_LINKED_ENTRY_COUNT); + if (valueEntryIndex == INVALID_INDEX) { + return false; + } if (!writeEntry(Entry(value >> (FIELD1_SIZE * CHAR_BIT), value), valueEntryIndex)) { return false; }