summaryrefslogtreecommitdiff
path: root/source/pdf/pdf-parse.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/pdf/pdf-parse.c')
-rw-r--r--source/pdf/pdf-parse.c36
1 files changed, 11 insertions, 25 deletions
diff --git a/source/pdf/pdf-parse.c b/source/pdf/pdf-parse.c
index b4783ae8..827fd945 100644
--- a/source/pdf/pdf-parse.c
+++ b/source/pdf/pdf-parse.c
@@ -379,22 +379,15 @@ pdf_parse_array(fz_context *ctx, pdf_document *doc, fz_stream *file, pdf_lexbuf
if (tok != PDF_TOK_INT && tok != PDF_TOK_R)
{
if (n > 0)
- {
- obj = pdf_new_int(ctx, doc, a);
- pdf_array_push_drop(ctx, ary, obj);
- }
+ pdf_array_push_int(ctx, ary, a);
if (n > 1)
- {
- obj = pdf_new_int(ctx, doc, b);
- pdf_array_push_drop(ctx, ary, obj);
- }
+ pdf_array_push_int(ctx, ary, b);
n = 0;
}
if (tok == PDF_TOK_INT && n == 2)
{
- obj = pdf_new_int(ctx, doc, a);
- pdf_array_push_drop(ctx, ary, obj);
+ pdf_array_push_int(ctx, ary, a);
a = b;
n --;
}
@@ -419,8 +412,7 @@ pdf_parse_array(fz_context *ctx, pdf_document *doc, fz_stream *file, pdf_lexbuf
case PDF_TOK_R:
if (n != 2)
fz_throw(ctx, FZ_ERROR_SYNTAX, "cannot parse indirect reference in array");
- obj = pdf_new_indirect(ctx, doc, a, b);
- pdf_array_push_drop(ctx, ary, obj);
+ pdf_array_push_drop(ctx, ary, pdf_new_indirect(ctx, doc, a, b));
n = 0;
break;
@@ -435,32 +427,26 @@ pdf_parse_array(fz_context *ctx, pdf_document *doc, fz_stream *file, pdf_lexbuf
break;
case PDF_TOK_NAME:
- obj = pdf_new_name(ctx, doc, buf->scratch);
- pdf_array_push_drop(ctx, ary, obj);
+ pdf_array_push_name(ctx, ary, buf->scratch);
break;
case PDF_TOK_REAL:
- obj = pdf_new_real(ctx, doc, buf->f);
- pdf_array_push_drop(ctx, ary, obj);
+ pdf_array_push_real(ctx, ary, buf->f);
break;
case PDF_TOK_STRING:
- obj = pdf_new_string(ctx, doc, buf->scratch, buf->len);
- pdf_array_push_drop(ctx, ary, obj);
+ pdf_array_push_string(ctx, ary, buf->scratch, buf->len);
break;
case PDF_TOK_TRUE:
- obj = pdf_new_bool(ctx, doc, 1);
- pdf_array_push_drop(ctx, ary, obj);
+ pdf_array_push_bool(ctx, ary, 1);
break;
case PDF_TOK_FALSE:
- obj = pdf_new_bool(ctx, doc, 0);
- pdf_array_push_drop(ctx, ary, obj);
+ pdf_array_push_bool(ctx, ary, 0);
break;
case PDF_TOK_NULL:
- obj = pdf_new_null(ctx, doc);
- pdf_array_push_drop(ctx, ary, obj);
+ pdf_array_push(ctx, ary, PDF_OBJ_NULL);
break;
default:
- pdf_array_push_drop(ctx, ary, pdf_new_null(ctx, doc));
+ pdf_array_push(ctx, ary, PDF_OBJ_NULL);
break;
}
}