1
0
Fork 0
mirror of https://github.com/geometer/FBReaderJ.git synced 2025-10-03 17:59:33 +02:00

disk-based image map has gone

This commit is contained in:
Nikolay Pultsin 2012-03-27 15:53:11 +01:00
parent e65cb4a501
commit 5518e9ef78
19 changed files with 79 additions and 378 deletions

View file

@ -131,23 +131,6 @@ JNIEXPORT void JNICALL Java_org_geometerplus_fbreader_formats_NativeFormatPlugin
fillLanguageAndEncoding(env, javaBook, *book);
}
static bool initBookModel(JNIEnv *env, jobject javaModel, BookModel &model) {
shared_ptr<ZLImageMapWriter> imageMapWriter = model.imageMapWriter();
env->PushLocalFrame(16);
jobjectArray ids = AndroidUtil::createStringArray(env, imageMapWriter->identifiers());
jintArray indices = AndroidUtil::createIntArray(env, imageMapWriter->indices());
jintArray offsets = AndroidUtil::createIntArray(env, imageMapWriter->offsets());
jstring imageDirectoryName = env->NewStringUTF(imageMapWriter->allocator().directoryName().c_str());
jstring imageFileExtension = env->NewStringUTF(imageMapWriter->allocator().fileExtension().c_str());
jint imageBlocksNumber = imageMapWriter->allocator().blocksNumber();
env->CallVoidMethod(javaModel, AndroidUtil::MID_NativeBookModel_initImageMap,
ids, indices, offsets, imageDirectoryName, imageFileExtension, imageBlocksNumber);
env->PopLocalFrame(0);
return !env->ExceptionCheck();
}
static bool initInternalHyperlinks(JNIEnv *env, jobject javaModel, BookModel &model) {
ZLCachedMemoryAllocator allocator(131072, Library::Instance().cacheDirectory(), "nlinks");
@ -265,14 +248,13 @@ JNIEXPORT jboolean JNICALL Java_org_geometerplus_fbreader_formats_NativeFormatPl
jobject javaBook = env->GetObjectField(javaModel, AndroidUtil::FID_NativeBookModel_Book);
shared_ptr<Book> book = Book::loadFromJavaBook(env, javaBook);
shared_ptr<BookModel> model = new BookModel(book);
shared_ptr<BookModel> model = new BookModel(book, javaModel);
if (!plugin->readModel(*model)) {
return JNI_FALSE;
}
model->flush();
if (!initBookModel(env, javaModel, *model) ||
!initInternalHyperlinks(env, javaModel, *model) ||
if (!initInternalHyperlinks(env, javaModel, *model) ||
!initTOC(env, javaModel, *model)) {
return JNI_FALSE;
}