summaryrefslogtreecommitdiff
path: root/source/fitz/load-pnm.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/fitz/load-pnm.c')
-rw-r--r--source/fitz/load-pnm.c35
1 files changed, 15 insertions, 20 deletions
diff --git a/source/fitz/load-pnm.c b/source/fitz/load-pnm.c
index 36493823..c30d0688 100644
--- a/source/fitz/load-pnm.c
+++ b/source/fitz/load-pnm.c
@@ -392,30 +392,25 @@ pam_binary_read_header(fz_context *ctx, struct info *pnm, unsigned char *p, unsi
{
int token = TOKEN_UNKNOWN;
- fz_try(ctx)
+ while (p < e && token != TOKEN_ENDHDR)
{
- while (p < e && token != TOKEN_ENDHDR)
+ p = pnm_read_token(ctx, p, e, &token);
+ p = pnm_read_white(ctx, p, e, 0);
+ switch (token)
{
- p = pnm_read_token(ctx, p, e, &token);
- p = pnm_read_white(ctx, p, e, 0);
- switch (token)
- {
- case TOKEN_WIDTH: p = pnm_read_number(ctx, p, e, &pnm->width); break;
- case TOKEN_HEIGHT: p = pnm_read_number(ctx, p, e, &pnm->height); break;
- case TOKEN_DEPTH: p = pnm_read_number(ctx, p, e, &pnm->depth); break;
- case TOKEN_MAXVAL: p = pnm_read_number(ctx, p, e, &pnm->maxval); break;
- case TOKEN_TUPLTYPE: p = pnm_read_tupletype(ctx, p, e, &pnm->tupletype); break;
- case TOKEN_ENDHDR: break;
- default:
- fz_throw(ctx, FZ_ERROR_GENERIC, "unknown header token in pnm image");
- }
-
- if (token != TOKEN_ENDHDR)
- p = pnm_read_white(ctx, p, e, 0);
+ case TOKEN_WIDTH: p = pnm_read_number(ctx, p, e, &pnm->width); break;
+ case TOKEN_HEIGHT: p = pnm_read_number(ctx, p, e, &pnm->height); break;
+ case TOKEN_DEPTH: p = pnm_read_number(ctx, p, e, &pnm->depth); break;
+ case TOKEN_MAXVAL: p = pnm_read_number(ctx, p, e, &pnm->maxval); break;
+ case TOKEN_TUPLTYPE: p = pnm_read_tupletype(ctx, p, e, &pnm->tupletype); break;
+ case TOKEN_ENDHDR: break;
+ default:
+ fz_throw(ctx, FZ_ERROR_GENERIC, "unknown header token in pnm image");
}
+
+ if (token != TOKEN_ENDHDR)
+ p = pnm_read_white(ctx, p, e, 0);
}
- fz_catch(ctx)
- fz_rethrow(ctx);
return p;
}