aboutsummaryrefslogtreecommitdiffstats
path: root/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp
diff options
context:
space:
mode:
authorKeisuke Kuroynagi <ksk@google.com>2013-06-25 16:03:30 +0900
committerKeisuke Kuroynagi <ksk@google.com>2013-06-25 16:03:30 +0900
commit46159d5422b9fd92969f522fa51c7601d531927a (patch)
tree781cadd896ab5ff3d4bbf189556fe683bc1ec8ec /native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp
parent1fc6b800095e2f630b006a61cea5f23feefb9a63 (diff)
downloadlatinime-46159d5422b9fd92969f522fa51c7601d531927a.tar.gz
latinime-46159d5422b9fd92969f522fa51c7601d531927a.tar.xz
latinime-46159d5422b9fd92969f522fa51c7601d531927a.zip
Move file and mmap information form Dictionary to BinaryDictionaryInfo.
Bug: 6669677 Change-Id: I05d435e0884430f8abbbed6ea2df775005ee8622
Diffstat (limited to 'native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp')
-rw-r--r--native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp23
1 files changed, 13 insertions, 10 deletions
diff --git a/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp b/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp
index 1225e7f7a..cbe7ce451 100644
--- a/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp
+++ b/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp
@@ -53,22 +53,22 @@ static jlong latinime_BinaryDictionary_open(JNIEnv *env, jclass clazz, jstring s
sourceDirChars[sourceDirUtf8Length] = '\0';
int fd = 0;
void *dictBuf = 0;
- int adjust = 0;
+ int offset = 0;
fd = open(sourceDirChars, O_RDONLY);
if (fd < 0) {
AKLOGE("DICT: Can't open sourceDir. sourceDirChars=%s errno=%d", sourceDirChars, errno);
return 0;
}
int pagesize = getpagesize();
- adjust = static_cast<int>(dictOffset) % pagesize;
- int adjDictOffset = static_cast<int>(dictOffset) - adjust;
- int adjDictSize = static_cast<int>(dictSize) + adjust;
+ offset = static_cast<int>(dictOffset) % pagesize;
+ int adjDictOffset = static_cast<int>(dictOffset) - offset;
+ int adjDictSize = static_cast<int>(dictSize) + offset;
dictBuf = mmap(0, adjDictSize, PROT_READ, MAP_PRIVATE, fd, adjDictOffset);
if (dictBuf == MAP_FAILED) {
AKLOGE("DICT: Can't mmap dictionary. errno=%d", errno);
return 0;
}
- dictBuf = static_cast<char *>(dictBuf) + adjust;
+ dictBuf = static_cast<char *>(dictBuf) + offset;
if (!dictBuf) {
AKLOGE("DICT: dictBuf is null");
return 0;
@@ -78,9 +78,9 @@ static jlong latinime_BinaryDictionary_open(JNIEnv *env, jclass clazz, jstring s
== BinaryDictionaryFormat::detectFormatVersion(static_cast<uint8_t *>(dictBuf),
static_cast<int>(dictSize))) {
AKLOGE("DICT: dictionary format is unknown, bad magic number");
- releaseDictBuf(static_cast<const char *>(dictBuf) - adjust, adjDictSize, fd);
+ releaseDictBuf(static_cast<const char *>(dictBuf) - offset, adjDictSize, fd);
} else {
- dictionary = new Dictionary(dictBuf, static_cast<int>(dictSize), fd, adjust);
+ dictionary = new Dictionary(dictBuf, static_cast<int>(dictSize), fd, offset);
}
PROF_END(66);
PROF_CLOSE;
@@ -221,10 +221,13 @@ static jint latinime_BinaryDictionary_editDistance(JNIEnv *env, jclass clazz, ji
static void latinime_BinaryDictionary_close(JNIEnv *env, jclass clazz, jlong dict) {
Dictionary *dictionary = reinterpret_cast<Dictionary *>(dict);
if (!dictionary) return;
- const void *dictBuf = dictionary->getBinaryDictionaryInfo()->getDictBuf();
+ const BinaryDictionaryInfo *const binaryDictionaryInfo = dictionary->getBinaryDictionaryInfo();
+ const int dictBufOffset = binaryDictionaryInfo->getDictBufOffset();
+ const void *dictBuf = binaryDictionaryInfo->getDictBuf();
if (!dictBuf) return;
- releaseDictBuf(static_cast<const char *>(dictBuf) - dictionary->getDictBufAdjust(),
- dictionary->getDictSize() + dictionary->getDictBufAdjust(), dictionary->getMmapFd());
+ releaseDictBuf(static_cast<const char *>(dictBuf) - dictBufOffset,
+ binaryDictionaryInfo->getDictSize() + dictBufOffset,
+ binaryDictionaryInfo->getMmapFd());
delete dictionary;
}