summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTor Andersson <tor.andersson@artifex.com>2011-12-08 16:43:13 +0100
committerTor Andersson <tor.andersson@artifex.com>2011-12-08 21:46:56 +0100
commit787c07bc94c3aa163981cb0321e92ce465d33d5f (patch)
tree03f4c70d285fa3ba9c5a7537ea060dc8af7e5b6a
parentd1e25d11f7191ace03242c456a97b96febaec063 (diff)
downloadmupdf-787c07bc94c3aa163981cb0321e92ce465d33d5f.tar.xz
Remove remaining fz_error_note calls in the pdf code.
-rw-r--r--pdf/pdf_crypt.c31
-rw-r--r--pdf/pdf_font.c2
-rw-r--r--pdf/pdf_function.c14
-rw-r--r--pdf/pdf_image.c15
-rw-r--r--pdf/pdf_repair.c2
-rw-r--r--scripts/cmapdump.c17
6 files changed, 31 insertions, 50 deletions
diff --git a/pdf/pdf_crypt.c b/pdf/pdf_crypt.c
index 98ad0159..692ed09e 100644
--- a/pdf/pdf_crypt.c
+++ b/pdf/pdf_crypt.c
@@ -40,7 +40,7 @@ struct pdf_crypt_s
fz_context *ctx;
};
-static fz_error pdf_parse_crypt_filter(fz_context *ctx, pdf_crypt_filter *cf, fz_obj *dict, char *name, int defaultlength);
+static void pdf_parse_crypt_filter(fz_context *ctx, pdf_crypt_filter *cf, fz_obj *dict, char *name, int defaultlength);
/*
* Create crypt object for decrypting strings and streams
@@ -252,7 +252,7 @@ pdf_free_crypt(fz_context *ctx, pdf_crypt *crypt)
* Parse a CF dictionary entry (PDF 1.7 table 3.22)
*/
-static fz_error
+static void
pdf_parse_crypt_filter(fz_context *ctx, pdf_crypt_filter *cf, fz_obj *cf_obj, char *name, int defaultlength)
{
fz_obj *obj;
@@ -261,23 +261,21 @@ pdf_parse_crypt_filter(fz_context *ctx, pdf_crypt_filter *cf, fz_obj *cf_obj, ch
int is_stdcf = (!is_identity && (strcmp(name, "StdCF") == 0));
if (!is_identity && !is_stdcf)
- {
- return fz_error_make("Crypt Filter not Identity or StdCF (%d %d R)", fz_to_num(cf_obj), fz_to_gen(cf_obj));
- }
+ fz_throw(ctx, "Crypt Filter not Identity or StdCF (%d %d R)", fz_to_num(cf_obj), fz_to_gen(cf_obj));
+
cf->method = PDF_CRYPT_NONE;
cf->length = defaultlength;
if (cf_obj == NULL)
{
cf->method = (is_identity ? PDF_CRYPT_NONE : PDF_CRYPT_RC4);
- return fz_okay;
+ return;
}
dict = fz_dict_gets(cf_obj, name);
if (!fz_is_dict(dict))
- {
- return fz_error_make("cannot parse crypt filter (%d %d R)", fz_to_num(cf_obj), fz_to_gen(cf_obj));
- }
+ fz_throw(ctx, "cannot parse crypt filter (%d %d R)", fz_to_num(cf_obj), fz_to_gen(cf_obj));
+
obj = fz_dict_gets(dict, "CFM");
if (fz_is_name(obj))
{
@@ -302,9 +300,7 @@ pdf_parse_crypt_filter(fz_context *ctx, pdf_crypt_filter *cf, fz_obj *cf_obj, ch
cf->length = cf->length * 8;
if ((cf->length % 8) != 0)
- return fz_error_make("invalid key length: %d", cf->length);
-
- return fz_okay;
+ fz_throw(ctx, "invalid key length: %d", cf->length);
}
/*
@@ -806,16 +802,11 @@ pdf_open_crypt(fz_stream *chain, pdf_crypt *crypt, int num, int gen)
fz_stream *
pdf_open_crypt_with_filter(fz_stream *chain, pdf_crypt *crypt, char *name, int num, int gen)
{
- fz_error error;
- pdf_crypt_filter cf;
-
if (strcmp(name, "Identity"))
{
- error = pdf_parse_crypt_filter(chain->ctx, &cf, crypt->cf, name, crypt->length);
- if (error)
- fz_error_handle(error, "cannot parse crypt filter (%d %d R)", num, gen);
- else
- return pdf_open_crypt_imp(chain, crypt, &cf, num, gen);
+ pdf_crypt_filter cf;
+ pdf_parse_crypt_filter(chain->ctx, &cf, crypt->cf, name, crypt->length);
+ return pdf_open_crypt_imp(chain, crypt, &cf, num, gen);
}
return chain;
}
diff --git a/pdf/pdf_font.c b/pdf/pdf_font.c
index b33cbbc0..d4d26f79 100644
--- a/pdf/pdf_font.c
+++ b/pdf/pdf_font.c
@@ -992,7 +992,7 @@ pdf_load_font_descriptor(pdf_font_desc *fontdesc, pdf_xref *xref, fz_obj *dict,
}
fz_catch(ctx)
{
- fz_error_handle(-1, "ignored error when loading embedded font, attempting to load system font");
+ fz_warn(ctx, "ignored error when loading embedded font; attempting to load system font");
if (origname != fontname)
pdf_load_builtin_font(ctx, fontdesc, fontname);
else
diff --git a/pdf/pdf_function.c b/pdf/pdf_function.c
index 82c29dfd..fcd683ae 100644
--- a/pdf/pdf_function.c
+++ b/pdf/pdf_function.c
@@ -1090,18 +1090,18 @@ eval_sample_func(fz_context *ctx, pdf_function *func, float *in, float *out)
* Exponential function
*/
-static fz_error
+static void
load_exponential_func(fz_context *ctx, pdf_function *func, fz_obj *dict)
{
fz_obj *obj;
int i;
if (func->m != 1)
- return fz_error_make("/Domain must be one dimension (%d)", func->m);
+ fz_throw(ctx, "/Domain must be one dimension (%d)", func->m);
obj = fz_dict_gets(dict, "N");
if (!fz_is_int(obj) && !fz_is_real(obj))
- return fz_error_make("malformed /N");
+ fz_throw(ctx, "malformed /N");
func->u.e.n = fz_to_real(obj);
obj = fz_dict_gets(dict, "C0");
@@ -1109,7 +1109,7 @@ load_exponential_func(fz_context *ctx, pdf_function *func, fz_obj *dict)
{
func->n = fz_array_len(obj);
if (func->n >= MAXN)
- return fz_error_make("exponential function result array out of range");
+ fz_throw(ctx, "exponential function result array out of range");
for (i = 0; i < func->n; i++)
func->u.e.c0[i] = fz_to_real(fz_array_get(obj, i));
}
@@ -1123,18 +1123,16 @@ load_exponential_func(fz_context *ctx, pdf_function *func, fz_obj *dict)
if (fz_is_array(obj))
{
if (fz_array_len(obj) != func->n)
- return fz_error_make("/C1 must match /C0 length");
+ fz_throw(ctx, "/C1 must match /C0 length");
for (i = 0; i < func->n; i++)
func->u.e.c1[i] = fz_to_real(fz_array_get(obj, i));
}
else
{
if (func->n != 1)
- return fz_error_make("/C1 must match /C0 length");
+ fz_throw(ctx, "/C1 must match /C0 length");
func->u.e.c1[0] = 1;
}
-
- return fz_okay;
}
static void
diff --git a/pdf/pdf_image.c b/pdf/pdf_image.c
index f8c4277c..3af9c5f8 100644
--- a/pdf/pdf_image.c
+++ b/pdf/pdf_image.c
@@ -200,11 +200,16 @@ pdf_load_image_imp(pdf_xref *xref, fz_obj *rdb, fz_obj *dict, fz_stream *cstm, i
if (cstm)
{
unsigned char tbuf[512];
- int tlen = fz_read(stm, tbuf, sizeof tbuf);
- if (tlen < 0)
- fz_error_handle(tlen, "ignoring error at end of image");
- if (tlen > 0)
- fz_warn(ctx, "ignoring garbage at end of image");
+ fz_try(ctx)
+ {
+ int tlen = fz_read(stm, tbuf, sizeof tbuf);
+ if (tlen > 0)
+ fz_warn(ctx, "ignoring garbage at end of image");
+ }
+ fz_catch(ctx)
+ {
+ fz_warn(ctx, "ignoring error at end of image");
+ }
}
fz_close(stm);
diff --git a/pdf/pdf_repair.c b/pdf/pdf_repair.c
index bfa89751..69fd142b 100644
--- a/pdf/pdf_repair.c
+++ b/pdf/pdf_repair.c
@@ -107,7 +107,7 @@ pdf_repair_obj(fz_stream *file, char *buf, int cap, int *stmofsp, int *stmlenp,
}
fz_catch(ctx)
{
- fz_error_handle(1, "cannot find endstream token, falling back to scanning");
+ fz_warn(ctx, "cannot find endstream token, falling back to scanning");
}
if (tok == PDF_TOK_ENDSTREAM)
goto atobjend;
diff --git a/scripts/cmapdump.c b/scripts/cmapdump.c
index be7a456e..f2d70631 100644
--- a/scripts/cmapdump.c
+++ b/scripts/cmapdump.c
@@ -36,7 +36,6 @@ int
main(int argc, char **argv)
{
pdf_cmap *cmap;
- fz_error error;
fz_stream *fi;
FILE *fo;
char name[256];
@@ -86,18 +85,8 @@ main(int argc, char **argv)
clean(name);
fi = fz_open_file(ctx, argv[i]);
- if (!fi)
- fz_error_make("cmapdump: could not open input file '%s'\n", argv[i]);
-
- fz_try(ctx)
- {
- cmap = pdf_parse_cmap(fi);
- }
- fz_catch(ctx)
- {
- fz_error_handle(error, "cmapdump: could not parse input cmap '%s'\n", argv[i]);
- return 1;
- }
+ cmap = pdf_parse_cmap(fi);
+ fz_close(fi);
fprintf(fo, "\n/* %s */\n\n", cmap->cmap_name);
@@ -159,8 +148,6 @@ main(int argc, char **argv)
if (getenv("verbose"))
printf("\t{\"%s\",&cmap_%s},\n", cmap->cmap_name, name);
-
- fz_close(fi);
}
if (fclose(fo))