summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Watts <robin.watts@artifex.com>2013-05-21 19:29:34 +0100
committerRobin Watts <robin.watts@artifex.com>2013-05-21 19:34:00 +0100
commitdb9f1dadbc7c302bc6c1947760b95715dd1652e3 (patch)
treef9d51e8546ac610751b726a3f9b69009393eb396
parentf095f7ff494ae6c59dc72b5d4feeac5db5a27351 (diff)
downloadmupdf-db9f1dadbc7c302bc6c1947760b95715dd1652e3.tar.xz
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.
-rw-r--r--android/jni/mupdf.c6
-rw-r--r--fitz/text_search.c4
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;