From db9f1dadbc7c302bc6c1947760b95715dd1652e3 Mon Sep 17 00:00:00 2001 From: Robin Watts Date: Tue, 21 May 2013 19:29:34 +0100 Subject: Fix app breakages. Android app was still thinking that we had only one fz_device_rgb rather than one per context. Android app had a typo in resulting in searching ending in an infinite loop. Text search failed to search outside the first block of each page. --- android/jni/mupdf.c | 6 +++--- fitz/text_search.c | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/android/jni/mupdf.c b/android/jni/mupdf.c index 8382c27c..f45e17ba 100644 --- a/android/jni/mupdf.c +++ b/android/jni/mupdf.c @@ -299,7 +299,7 @@ JNI_FN(MuPDFCore_openFile)(JNIEnv * env, jobject thiz, jstring jfilename) glo->doc = NULL; fz_try(ctx) { - glo->colorspace = fz_device_rgb; + glo->colorspace = fz_device_rgb(ctx); LOGE("Opening document..."); fz_try(ctx) @@ -418,7 +418,7 @@ JNI_FN(MuPDFCore_openBuffer)(JNIEnv * env, jobject thiz) stream = fz_new_stream(ctx, glo, bufferStreamRead, bufferStreamClose); stream->seek = bufferStreamSeek; - glo->colorspace = fz_device_rgb; + glo->colorspace = fz_device_rgb(ctx); LOGE("Opening document..."); fz_try(ctx) @@ -931,7 +931,7 @@ textlen(fz_text_page *page) int len = 0; int block_num; - for (block_num = 0; block_num < page->len; block_num) + for (block_num = 0; block_num < page->len; block_num++) { fz_text_block *block; fz_text_line *line; diff --git a/fitz/text_search.c b/fitz/text_search.c index 7952caf8..34f39eb3 100644 --- a/fitz/text_search.c +++ b/fitz/text_search.c @@ -11,13 +11,13 @@ static inline int fz_tolower(int c) fz_char_and_box *fz_text_char_at(fz_char_and_box *cab, fz_text_page *page, int idx) { int block_num; + int ofs = 0; for (block_num = 0; block_num < page->len; block_num++) { fz_text_block *block; fz_text_line *line; fz_text_span *span; - int ofs = 0; if (page->blocks[block_num].type != FZ_PAGE_BLOCK_TEXT) continue; @@ -35,7 +35,7 @@ fz_char_and_box *fz_text_char_at(fz_char_and_box *cab, fz_text_page *page, int i ofs += span->len; } /* pseudo-newline */ - if (idx == 0) + if (idx == ofs) { cab->bbox = fz_empty_rect; cab->c = 0; -- cgit v1.2.3