summaryrefslogtreecommitdiff
path: root/platform
diff options
context:
space:
mode:
authorTor Andersson <tor.andersson@artifex.com>2018-06-19 13:15:31 +0200
committerRobin Watts <robin.watts@artifex.com>2018-06-22 16:48:50 +0100
commitf7ace61076d0ab3c71e1d2bd70967ddb0b86f220 (patch)
tree8bd8b4fe4d7414685d162f66911e9951ea3dce16 /platform
parent148b0934370336fc8b260e8c3aef83daf4d80ba4 (diff)
downloadmupdf-f7ace61076d0ab3c71e1d2bd70967ddb0b86f220.tar.xz
Keep copy of decoded utf8 text string in pdf_obj.
Removes the need to alloc/free text strings in the API, allowing for simple functions like pdf_dict_get_text_string.
Diffstat (limited to 'platform')
-rw-r--r--platform/gl/gl-annotate.c12
-rw-r--r--platform/java/mupdf_native.c5
-rw-r--r--platform/x11/jstest_main.c2
-rw-r--r--platform/x11/pdfapp.c9
-rw-r--r--platform/x11/pdfapp.h2
-rw-r--r--platform/x11/win_main.c2
-rw-r--r--platform/x11/x11_main.c2
7 files changed, 13 insertions, 21 deletions
diff --git a/platform/gl/gl-annotate.c b/platform/gl/gl-annotate.c
index 304f0f10..9d88dabc 100644
--- a/platform/gl/gl-annotate.c
+++ b/platform/gl/gl-annotate.c
@@ -314,10 +314,9 @@ static void do_annotate_author(void)
{
if (pdf_annot_has_author(ctx, selected_annot))
{
- char *author = pdf_copy_annot_author(ctx, selected_annot);
- if (author && strlen(author) > 0)
+ const char *author = pdf_get_annot_author(ctx, selected_annot);
+ if (strlen(author) > 0)
ui_label("Author: %s", author);
- fz_free(ctx, author);
}
}
@@ -344,14 +343,13 @@ static void do_annotate_contents(void)
{
static pdf_annot *last_annot = NULL;
static struct input input;
- char *contents;
+ const char *contents;
if (selected_annot != last_annot)
{
last_annot = selected_annot;
- contents = pdf_copy_annot_contents(ctx, selected_annot);
+ contents = pdf_get_annot_contents(ctx, selected_annot);
ui_input_init(&input, contents);
- fz_free(ctx, contents);
}
ui_label("Contents:");
@@ -387,7 +385,7 @@ static void do_widget_value()
}
else if (type == PDF_WIDGET_TYPE_COMBOBOX || type == PDF_WIDGET_TYPE_LISTBOX)
{
- char **options;
+ const char **options;
int n, choice;
ui_label("Value:");
n = pdf_choice_widget_options(ctx, selected_annot->page->doc, selected_annot, 0, NULL);
diff --git a/platform/java/mupdf_native.c b/platform/java/mupdf_native.c
index 74ba2d11..8e9e9f3f 100644
--- a/platform/java/mupdf_native.c
+++ b/platform/java/mupdf_native.c
@@ -8800,7 +8800,7 @@ FUN(PDFAnnotation_getContents)(JNIEnv *env, jobject self)
if (!ctx || !annot) return NULL;
fz_try(ctx)
- contents = pdf_copy_annot_contents(ctx, annot);
+ contents = pdf_get_annot_contents(ctx, annot);
fz_catch(ctx)
{
jni_rethrow(env, ctx);
@@ -8808,7 +8808,6 @@ FUN(PDFAnnotation_getContents)(JNIEnv *env, jobject self)
}
result = (*env)->NewStringUTF(env, contents);
- fz_free(ctx, contents);
return result;
}
@@ -8846,7 +8845,7 @@ FUN(PDFAnnotation_getAuthor)(JNIEnv *env, jobject self)
if (!ctx || !annot) return NULL;
fz_try(ctx)
- author = pdf_copy_annot_author(ctx, annot);
+ author = pdf_get_annot_author(ctx, annot);
fz_catch(ctx)
{
jni_rethrow(env, ctx);
diff --git a/platform/x11/jstest_main.c b/platform/x11/jstest_main.c
index 14577bd2..0c729b86 100644
--- a/platform/x11/jstest_main.c
+++ b/platform/x11/jstest_main.c
@@ -81,7 +81,7 @@ char *wintextinput(pdfapp_t *app, char *inittext, int retry)
return inittext;
}
-int winchoiceinput(pdfapp_t *app, int nopts, char *opts[], int *nvals, char *vals[])
+int winchoiceinput(pdfapp_t *app, int nopts, const char *opts[], int *nvals, const char *vals[])
{
return 0;
}
diff --git a/platform/x11/pdfapp.c b/platform/x11/pdfapp.c
index f011b5b0..1c5ae45d 100644
--- a/platform/x11/pdfapp.c
+++ b/platform/x11/pdfapp.c
@@ -1680,8 +1680,8 @@ void pdfapp_onmouse(pdfapp_t *app, int x, int y, int btn, int modifiers, int sta
{
int nopts;
int nvals;
- char **opts = NULL;
- char **vals = NULL;
+ const char **opts = NULL;
+ const char **vals = NULL;
fz_var(opts);
fz_var(vals);
@@ -1706,12 +1706,7 @@ void pdfapp_onmouse(pdfapp_t *app, int x, int y, int btn, int modifiers, int sta
}
fz_always(ctx)
{
- int i;
- for (i=0; i < nopts; ++i)
- fz_free(ctx, opts[i]);
fz_free(ctx, opts);
- for (i=0; i < nvals; ++i)
- fz_free(ctx, vals[i]);
fz_free(ctx, vals);
}
fz_catch(ctx)
diff --git a/platform/x11/pdfapp.h b/platform/x11/pdfapp.h
index 09d8f16a..b6c2127c 100644
--- a/platform/x11/pdfapp.h
+++ b/platform/x11/pdfapp.h
@@ -30,7 +30,7 @@ extern void winrepaint(pdfapp_t*);
extern void winrepaintsearch(pdfapp_t*);
extern char *winpassword(pdfapp_t*, char *filename);
extern char *wintextinput(pdfapp_t*, char *inittext, int retry);
-extern int winchoiceinput(pdfapp_t*, int nopts, char *opts[], int *nvals, char *vals[]);
+extern int winchoiceinput(pdfapp_t*, int nopts, const char *opts[], int *nvals, const char *vals[]);
extern void winopenuri(pdfapp_t*, char *s);
extern void wincursor(pdfapp_t*, int curs);
extern void windocopy(pdfapp_t*);
diff --git a/platform/x11/win_main.c b/platform/x11/win_main.c
index 877f8c73..dd406c42 100644
--- a/platform/x11/win_main.c
+++ b/platform/x11/win_main.c
@@ -450,7 +450,7 @@ char *wintextinput(pdfapp_t *app, char *inittext, int retry)
return NULL;
}
-int winchoiceinput(pdfapp_t *app, int nopts, char *opts[], int *nvals, char *vals[])
+int winchoiceinput(pdfapp_t *app, int nopts, const char *opts[], int *nvals, const char *vals[])
{
int code;
cd_nopts = nopts;
diff --git a/platform/x11/x11_main.c b/platform/x11/x11_main.c
index edbb9fa8..7e5942bf 100644
--- a/platform/x11/x11_main.c
+++ b/platform/x11/x11_main.c
@@ -184,7 +184,7 @@ char *wintextinput(pdfapp_t *app, char *inittext, int retry)
return NULL;
}
-int winchoiceinput(pdfapp_t *app, int nopts, char *opts[], int *nvals, char *vals[])
+int winchoiceinput(pdfapp_t *app, int nopts, const char *opts[], int *nvals, const char *vals[])
{
/* FIXME: temporary dummy implementation */
return 0;