summaryrefslogtreecommitdiff
path: root/source/pdf
diff options
context:
space:
mode:
authorTor Andersson <tor.andersson@artifex.com>2018-01-30 16:14:24 +0100
committerTor Andersson <tor.andersson@artifex.com>2018-01-31 11:57:00 +0100
commit43e6a76ff86747501b77f2e485bdfcd8c067fb8f (patch)
treea74407012dd8867f58d307212096920cfc1c642b /source/pdf
parente4b3a9d4c74272d421492b4967c6190cf26f8a73 (diff)
downloadmupdf-43e6a76ff86747501b77f2e485bdfcd8c067fb8f.tar.xz
Use convenience pdf dictionary/array creation functions.
Diffstat (limited to 'source/pdf')
-rw-r--r--source/pdf/pdf-annot-edit.c17
-rw-r--r--source/pdf/pdf-clean-file.c2
-rw-r--r--source/pdf/pdf-device.c34
-rw-r--r--source/pdf/pdf-field.c2
-rw-r--r--source/pdf/pdf-font.c76
-rw-r--r--source/pdf/pdf-form.c6
-rw-r--r--source/pdf/pdf-image.c82
-rw-r--r--source/pdf/pdf-interpret.c6
-rw-r--r--source/pdf/pdf-js.c2
-rw-r--r--source/pdf/pdf-op-filter.c10
-rw-r--r--source/pdf/pdf-page.c10
-rw-r--r--source/pdf/pdf-parse.c36
-rw-r--r--source/pdf/pdf-portfolio.c22
-rw-r--r--source/pdf/pdf-write.c52
-rw-r--r--source/pdf/pdf-xobject.c8
-rw-r--r--source/pdf/pdf-xref.c8
16 files changed, 178 insertions, 195 deletions
diff --git a/source/pdf/pdf-annot-edit.c b/source/pdf/pdf-annot-edit.c
index 64678240..04a11c08 100644
--- a/source/pdf/pdf-annot-edit.c
+++ b/source/pdf/pdf-annot-edit.c
@@ -124,10 +124,10 @@ pdf_create_annot(fz_context *ctx, pdf_page *page, fz_annot_type type)
pdf_dict_put_drop(ctx, page->obj, PDF_NAME_Annots, annot_arr);
}
- pdf_dict_put_drop(ctx, annot_obj, PDF_NAME_Type, PDF_NAME_Annot);
+ pdf_dict_put(ctx, annot_obj, PDF_NAME_Type, PDF_NAME_Annot);
- pdf_dict_put_drop(ctx, annot_obj, PDF_NAME_Subtype, pdf_new_name(ctx, doc, type_str));
- pdf_dict_put_drop(ctx, annot_obj, PDF_NAME_Rect, pdf_new_rect(ctx, doc, &rect));
+ pdf_dict_put_name(ctx, annot_obj, PDF_NAME_Subtype, type_str);
+ pdf_dict_put_rect(ctx, annot_obj, PDF_NAME_Rect, &rect);
/* Make printable as default */
pdf_dict_put_drop(ctx, annot_obj, PDF_NAME_F, pdf_new_int(ctx, doc, PDF_ANNOT_IS_PRINT));
@@ -254,7 +254,6 @@ pdf_annot_rect(fz_context *ctx, pdf_annot *annot, fz_rect *rect)
void
pdf_set_annot_rect(fz_context *ctx, pdf_annot *annot, const fz_rect *rect)
{
- pdf_document *doc = annot->page->doc;
fz_rect trect = *rect;
fz_matrix page_ctm, inv_page_ctm;
@@ -262,7 +261,7 @@ pdf_set_annot_rect(fz_context *ctx, pdf_annot *annot, const fz_rect *rect)
fz_invert_matrix(&inv_page_ctm, &page_ctm);
fz_transform_rect(&trect, &inv_page_ctm);
- pdf_dict_put_drop(ctx, annot->obj, PDF_NAME_Rect, pdf_new_rect(ctx, doc, &trect));
+ pdf_dict_put_rect(ctx, annot->obj, PDF_NAME_Rect, &trect);
pdf_dirty_annot(ctx, annot);
}
@@ -1059,10 +1058,10 @@ pdf_set_free_text_details(fz_context *ctx, pdf_annot *annot, fz_point *pos, char
ref = pdf_add_object(ctx, doc, font);
pdf_dict_puts_drop(ctx, form_fonts, nbuf, ref);
- pdf_dict_put_drop(ctx, font, PDF_NAME_Type, PDF_NAME_Font);
- pdf_dict_put_drop(ctx, font, PDF_NAME_Subtype, PDF_NAME_Type1);
- pdf_dict_put_drop(ctx, font, PDF_NAME_BaseFont, pdf_new_name(ctx, doc, font_name));
- pdf_dict_put_drop(ctx, font, PDF_NAME_Encoding, PDF_NAME_WinAnsiEncoding);
+ pdf_dict_put(ctx, font, PDF_NAME_Type, PDF_NAME_Font);
+ pdf_dict_put(ctx, font, PDF_NAME_Subtype, PDF_NAME_Type1);
+ pdf_dict_put_name(ctx, font, PDF_NAME_BaseFont, font_name);
+ pdf_dict_put(ctx, font, PDF_NAME_Encoding, PDF_NAME_WinAnsiEncoding);
memcpy(da_info.col, color, sizeof(float)*3);
da_info.col_size = 3;
diff --git a/source/pdf/pdf-clean-file.c b/source/pdf/pdf-clean-file.c
index 86a6b6a0..52d97c67 100644
--- a/source/pdf/pdf-clean-file.c
+++ b/source/pdf/pdf-clean-file.c
@@ -169,7 +169,7 @@ static int strip_outlines(fz_context *ctx, pdf_document *doc, pdf_obj *outlines,
int old_count = pdf_to_int(ctx, pdf_dict_get(ctx, outlines, PDF_NAME_Count));
pdf_dict_put(ctx, outlines, PDF_NAME_First, first);
pdf_dict_put(ctx, outlines, PDF_NAME_Last, last);
- pdf_dict_put_drop(ctx, outlines, PDF_NAME_Count, pdf_new_int(ctx, doc, old_count > 0 ? nc : -nc));
+ pdf_dict_put_int(ctx, outlines, PDF_NAME_Count, old_count > 0 ? nc : -nc);
}
return nc;
diff --git a/source/pdf/pdf-device.c b/source/pdf/pdf-device.c
index c45dda40..db699dd0 100644
--- a/source/pdf/pdf-device.c
+++ b/source/pdf/pdf-device.c
@@ -313,7 +313,7 @@ pdf_dev_alpha(fz_context *ctx, pdf_device *pdev, float alpha, int stroke)
fz_try(ctx)
{
char text[32];
- pdf_dict_put_drop(ctx, o, (stroke ? PDF_NAME_CA : PDF_NAME_ca), pdf_new_real(ctx, doc, alpha));
+ pdf_dict_put_real(ctx, o, (stroke ? PDF_NAME_CA : PDF_NAME_ca), alpha);
fz_snprintf(text, sizeof(text), "ExtGState/Alp%d", i);
ref = pdf_add_object(ctx, doc, o);
pdf_dict_putp_drop(ctx, pdev->resources, text, ref);
@@ -567,20 +567,20 @@ pdf_dev_new_form(fz_context *ctx, pdf_obj **form_ref, pdf_device *pdev, const fz
group = pdf_new_dict(ctx, doc, 5);
fz_try(ctx)
{
- pdf_dict_put_drop(ctx, group, PDF_NAME_Type, PDF_NAME_Group);
- pdf_dict_put_drop(ctx, group, PDF_NAME_S, PDF_NAME_Transparency);
- pdf_dict_put_drop(ctx, group, PDF_NAME_K, pdf_new_bool(ctx, doc, knockout));
- pdf_dict_put_drop(ctx, group, PDF_NAME_I, pdf_new_bool(ctx, doc, isolated));
+ pdf_dict_put(ctx, group, PDF_NAME_Type, PDF_NAME_Group);
+ pdf_dict_put(ctx, group, PDF_NAME_S, PDF_NAME_Transparency);
+ pdf_dict_put_bool(ctx, group, PDF_NAME_K, knockout);
+ pdf_dict_put_bool(ctx, group, PDF_NAME_I, isolated);
switch (fz_colorspace_type(ctx, colorspace))
{
case FZ_COLORSPACE_GRAY:
- pdf_dict_put_drop(ctx, group, PDF_NAME_CS, PDF_NAME_DeviceGray);
+ pdf_dict_put(ctx, group, PDF_NAME_CS, PDF_NAME_DeviceGray);
break;
case FZ_COLORSPACE_RGB:
- pdf_dict_put_drop(ctx, group, PDF_NAME_CS, PDF_NAME_DeviceRGB);
+ pdf_dict_put(ctx, group, PDF_NAME_CS, PDF_NAME_DeviceRGB);
break;
case FZ_COLORSPACE_CMYK:
- pdf_dict_put_drop(ctx, group, PDF_NAME_CS, PDF_NAME_DeviceCMYK);
+ pdf_dict_put(ctx, group, PDF_NAME_CS, PDF_NAME_DeviceCMYK);
break;
default:
break;
@@ -602,10 +602,10 @@ pdf_dev_new_form(fz_context *ctx, pdf_obj **form_ref, pdf_device *pdev, const fz
form = pdf_new_dict(ctx, doc, 4);
fz_try(ctx)
{
- pdf_dict_put_drop(ctx, form, PDF_NAME_Subtype, PDF_NAME_Form);
+ pdf_dict_put(ctx, form, PDF_NAME_Subtype, PDF_NAME_Form);
pdf_dict_put(ctx, form, PDF_NAME_Group, group_ref);
- pdf_dict_put_drop(ctx, form, PDF_NAME_FormType, pdf_new_int(ctx, doc, 1));
- pdf_dict_put_drop(ctx, form, PDF_NAME_BBox, pdf_new_rect(ctx, doc, bbox));
+ pdf_dict_put_int(ctx, form, PDF_NAME_FormType, 1);
+ pdf_dict_put_rect(ctx, form, PDF_NAME_BBox, bbox);
*form_ref = pdf_add_object(ctx, doc, form);
}
fz_always(ctx)
@@ -918,17 +918,17 @@ pdf_dev_begin_mask(fz_context *ctx, fz_device *dev, const fz_rect *bbox, int lum
{
int n = fz_colorspace_n(ctx, colorspace);
smask = pdf_new_dict(ctx, doc, 4);
- pdf_dict_put_drop(ctx, smask, PDF_NAME_Type, PDF_NAME_Mask);
- pdf_dict_put_drop(ctx, smask, PDF_NAME_S, (luminosity ? PDF_NAME_Luminosity : PDF_NAME_Alpha));
+ pdf_dict_put(ctx, smask, PDF_NAME_Type, PDF_NAME_Mask);
+ pdf_dict_put(ctx, smask, PDF_NAME_S, (luminosity ? PDF_NAME_Luminosity : PDF_NAME_Alpha));
pdf_dict_put(ctx, smask, PDF_NAME_G, form_ref);
color_obj = pdf_new_array(ctx, doc, n);
for (i = 0; i < n; i++)
- pdf_array_push_drop(ctx, color_obj, pdf_new_real(ctx, doc, color[i]));
+ pdf_array_push_real(ctx, color_obj, color[i]);
pdf_dict_put_drop(ctx, smask, PDF_NAME_BC, color_obj);
color_obj = NULL;
egs = pdf_new_dict(ctx, doc, 5);
- pdf_dict_put_drop(ctx, egs, PDF_NAME_Type, PDF_NAME_ExtGState);
+ pdf_dict_put(ctx, egs, PDF_NAME_Type, PDF_NAME_ExtGState);
pdf_dict_put_drop(ctx, egs, PDF_NAME_SMask, pdf_add_object(ctx, doc, smask));
{
@@ -999,8 +999,8 @@ pdf_dev_begin_group(fz_context *ctx, fz_device *dev, const fz_rect *bbox, fz_col
{
/* No, better make one */
obj = pdf_new_dict(ctx, doc, 2);
- pdf_dict_put_drop(ctx, obj, PDF_NAME_Type, PDF_NAME_ExtGState);
- pdf_dict_put_drop(ctx, obj, PDF_NAME_BM, pdf_new_name(ctx, doc, fz_blendmode_name(blendmode)));
+ pdf_dict_put(ctx, obj, PDF_NAME_Type, PDF_NAME_ExtGState);
+ pdf_dict_put_name(ctx, obj, PDF_NAME_BM, fz_blendmode_name(blendmode));
pdf_dict_putp_drop(ctx, pdev->resources, text, obj);
}
}
diff --git a/source/pdf/pdf-field.c b/source/pdf/pdf-field.c
index 4d36c4d6..bdaaf4b0 100644
--- a/source/pdf/pdf-field.c
+++ b/source/pdf/pdf-field.c
@@ -149,6 +149,6 @@ void pdf_set_field_type(fz_context *ctx, pdf_document *doc, pdf_obj *obj, int ty
int bits = pdf_to_int(ctx, pdf_dict_get(ctx, obj, PDF_NAME_Ff));
bits &= ~clearbits;
bits |= setbits;
- pdf_dict_put_drop(ctx, obj, PDF_NAME_Ff, pdf_new_int(ctx, doc, bits));
+ pdf_dict_put_int(ctx, obj, PDF_NAME_Ff, bits);
}
}
diff --git a/source/pdf/pdf-font.c b/source/pdf/pdf-font.c
index be69ce1c..c7aaa9fd 100644
--- a/source/pdf/pdf-font.c
+++ b/source/pdf/pdf-font.c
@@ -1546,21 +1546,21 @@ pdf_add_font_file(fz_context *ctx, pdf_document *doc, fz_font *font)
{
size_t len = fz_buffer_storage(ctx, buf, NULL);
obj = pdf_new_dict(ctx, doc, 3);
- pdf_dict_put_drop(ctx, obj, PDF_NAME_Length1, pdf_new_int(ctx, doc, (int)len));
+ pdf_dict_put_int(ctx, obj, PDF_NAME_Length1, (int)len);
switch (ft_font_file_kind(font->ft_face))
{
case 1:
/* TODO: these may not be the correct values, but I doubt it matters */
- pdf_dict_put_drop(ctx, obj, PDF_NAME_Length2, pdf_new_int(ctx, doc, (int)len));
- pdf_dict_put_drop(ctx, obj, PDF_NAME_Length3, pdf_new_int(ctx, doc, 0));
+ pdf_dict_put_int(ctx, obj, PDF_NAME_Length2, len);
+ pdf_dict_put_int(ctx, obj, PDF_NAME_Length3, 0);
break;
case 2:
break;
case 3:
if (FT_Get_Sfnt_Table(font->ft_face, FT_SFNT_HEAD))
- pdf_dict_put_drop(ctx, obj, PDF_NAME_Subtype, PDF_NAME_OpenType);
+ pdf_dict_put(ctx, obj, PDF_NAME_Subtype, PDF_NAME_OpenType);
else
- pdf_dict_put_drop(ctx, obj, PDF_NAME_Subtype, PDF_NAME_Type1C);
+ pdf_dict_put(ctx, obj, PDF_NAME_Subtype, PDF_NAME_Type1C);
break;
}
ref = pdf_add_object(ctx, doc, obj);
@@ -1596,21 +1596,21 @@ pdf_add_font_descriptor(fz_context *ctx, pdf_document *doc, pdf_font_desc *fontd
{
fdobj = pdf_new_dict(ctx, doc, 10);
pdf_dict_put(ctx, fdobj, PDF_NAME_Type, PDF_NAME_FontDescriptor);
- pdf_dict_put_drop(ctx, fdobj, PDF_NAME_FontName, pdf_new_name(ctx, doc, font->name));
+ pdf_dict_put_name(ctx, fdobj, PDF_NAME_FontName, font->name);
bbox = pdf_new_array(ctx, doc, 4);
- pdf_array_push_drop(ctx, bbox, pdf_new_real(ctx, doc, 1000.0f * font->bbox.x0));
- pdf_array_push_drop(ctx, bbox, pdf_new_real(ctx, doc, 1000.0f * font->bbox.y0));
- pdf_array_push_drop(ctx, bbox, pdf_new_real(ctx, doc, 1000.0f * font->bbox.x1));
- pdf_array_push_drop(ctx, bbox, pdf_new_real(ctx, doc, 1000.0f * font->bbox.y1));
+ pdf_array_push_real(ctx, bbox, 1000.0f * font->bbox.x0);
+ pdf_array_push_real(ctx, bbox, 1000.0f * font->bbox.y0);
+ pdf_array_push_real(ctx, bbox, 1000.0f * font->bbox.x1);
+ pdf_array_push_real(ctx, bbox, 1000.0f * font->bbox.y1);
pdf_dict_put(ctx, fdobj, PDF_NAME_FontBBox, bbox);
- pdf_dict_put_drop(ctx, fdobj, PDF_NAME_ItalicAngle, pdf_new_real(ctx, doc, fontdesc->italic_angle));
- pdf_dict_put_drop(ctx, fdobj, PDF_NAME_Ascent, pdf_new_real(ctx, doc, fontdesc->ascent));
- pdf_dict_put_drop(ctx, fdobj, PDF_NAME_Descent, pdf_new_real(ctx, doc, fontdesc->descent));
- pdf_dict_put_drop(ctx, fdobj, PDF_NAME_CapHeight, pdf_new_real(ctx, doc, fontdesc->cap_height));
- pdf_dict_put_drop(ctx, fdobj, PDF_NAME_StemV, pdf_new_real(ctx, doc, 80));
- pdf_dict_put_drop(ctx, fdobj, PDF_NAME_Flags, pdf_new_real(ctx, doc, fontdesc->flags));
+ pdf_dict_put_real(ctx, fdobj, PDF_NAME_ItalicAngle, fontdesc->italic_angle);
+ pdf_dict_put_real(ctx, fdobj, PDF_NAME_Ascent, fontdesc->ascent);
+ pdf_dict_put_real(ctx, fdobj, PDF_NAME_Descent, fontdesc->descent);
+ pdf_dict_put_real(ctx, fdobj, PDF_NAME_CapHeight, fontdesc->cap_height);
+ pdf_dict_put_real(ctx, fdobj, PDF_NAME_StemV, 80);
+ pdf_dict_put_real(ctx, fdobj, PDF_NAME_Flags, fontdesc->flags);
if (fileref)
{
@@ -1666,7 +1666,7 @@ pdf_add_simple_font_widths(fz_context *ctx, pdf_document *doc, pdf_font_desc *fo
fz_try(ctx)
{
for (i = *first_char; i <= *last_char; i++)
- pdf_array_push_drop(ctx, arr, pdf_new_int(ctx, doc, width_table[i]));
+ pdf_array_push_int(ctx, arr, width_table[i]);
}
fz_catch(ctx)
{
@@ -1683,9 +1683,9 @@ pdf_add_cid_system_info(fz_context *ctx, pdf_document *doc)
pdf_obj *fobj = pdf_new_dict(ctx, doc, 3);
fz_try(ctx)
{
- pdf_dict_put_drop(ctx, fobj, PDF_NAME_Ordering, pdf_new_string(ctx, doc, "Identity", strlen("Identity")));
- pdf_dict_put_drop(ctx, fobj, PDF_NAME_Registry, pdf_new_string(ctx, doc, "Adobe", strlen("Adobe")));
- pdf_dict_put_drop(ctx, fobj, PDF_NAME_Supplement, pdf_new_int(ctx, doc, 0));
+ pdf_dict_put_string(ctx, fobj, PDF_NAME_Ordering, "Identity", strlen("Identity"));
+ pdf_dict_put_string(ctx, fobj, PDF_NAME_Registry, "Adobe", strlen("Adobe"));
+ pdf_dict_put_int(ctx, fobj, PDF_NAME_Supplement, 0);
}
fz_catch(ctx)
{
@@ -1756,7 +1756,7 @@ pdf_add_cid_font_widths(fz_context *ctx, pdf_document *doc, pdf_font_desc *fontd
else
{
/* Add prev size to run_obj */
- pdf_array_push_drop(ctx, run_obj, pdf_new_int(ctx, doc, prev_size));
+ pdf_array_push_int(ctx, run_obj, prev_size);
}
break;
case FW_START:
@@ -1768,7 +1768,7 @@ pdf_add_cid_font_widths(fz_context *ctx, pdf_document *doc, pdf_font_desc *fontd
else
{
run_obj = pdf_new_array(ctx, doc, 10);
- pdf_array_push_drop(ctx, run_obj, pdf_new_int(ctx, doc, prev_size));
+ pdf_array_push_int(ctx, run_obj, prev_size);
state = FW_RUN;
}
new_first_code = prev_code;
@@ -1781,14 +1781,14 @@ pdf_add_cid_font_widths(fz_context *ctx, pdf_document *doc, pdf_font_desc *fontd
{
case FW_SAME:
/* Add three entries. First cid, last cid and width */
- pdf_array_push_drop(ctx, fwobj, pdf_new_int(ctx, doc, first_code));
- pdf_array_push_drop(ctx, fwobj, pdf_new_int(ctx, doc, prev_code));
- pdf_array_push_drop(ctx, fwobj, pdf_new_int(ctx, doc, prev_size));
+ pdf_array_push_int(ctx, fwobj, first_code);
+ pdf_array_push_int(ctx, fwobj, prev_code);
+ pdf_array_push_int(ctx, fwobj, prev_size);
break;
case FW_RUN:
if (pdf_array_len(ctx, run_obj) > 0)
{
- pdf_array_push_drop(ctx, fwobj, pdf_new_int(ctx, doc, first_code));
+ pdf_array_push_int(ctx, fwobj, first_code);
pdf_array_push(ctx, fwobj, run_obj);
}
pdf_drop_obj(ctx, run_obj);
@@ -1796,9 +1796,9 @@ pdf_add_cid_font_widths(fz_context *ctx, pdf_document *doc, pdf_font_desc *fontd
break;
case FW_START:
/* Lone wolf. Not part of a consecutive run */
- pdf_array_push_drop(ctx, fwobj, pdf_new_int(ctx, doc, prev_code));
- pdf_array_push_drop(ctx, fwobj, pdf_new_int(ctx, doc, prev_code));
- pdf_array_push_drop(ctx, fwobj, pdf_new_int(ctx, doc, prev_size));
+ pdf_array_push_int(ctx, fwobj, prev_code);
+ pdf_array_push_int(ctx, fwobj, prev_code);
+ pdf_array_push_int(ctx, fwobj, prev_size);
break;
}
@@ -1861,13 +1861,13 @@ pdf_add_descendant_font(fz_context *ctx, pdf_document *doc, pdf_font_desc *fontd
}
ps_name = FT_Get_Postscript_Name(face);
if (ps_name)
- pdf_dict_put_drop(ctx, fobj, PDF_NAME_BaseFont, pdf_new_name(ctx, doc, ps_name));
+ pdf_dict_put_name(ctx, fobj, PDF_NAME_BaseFont, ps_name);
else
- pdf_dict_put_drop(ctx, fobj, PDF_NAME_BaseFont, pdf_new_name(ctx, doc, font->name));
+ pdf_dict_put_name(ctx, fobj, PDF_NAME_BaseFont, font->name);
pdf_dict_put(ctx, fobj, PDF_NAME_CIDSystemInfo, fsys_ref);
pdf_dict_put(ctx, fobj, PDF_NAME_FontDescriptor, fdes_ref);
if (font->width_table != NULL)
- pdf_dict_put_drop(ctx, fobj, PDF_NAME_DW, pdf_new_int(ctx, doc, font->width_default));
+ pdf_dict_put_int(ctx, fobj, PDF_NAME_DW, font->width_default);
if (fw != NULL)
pdf_dict_put(ctx, fobj, PDF_NAME_W, fw);
@@ -2113,7 +2113,7 @@ pdf_add_cid_font(fz_context *ctx, pdf_document *doc, fz_font *font)
fobj = pdf_new_dict(ctx, doc, 10);
pdf_dict_put(ctx, fobj, PDF_NAME_Type, PDF_NAME_Font);
pdf_dict_put(ctx, fobj, PDF_NAME_Subtype, PDF_NAME_Type0);
- pdf_dict_put_drop(ctx, fobj, PDF_NAME_BaseFont, pdf_new_name(ctx, doc, font->name));
+ pdf_dict_put_name(ctx, fobj, PDF_NAME_BaseFont, font->name);
pdf_dict_put(ctx, fobj, PDF_NAME_Encoding, PDF_NAME_Identity_H);
obj_array = pdf_new_array(ctx, doc, 3);
@@ -2174,7 +2174,7 @@ pdf_add_simple_font(fz_context *ctx, pdf_document *doc, fz_font *font)
if (fref == NULL)
{
fobj = pdf_new_dict(ctx, doc, 10);
- pdf_dict_put_drop(ctx, fobj, PDF_NAME_Type, PDF_NAME_Font);
+ pdf_dict_put(ctx, fobj, PDF_NAME_Type, PDF_NAME_Font);
switch (ft_kind(face))
{
case TYPE1: pdf_dict_put(ctx, fobj, PDF_NAME_Subtype, PDF_NAME_Type1); break;
@@ -2187,7 +2187,7 @@ pdf_add_simple_font(fz_context *ctx, pdf_document *doc, fz_font *font)
const char *ps_name = FT_Get_Postscript_Name(face);
if (!ps_name)
ps_name = font->name;
- pdf_dict_put_drop(ctx, fobj, PDF_NAME_BaseFont, pdf_new_name(ctx, doc, ps_name));
+ pdf_dict_put_name(ctx, fobj, PDF_NAME_BaseFont, ps_name);
fontdesc = pdf_new_font_desc(ctx);
fontdesc->font = fz_keep_font(ctx, font);
@@ -2199,14 +2199,14 @@ pdf_add_simple_font(fz_context *ctx, pdf_document *doc, fz_font *font)
fdes_ref = pdf_add_font_descriptor(ctx, doc, fontdesc, fstr_ref);
fwidth_ref = pdf_add_simple_font_widths(ctx, doc, fontdesc, &first_char, &last_char);
- pdf_dict_put_drop(ctx, fobj, PDF_NAME_FirstChar, pdf_new_int(ctx, doc, first_char));
- pdf_dict_put_drop(ctx, fobj, PDF_NAME_LastChar, pdf_new_int(ctx, doc, last_char));
+ pdf_dict_put_int(ctx, fobj, PDF_NAME_FirstChar, first_char);
+ pdf_dict_put_int(ctx, fobj, PDF_NAME_LastChar, last_char);
pdf_dict_put(ctx, fobj, PDF_NAME_Widths, fwidth_ref);
pdf_dict_put(ctx, fobj, PDF_NAME_FontDescriptor, fdes_ref);
}
else
{
- pdf_dict_put_drop(ctx, fobj, PDF_NAME_BaseFont, pdf_new_name(ctx, doc, clean_font_name(font->name)));
+ pdf_dict_put_name(ctx, fobj, PDF_NAME_BaseFont, clean_font_name(font->name));
}
fref = pdf_add_object(ctx, doc, fobj);
diff --git a/source/pdf/pdf-form.c b/source/pdf/pdf-form.c
index 95b0da54..2ce950be 100644
--- a/source/pdf/pdf-form.c
+++ b/source/pdf/pdf-form.c
@@ -703,7 +703,7 @@ pdf_widget *pdf_create_widget(fz_context *ctx, pdf_document *doc, pdf_page *page
fz_try(ctx)
{
pdf_set_field_type(ctx, doc, annot->obj, type);
- pdf_dict_put_drop(ctx, annot->obj, PDF_NAME_T, pdf_new_string(ctx, doc, fieldname, strlen(fieldname)));
+ pdf_dict_put_string(ctx, annot->obj, PDF_NAME_T, fieldname, strlen(fieldname));
if (type == PDF_WIDGET_TYPE_SIGNATURE)
{
@@ -1340,8 +1340,8 @@ void pdf_signature_set_value(fz_context *ctx, pdf_document *doc, pdf_obj *field,
contents = pdf_new_string(ctx, doc, buf, sizeof(buf));
pdf_dict_put_drop(ctx, v, PDF_NAME_Contents, contents);
- pdf_dict_put_drop(ctx, v, PDF_NAME_Filter, PDF_NAME_Adobe_PPKLite);
- pdf_dict_put_drop(ctx, v, PDF_NAME_SubFilter, PDF_NAME_adbe_pkcs7_detached);
+ pdf_dict_put(ctx, v, PDF_NAME_Filter, PDF_NAME_Adobe_PPKLite);
+ pdf_dict_put(ctx, v, PDF_NAME_SubFilter, PDF_NAME_adbe_pkcs7_detached);
/* Record details within the document structure so that contents
* and byte_range can be updated with their correct values at
diff --git a/source/pdf/pdf-image.c b/source/pdf/pdf-image.c
index eeb4f0f2..c5c0f3ad 100644
--- a/source/pdf/pdf-image.c
+++ b/source/pdf/pdf-image.c
@@ -327,8 +327,8 @@ pdf_add_image(fz_context *ctx, pdf_document *doc, fz_image *image, int mask)
{
imobj = pdf_new_dict(ctx, doc, 3);
pdf_dict_put_drop(ctx, imobj, PDF_NAME_DecodeParms, dp = pdf_new_dict(ctx, doc, 3));
- pdf_dict_put_drop(ctx, imobj, PDF_NAME_Type, PDF_NAME_XObject);
- pdf_dict_put_drop(ctx, imobj, PDF_NAME_Subtype, PDF_NAME_Image);
+ pdf_dict_put(ctx, imobj, PDF_NAME_Type, PDF_NAME_XObject);
+ pdf_dict_put(ctx, imobj, PDF_NAME_Subtype, PDF_NAME_Image);
if (cbuffer)
{
@@ -339,60 +339,60 @@ pdf_add_image(fz_context *ctx, pdf_document *doc, fz_image *image, int mask)
goto raw_or_unknown_compression;
case FZ_IMAGE_JPEG:
if (cp->u.jpeg.color_transform != -1)
- pdf_dict_put_drop(ctx, dp, PDF_NAME_ColorTransform, pdf_new_int(ctx, doc, cp->u.jpeg.color_transform));
- pdf_dict_put_drop(ctx, imobj, PDF_NAME_Filter, PDF_NAME_DCTDecode);
+ pdf_dict_put_int(ctx, dp, PDF_NAME_ColorTransform, cp->u.jpeg.color_transform);
+ pdf_dict_put(ctx, imobj, PDF_NAME_Filter, PDF_NAME_DCTDecode);
break;
case FZ_IMAGE_JPX:
if (cp->u.jpx.smask_in_data)
- pdf_dict_put_drop(ctx, dp, PDF_NAME_SMaskInData, pdf_new_int(ctx, doc, cp->u.jpx.smask_in_data));
- pdf_dict_put_drop(ctx, imobj, PDF_NAME_Filter, PDF_NAME_JPXDecode);
+ pdf_dict_put_int(ctx, dp, PDF_NAME_SMaskInData, cp->u.jpx.smask_in_data);
+ pdf_dict_put(ctx, imobj, PDF_NAME_Filter, PDF_NAME_JPXDecode);
break;
case FZ_IMAGE_FAX:
if (cp->u.fax.columns)
- pdf_dict_put_drop(ctx, dp, PDF_NAME_Columns, pdf_new_int(ctx, doc, cp->u.fax.columns));
+ pdf_dict_put_int(ctx, dp, PDF_NAME_Columns, cp->u.fax.columns);
if (cp->u.fax.rows)
- pdf_dict_put_drop(ctx, dp, PDF_NAME_Rows, pdf_new_int(ctx, doc, cp->u.fax.rows));
+ pdf_dict_put_int(ctx, dp, PDF_NAME_Rows, cp->u.fax.rows);
if (cp->u.fax.k)
- pdf_dict_put_drop(ctx, dp, PDF_NAME_K, pdf_new_int(ctx, doc, cp->u.fax.k));
+ pdf_dict_put_int(ctx, dp, PDF_NAME_K, cp->u.fax.k);
if (cp->u.fax.end_of_line)
- pdf_dict_put_drop(ctx, dp, PDF_NAME_EndOfLine, pdf_new_int(ctx, doc, cp->u.fax.end_of_line));
+ pdf_dict_put_int(ctx, dp, PDF_NAME_EndOfLine, cp->u.fax.end_of_line);
if (cp->u.fax.encoded_byte_align)
- pdf_dict_put_drop(ctx, dp, PDF_NAME_EncodedByteAlign, pdf_new_int(ctx, doc, cp->u.fax.encoded_byte_align));
+ pdf_dict_put_int(ctx, dp, PDF_NAME_EncodedByteAlign, cp->u.fax.encoded_byte_align);
if (cp->u.fax.end_of_block)
- pdf_dict_put_drop(ctx, dp, PDF_NAME_EndOfBlock, pdf_new_int(ctx, doc, cp->u.fax.end_of_block));
+ pdf_dict_put_int(ctx, dp, PDF_NAME_EndOfBlock, cp->u.fax.end_of_block);
if (cp->u.fax.black_is_1)
- pdf_dict_put_drop(ctx, dp, PDF_NAME_BlackIs1, pdf_new_int(ctx, doc, cp->u.fax.black_is_1));
+ pdf_dict_put_int(ctx, dp, PDF_NAME_BlackIs1, cp->u.fax.black_is_1);
if (cp->u.fax.damaged_rows_before_error)
- pdf_dict_put_drop(ctx, dp, PDF_NAME_DamagedRowsBeforeError, pdf_new_int(ctx, doc, cp->u.fax.damaged_rows_before_error));
- pdf_dict_put_drop(ctx, imobj, PDF_NAME_Filter, PDF_NAME_CCITTFaxDecode);
+ pdf_dict_put_int(ctx, dp, PDF_NAME_DamagedRowsBeforeError, cp->u.fax.damaged_rows_before_error);
+ pdf_dict_put(ctx, imobj, PDF_NAME_Filter, PDF_NAME_CCITTFaxDecode);
break;
case FZ_IMAGE_FLATE:
if (cp->u.flate.columns)
- pdf_dict_put_drop(ctx, dp, PDF_NAME_Columns, pdf_new_int(ctx, doc, cp->u.flate.columns));
+ pdf_dict_put_int(ctx, dp, PDF_NAME_Columns, cp->u.flate.columns);
if (cp->u.flate.colors)
- pdf_dict_put_drop(ctx, dp, PDF_NAME_Colors, pdf_new_int(ctx, doc, cp->u.flate.colors));
+ pdf_dict_put_int(ctx, dp, PDF_NAME_Colors, cp->u.flate.colors);
if (cp->u.flate.predictor)
- pdf_dict_put_drop(ctx, dp, PDF_NAME_Predictor, pdf_new_int(ctx, doc, cp->u.flate.predictor));
+ pdf_dict_put_int(ctx, dp, PDF_NAME_Predictor, cp->u.flate.predictor);
if (cp->u.flate.bpc)
- pdf_dict_put_drop(ctx, dp, PDF_NAME_BitsPerComponent, pdf_new_int(ctx, doc, cp->u.flate.bpc));
- pdf_dict_put_drop(ctx, imobj, PDF_NAME_Filter, PDF_NAME_FlateDecode);
- pdf_dict_put_drop(ctx, imobj, PDF_NAME_BitsPerComponent, pdf_new_int(ctx, doc, image->bpc));
+ pdf_dict_put_int(ctx, dp, PDF_NAME_BitsPerComponent, cp->u.flate.bpc);
+ pdf_dict_put(ctx, imobj, PDF_NAME_Filter, PDF_NAME_FlateDecode);
+ pdf_dict_put_int(ctx, imobj, PDF_NAME_BitsPerComponent, image->bpc);
break;
case FZ_IMAGE_LZW:
if (cp->u.lzw.columns)
- pdf_dict_put_drop(ctx, dp, PDF_NAME_Columns, pdf_new_int(ctx, doc, cp->u.lzw.columns));
+ pdf_dict_put_int(ctx, dp, PDF_NAME_Columns, cp->u.lzw.columns);
if (cp->u.lzw.colors)
- pdf_dict_put_drop(ctx, dp, PDF_NAME_Colors, pdf_new_int(ctx, doc, cp->u.lzw.colors));
+ pdf_dict_put_int(ctx, dp, PDF_NAME_Colors, cp->u.lzw.colors);
if (cp->u.lzw.predictor)
- pdf_dict_put_drop(ctx, dp, PDF_NAME_Predictor, pdf_new_int(ctx, doc, cp->u.lzw.predictor));
+ pdf_dict_put_int(ctx, dp, PDF_NAME_Predictor, cp->u.lzw.predictor);
if (cp->u.lzw.early_change)
- pdf_dict_put_drop(ctx, dp, PDF_NAME_EarlyChange, pdf_new_int(ctx, doc, cp->u.lzw.early_change));
+ pdf_dict_put_int(ctx, dp, PDF_NAME_EarlyChange, cp->u.lzw.early_change);
if (cp->u.lzw.bpc)
- pdf_dict_put_drop(ctx, dp, PDF_NAME_BitsPerComponent, pdf_new_int(ctx, doc, cp->u.lzw.bpc));
- pdf_dict_put_drop(ctx, imobj, PDF_NAME_Filter, PDF_NAME_LZWDecode);
+ pdf_dict_put_int(ctx, dp, PDF_NAME_BitsPerComponent, cp->u.lzw.bpc);
+ pdf_dict_put(ctx, imobj, PDF_NAME_Filter, PDF_NAME_LZWDecode);
break;
case FZ_IMAGE_RLD:
- pdf_dict_put_drop(ctx, imobj, PDF_NAME_Filter, PDF_NAME_RunLengthDecode);
+ pdf_dict_put(ctx, imobj, PDF_NAME_Filter, PDF_NAME_RunLengthDecode);
break;
}
@@ -454,18 +454,18 @@ raw_or_unknown_compression:
}
}
- pdf_dict_put_drop(ctx, imobj, PDF_NAME_Width, pdf_new_int(ctx, doc, pixmap ? pixmap->w : image->w));
- pdf_dict_put_drop(ctx, imobj, PDF_NAME_Height, pdf_new_int(ctx, doc, pixmap ? pixmap->h : image->h));
+ pdf_dict_put_int(ctx, imobj, PDF_NAME_Width, pixmap ? pixmap->w : image->w);
+ pdf_dict_put_int(ctx, imobj, PDF_NAME_Height, pixmap ? pixmap->h : image->h);
if (mask)
{
- pdf_dict_put_drop(ctx, imobj, PDF_NAME_ImageMask, pdf_new_bool(ctx, doc, 1));
+ pdf_dict_put_bool(ctx, imobj, PDF_NAME_ImageMask, 1);
}
else
{
fz_colorspace *cs;
- pdf_dict_put_drop(ctx, imobj, PDF_NAME_BitsPerComponent, pdf_new_int(ctx, doc, image->bpc));
+ pdf_dict_put_int(ctx, imobj, PDF_NAME_BitsPerComponent, image->bpc);
cs = pixmap ? pixmap->colorspace : image->colorspace;
switch (fz_colorspace_type(ctx, cs))
@@ -484,17 +484,17 @@ raw_or_unknown_compression:
pdf_dict_put_drop(ctx, imobj, PDF_NAME_ColorSpace, arr = pdf_new_array(ctx, doc, 4));
- pdf_array_put_drop(ctx, arr, 0, PDF_NAME_Indexed);
+ pdf_array_push(ctx, arr, PDF_NAME_Indexed);
switch (fz_colorspace_type(ctx, basecs))
{
case FZ_COLORSPACE_GRAY:
- pdf_array_put_drop(ctx, arr, 1, PDF_NAME_DeviceGray);
+ pdf_array_push(ctx, arr, PDF_NAME_DeviceGray);
break;
case FZ_COLORSPACE_RGB:
- pdf_array_put_drop(ctx, arr, 1, PDF_NAME_DeviceRGB);
+ pdf_array_push(ctx, arr, PDF_NAME_DeviceRGB);
break;
case FZ_COLORSPACE_CMYK:
- pdf_array_put_drop(ctx, arr, 1, PDF_NAME_DeviceCMYK);
+ pdf_array_push(ctx, arr, PDF_NAME_DeviceCMYK);
break;
default:
// TODO: convert to RGB!
@@ -502,18 +502,18 @@ raw_or_unknown_compression:
break;
}
- pdf_array_put_drop(ctx, arr, 2, pdf_new_int(ctx, doc, high));
- pdf_array_put_drop(ctx, arr, 3, pdf_new_string(ctx, doc, (char *) lookup, basen * (high + 1)));
+ pdf_array_push_int(ctx, arr, high);
+ pdf_array_push_string(ctx, arr, (char *) lookup, basen * (high + 1));
}
break;
case FZ_COLORSPACE_GRAY:
- pdf_dict_put_drop(ctx, imobj, PDF_NAME_ColorSpace, PDF_NAME_DeviceGray);
+ pdf_dict_put(ctx, imobj, PDF_NAME_ColorSpace, PDF_NAME_DeviceGray);
break;
case FZ_COLORSPACE_RGB:
- pdf_dict_put_drop(ctx, imobj, PDF_NAME_ColorSpace, PDF_NAME_DeviceRGB);
+ pdf_dict_put(ctx, imobj, PDF_NAME_ColorSpace, PDF_NAME_DeviceRGB);
break;
case FZ_COLORSPACE_CMYK:
- pdf_dict_put_drop(ctx, imobj, PDF_NAME_ColorSpace, PDF_NAME_DeviceCMYK);
+ pdf_dict_put(ctx, imobj, PDF_NAME_ColorSpace, PDF_NAME_DeviceCMYK);
break;
default:
// TODO: convert to RGB!
diff --git a/source/pdf/pdf-interpret.c b/source/pdf/pdf-interpret.c
index 3aeeeae7..1c781b9e 100644
--- a/source/pdf/pdf-interpret.c
+++ b/source/pdf/pdf-interpret.c
@@ -848,13 +848,13 @@ pdf_process_stream(fz_context *ctx, pdf_processor *proc, pdf_csi *csi, fz_stream
in_text_array = 0;
break;
case PDF_TOK_REAL:
- pdf_array_push_drop(ctx, csi->obj, pdf_new_real(ctx, doc, buf->f));
+ pdf_array_push_real(ctx, csi->obj, buf->f);
break;
case PDF_TOK_INT:
- pdf_array_push_drop(ctx, csi->obj, pdf_new_int(ctx, doc, buf->i));
+ pdf_array_push_int(ctx, csi->obj, buf->i);
break;
case PDF_TOK_STRING:
- pdf_array_push_drop(ctx, csi->obj, pdf_new_string(ctx, doc, buf->scratch, buf->len));
+ pdf_array_push_string(ctx, csi->obj, buf->scratch, buf->len);
break;
case PDF_TOK_EOF:
break;
diff --git a/source/pdf/pdf-js.c b/source/pdf/pdf-js.c
index 5b1fb670..82018065 100644
--- a/source/pdf/pdf-js.c
+++ b/source/pdf/pdf-js.c
@@ -228,7 +228,7 @@ static pdf_obj *load_color(pdf_js *js, int idx)
c = js_tonumber(J, -1);
js_pop(J, 1);
- pdf_array_push_drop(ctx, color, pdf_new_real(ctx, doc, c));
+ pdf_array_push_real(ctx, color, c);
}
}
fz_catch(ctx)
diff --git a/source/pdf/pdf-op-filter.c b/source/pdf/pdf-op-filter.c
index 714bb4b7..237287fe 100644
--- a/source/pdf/pdf-op-filter.c
+++ b/source/pdf/pdf-op-filter.c
@@ -558,12 +558,12 @@ filter_show_string(fz_context *ctx, pdf_filter_processor *p, unsigned char *buf,
send_adjustment(ctx, p, skip);
}
-static pdf_obj *
+static float
adjustment(fz_context *ctx, pdf_filter_processor *p, fz_point skip)
{
float skip_dist = p->tos.fontdesc->wmode == 1 ? -skip.y : -skip.x;
skip_dist = skip_dist / p->gstate->pending.text.size;
- return pdf_new_real(ctx, p->doc, skip_dist * 1000);
+ return skip_dist * 1000;
}
@@ -613,10 +613,10 @@ filter_show_text(fz_context *ctx, pdf_filter_processor *p, pdf_obj *text)
/* We have *some* chars to send at least */
if (skip.x != 0 || skip.y != 0)
{
- pdf_array_push_drop(ctx, new_arr, adjustment(ctx, p, skip));
+ pdf_array_push_real(ctx, new_arr, adjustment(ctx, p, skip));
skip.x = skip.y = 0;
}
- pdf_array_push_drop(ctx, new_arr, pdf_new_string(ctx, doc, (char *)buf+start, j-start));
+ pdf_array_push_string(ctx, new_arr, (char *)buf+start, j-start);
}
if (j != len)
{
@@ -643,7 +643,7 @@ filter_show_text(fz_context *ctx, pdf_filter_processor *p, pdf_obj *text)
}
}
if (skip.x != 0 || skip.y != 0)
- pdf_array_push_drop(ctx, new_arr, adjustment(ctx, p, skip));
+ pdf_array_push_real(ctx, new_arr, adjustment(ctx, p, skip));
if (p->chain->op_TJ && pdf_array_len(ctx, new_arr))
p->chain->op_TJ(ctx, p->chain, new_arr);
}
diff --git a/source/pdf/pdf-page.c b/source/pdf/pdf-page.c
index 881150b8..9d8a27ec 100644
--- a/source/pdf/pdf-page.c
+++ b/source/pdf/pdf-page.c
@@ -1138,7 +1138,7 @@ pdf_delete_page(fz_context *ctx, pdf_document *doc, int at)
while (parent)
{
int count = pdf_to_int(ctx, pdf_dict_get(ctx, parent, PDF_NAME_Count));
- pdf_dict_put_drop(ctx, parent, PDF_NAME_Count, pdf_new_int(ctx, doc, count - 1));
+ pdf_dict_put_int(ctx, parent, PDF_NAME_Count, count - 1);
parent = pdf_dict_get(ctx, parent, PDF_NAME_Parent);
}
}
@@ -1165,9 +1165,9 @@ pdf_add_page(fz_context *ctx, pdf_document *doc, const fz_rect *mediabox, int ro
pdf_obj *page_obj = pdf_new_dict(ctx, doc, 5);
fz_try(ctx)
{
- pdf_dict_put_drop(ctx, page_obj, PDF_NAME_Type, PDF_NAME_Page);
- pdf_dict_put_drop(ctx, page_obj, PDF_NAME_MediaBox, pdf_new_rect(ctx, doc, mediabox));
- pdf_dict_put_drop(ctx, page_obj, PDF_NAME_Rotate, pdf_new_int(ctx, doc, rotate));
+ pdf_dict_put(ctx, page_obj, PDF_NAME_Type, PDF_NAME_Page);
+ pdf_dict_put_rect(ctx, page_obj, PDF_NAME_MediaBox, mediabox);
+ pdf_dict_put_int(ctx, page_obj, PDF_NAME_Rotate, rotate);
if (pdf_is_indirect(ctx, resources))
pdf_dict_put(ctx, page_obj, PDF_NAME_Resources, resources);
@@ -1233,7 +1233,7 @@ pdf_insert_page(fz_context *ctx, pdf_document *doc, int at, pdf_obj *page_ref)
while (parent)
{
count = pdf_to_int(ctx, pdf_dict_get(ctx, parent, PDF_NAME_Count));
- pdf_dict_put_drop(ctx, parent, PDF_NAME_Count, pdf_new_int(ctx, doc, count + 1));
+ pdf_dict_put_int(ctx, parent, PDF_NAME_Count, count + 1);
parent = pdf_dict_get(ctx, parent, PDF_NAME_Parent);
}
}
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;
}
}
diff --git a/source/pdf/pdf-portfolio.c b/source/pdf/pdf-portfolio.c
index 08dc1b61..4821e8be 100644
--- a/source/pdf/pdf-portfolio.c
+++ b/source/pdf/pdf-portfolio.c
@@ -152,7 +152,7 @@ void pdf_reorder_portfolio_schema(fz_context *ctx, pdf_document *doc, int entry,
/* Rewrite the underlying orderings */
for (p = doc->portfolio, entry = 0; p; p = p->next, entry++)
- pdf_dict_put_drop(ctx, p->val, PDF_NAME_O, pdf_new_int(ctx, doc, entry));
+ pdf_dict_put_int(ctx, p->val, PDF_NAME_O, entry);
}
void pdf_rename_portfolio_schema(fz_context *ctx, pdf_document *doc, int entry, const char *name, int name_len)
@@ -325,8 +325,8 @@ void pdf_add_portfolio_schema(fz_context *ctx, pdf_document *doc, int entry, con
while (p);
sc = pdf_new_dict(ctx, doc, 4);
- pdf_dict_put_drop(ctx, sc, PDF_NAME_E, pdf_new_bool(ctx, doc, !!info->editable));
- pdf_dict_put_drop(ctx, sc, PDF_NAME_V, pdf_new_bool(ctx, doc, !!info->visible));
+ pdf_dict_put_bool(ctx, sc, PDF_NAME_E, !!info->editable);
+ pdf_dict_put_bool(ctx, sc, PDF_NAME_V, !!info->visible);
pdf_dict_put_drop(ctx, sc, PDF_NAME_N, info->name);
pdf_dict_put(ctx, sc, PDF_NAME_Subtype, PDF_NAME_S);
@@ -346,7 +346,7 @@ void pdf_add_portfolio_schema(fz_context *ctx, pdf_document *doc, int entry, con
/* Renumber the schema entries */
for (num = 0, p = doc->portfolio; p; num++, p = p->next)
{
- pdf_dict_put_drop(ctx, p->val, PDF_NAME_O, pdf_new_int(ctx, doc, num));
+ pdf_dict_put_int(ctx, p->val, PDF_NAME_O, num);
p->sort = num;
}
}
@@ -633,16 +633,16 @@ int pdf_add_portfolio_entry(fz_context *ctx, pdf_document *doc,
val = pdf_new_dict(ctx, doc, 6);
pdf_dict_put_drop(ctx, val, PDF_NAME_CI, pdf_new_dict(ctx, doc, 4));
pdf_dict_put_drop(ctx, val, PDF_NAME_EF, (ef = pdf_new_dict(ctx, doc, 4)));
- pdf_dict_put_drop(ctx, val, PDF_NAME_F, pdf_new_string(ctx, doc, filename, filename_len));
- pdf_dict_put_drop(ctx, val, PDF_NAME_UF, pdf_new_string(ctx, doc, unifile, unifile_len));
- pdf_dict_put_drop(ctx, val, PDF_NAME_Desc, pdf_new_string(ctx, doc, desc, desc_len));
- pdf_dict_put_drop(ctx, val, PDF_NAME_Type, PDF_NAME_Filespec);
+ pdf_dict_put_string(ctx, val, PDF_NAME_F, filename, filename_len);
+ pdf_dict_put_string(ctx, val, PDF_NAME_UF, unifile, unifile_len);
+ pdf_dict_put_string(ctx, val, PDF_NAME_Desc, desc, desc_len);
+ pdf_dict_put(ctx, val, PDF_NAME_Type, PDF_NAME_Filespec);
pdf_dict_put_drop(ctx, ef, PDF_NAME_F, (f = pdf_add_stream(ctx, doc, buf, NULL, 0)));
len = fz_buffer_storage(ctx, buf, NULL);
- pdf_dict_put_drop(ctx, f, PDF_NAME_DL, pdf_new_int(ctx, doc, len));
- pdf_dict_put_drop(ctx, f, PDF_NAME_Length, pdf_new_int(ctx, doc, len));
+ pdf_dict_put_int(ctx, f, PDF_NAME_DL, len);
+ pdf_dict_put_int(ctx, f, PDF_NAME_Length, len);
pdf_dict_put_drop(ctx, f, PDF_NAME_Params, (params = pdf_new_dict(ctx, doc, 4)));
- pdf_dict_put_drop(ctx, params, PDF_NAME_Size, pdf_new_int(ctx, doc, len));
+ pdf_dict_put_int(ctx, params, PDF_NAME_Size, len);
s = pdf_dict_getl(ctx, pdf_trailer(ctx, doc), PDF_NAME_Root, PDF_NAME_Collection, NULL);
if (s == NULL)
diff --git a/source/pdf/pdf-write.c b/source/pdf/pdf-write.c
index 28a505f9..a7326a17 100644
--- a/source/pdf/pdf-write.c
+++ b/source/pdf/pdf-write.c
@@ -620,7 +620,7 @@ static int markobj(fz_context *ctx, pdf_document *doc, pdf_write_state *opts, pd
{
DEBUGGING_MARKING(indent(); printf("ARRAY[%d/%d]\n", i, n));
if (markobj(ctx, doc, opts, pdf_array_get(ctx, obj, i)))
- pdf_array_put_drop(ctx, obj, i, pdf_new_null(ctx, doc));
+ pdf_array_put(ctx, obj, i, PDF_OBJ_NULL);
}
}
@@ -1185,7 +1185,7 @@ add_linearization_objs(fz_context *ctx, pdf_document *doc, pdf_write_state *opts
opts->renumber_map[params_num] = params_num;
opts->rev_renumber_map[params_num] = params_num;
opts->gen_list[params_num] = 0;
- pdf_dict_put_drop(ctx, params_obj, PDF_NAME_Linearized, pdf_new_real(ctx, doc, 1.0f));
+ pdf_dict_put_real(ctx, params_obj, PDF_NAME_Linearized, 1.0f);
opts->linear_l = pdf_new_int(ctx, doc, INT_MIN);
pdf_dict_put(ctx, params_obj, PDF_NAME_L, opts->linear_l);
opts->linear_h0 = pdf_new_int(ctx, doc, INT_MIN);
@@ -1212,7 +1212,7 @@ add_linearization_objs(fz_context *ctx, pdf_document *doc, pdf_write_state *opts
opts->renumber_map[hint_num] = hint_num;
opts->rev_renumber_map[hint_num] = hint_num;
opts->gen_list[hint_num] = 0;
- pdf_dict_put_drop(ctx, hint_obj, PDF_NAME_P, pdf_new_int(ctx, doc, 0));
+ pdf_dict_put_int(ctx, hint_obj, PDF_NAME_P, 0);
opts->hints_s = pdf_new_int(ctx, doc, INT_MIN);
pdf_dict_put(ctx, hint_obj, PDF_NAME_S, opts->hints_s);
/* FIXME: Do we have thumbnails? Do a T entry */
@@ -1223,7 +1223,7 @@ add_linearization_objs(fz_context *ctx, pdf_document *doc, pdf_write_state *opts
/* FIXME: Do we have document information? Do an I entry */
/* FIXME: Do we have logical structure hierarchy? Do a C entry */
/* FIXME: Do L, Page Label hint table */
- pdf_dict_put_drop(ctx, hint_obj, PDF_NAME_Filter, PDF_NAME_FlateDecode);
+ pdf_dict_put(ctx, hint_obj, PDF_NAME_Filter, PDF_NAME_FlateDecode);
opts->hints_length = pdf_new_int(ctx, doc, INT_MIN);
pdf_dict_put(ctx, hint_obj, PDF_NAME_Length, opts->hints_length);
pdf_get_xref_entry(ctx, doc, hint_num)->stm_ofs = -1;
@@ -1605,7 +1605,7 @@ static void addhexfilter(fz_context *ctx, pdf_document *doc, pdf_obj *dict)
if (pdf_is_dict(ctx, dp))
{
newdp = pdf_new_array(ctx, doc, 2);
- pdf_array_push_drop(ctx, newdp, pdf_new_null(ctx, doc));
+ pdf_array_push(ctx, newdp, PDF_OBJ_NULL);
pdf_array_push(ctx, newdp, dp);
dp = newdp;
}
@@ -1723,7 +1723,6 @@ static void copystream(fz_context *ctx, pdf_document *doc, pdf_write_state *opts
static void expandstream(fz_context *ctx, pdf_document *doc, pdf_write_state *opts, pdf_obj *obj_orig, int num, int gen, int do_deflate)
{
fz_buffer *buf, *tmp;
- pdf_obj *newlen;
pdf_obj *obj;
int truncated = 0;
size_t len;
@@ -1769,8 +1768,7 @@ static void expandstream(fz_context *ctx, pdf_document *doc, pdf_write_state *op
addhexfilter(ctx, doc, obj);
}
- newlen = pdf_new_int(ctx, doc, (int)len);
- pdf_dict_put_drop(ctx, obj, PDF_NAME_Length, newlen);
+ pdf_dict_put_int(ctx, obj, PDF_NAME_Length, len);
fz_write_printf(ctx, opts->out, "%d %d obj\n", num, gen);
pdf_print_encrypted_obj(ctx, opts->out, obj, opts->do_tight, doc->crypt, num, gen);
@@ -2000,8 +1998,8 @@ static void writexref(fz_context *ctx, pdf_document *doc, pdf_write_state *opts,
if (opts->do_incremental)
{
trailer = pdf_keep_obj(ctx, pdf_trailer(ctx, doc));
- pdf_dict_put_drop(ctx, trailer, PDF_NAME_Size, pdf_new_int(ctx, doc, pdf_xref_len(ctx, doc)));
- pdf_dict_put_drop(ctx, trailer, PDF_NAME_Prev, pdf_new_int(ctx, doc, doc->startxref));
+ pdf_dict_put_int(ctx, trailer, PDF_NAME_Size, pdf_xref_len(ctx, doc));
+ pdf_dict_put_int(ctx, trailer, PDF_NAME_Prev, doc->startxref);
doc->startxref = startxref;
}
else
@@ -2052,8 +2050,8 @@ static void writexrefstreamsubsect(fz_context *ctx, pdf_document *doc, pdf_write
{
int num;
- pdf_array_push_drop(ctx, index, pdf_new_int(ctx, doc, from));
- pdf_array_push_drop(ctx, index, pdf_new_int(ctx, doc, to - from));
+ pdf_array_push_int(ctx, index, from);
+ pdf_array_push_int(ctx, index, to - from);
for (num = from; num < to; num++)
{
fz_append_byte(ctx, fzbuf, opts->use_list[num] ? 1 : 0);
@@ -2109,26 +2107,26 @@ static void writexrefstream(fz_context *ctx, pdf_document *doc, pdf_write_state
}
}
- pdf_dict_put_drop(ctx, dict, PDF_NAME_Size, pdf_new_int(ctx, doc, to));
+ pdf_dict_put_int(ctx, dict, PDF_NAME_Size, to);
if (opts->do_incremental)
{
- pdf_dict_put_drop(ctx, dict, PDF_NAME_Prev, pdf_new_int(ctx, doc, doc->startxref));
+ pdf_dict_put_int(ctx, dict, PDF_NAME_Prev, doc->startxref);
doc->startxref = startxref;
}
else
{
if (main_xref_offset != 0)
- pdf_dict_put_drop(ctx, dict, PDF_NAME_Prev, pdf_new_int(ctx, doc, main_xref_offset));
+ pdf_dict_put_int(ctx, dict, PDF_NAME_Prev, main_xref_offset);
}
- pdf_dict_put_drop(ctx, dict, PDF_NAME_Type, PDF_NAME_XRef);
+ pdf_dict_put(ctx, dict, PDF_NAME_Type, PDF_NAME_XRef);
w = pdf_new_array(ctx, doc, 3);
pdf_dict_put(ctx, dict, PDF_NAME_W, w);
- pdf_array_push_drop(ctx, w, pdf_new_int(ctx, doc, 1));
- pdf_array_push_drop(ctx, w, pdf_new_int(ctx, doc, 4));
- pdf_array_push_drop(ctx, w, pdf_new_int(ctx, doc, 1));
+ pdf_array_push_int(ctx, w, 1);
+ pdf_array_push_int(ctx, w, 4);
+ pdf_array_push_int(ctx, w, 1);
index = pdf_new_array(ctx, doc, 2);
pdf_dict_put_drop(ctx, dict, PDF_NAME_Index, index);
@@ -2616,8 +2614,8 @@ static void presize_unsaved_signature_byteranges(fz_context *ctx, pdf_document *
for (i = 0; i < n+1; i++)
{
- pdf_array_push_drop(ctx, byte_range, pdf_new_int(ctx, doc, INT_MAX));
- pdf_array_push_drop(ctx, byte_range, pdf_new_int(ctx, doc, INT_MAX));
+ pdf_array_push_int(ctx, byte_range, INT_MAX);
+ pdf_array_push_int(ctx, byte_range, INT_MAX);
}
}
}
@@ -2678,12 +2676,12 @@ static void complete_signatures(fz_context *ctx, pdf_document *doc, pdf_write_st
last_end = 0;
for (usig = xref->unsaved_sigs; usig; usig = usig->next)
{
- pdf_array_push_drop(ctx, byte_range, pdf_new_int(ctx, doc, last_end));
- pdf_array_push_drop(ctx, byte_range, pdf_new_int(ctx, doc, usig->contents_start - last_end));
+ pdf_array_push_int(ctx, byte_range, last_end);
+ pdf_array_push_int(ctx, byte_range, usig->contents_start - last_end);
last_end = usig->contents_end;
}
- pdf_array_push_drop(ctx, byte_range, pdf_new_int(ctx, doc, last_end));
- pdf_array_push_drop(ctx, byte_range, pdf_new_int(ctx, doc, xref->end_ofs - last_end));
+ pdf_array_push_int(ctx, byte_range, last_end);
+ pdf_array_push_int(ctx, byte_range, xref->end_ofs - last_end);
/* Copy the new ByteRange to the other unsaved signatures */
for (usig = xref->unsaved_sigs->next; usig; usig = usig->next)
@@ -3197,8 +3195,8 @@ make_page_tree_node(fz_context *ctx, pdf_document *doc, int l, int r, pdf_obj *p
fz_try(ctx)
{
me = pdf_new_dict(ctx, doc, 2);
- pdf_dict_put_drop(ctx, me, PDF_NAME_Type, PDF_NAME_Pages);
- pdf_dict_put_drop(ctx, me, PDF_NAME_Count, pdf_new_int(ctx, doc, r-l));
+ pdf_dict_put(ctx, me, PDF_NAME_Type, PDF_NAME_Pages);
+ pdf_dict_put_int(ctx, me, PDF_NAME_Count, r-l);
if (!root)
pdf_dict_put(ctx, me, PDF_NAME_Parent, parent_ref);
a = pdf_new_array(ctx, doc, KIDS_PER_LEVEL);
diff --git a/source/pdf/pdf-xobject.c b/source/pdf/pdf-xobject.c
index 38a31c48..bac856fd 100644
--- a/source/pdf/pdf-xobject.c
+++ b/source/pdf/pdf-xobject.c
@@ -134,10 +134,10 @@ pdf_new_xobject(fz_context *ctx, pdf_document *doc, const fz_rect *bbox, const f
fz_try(ctx)
{
dict = pdf_new_dict(ctx, doc, 0);
- pdf_dict_put_drop(ctx, dict, PDF_NAME_BBox, pdf_new_rect(ctx, doc, bbox));
- pdf_dict_put_drop(ctx, dict, PDF_NAME_FormType, pdf_new_int(ctx, doc, 1));
- pdf_dict_put_drop(ctx, dict, PDF_NAME_Length, pdf_new_int(ctx, doc, 0));
- pdf_dict_put_drop(ctx, dict, PDF_NAME_Matrix, pdf_new_matrix(ctx, doc, mat));
+ pdf_dict_put_rect(ctx, dict, PDF_NAME_BBox, bbox);
+ pdf_dict_put_int(ctx, dict, PDF_NAME_FormType, 1);
+ pdf_dict_put_int(ctx, dict, PDF_NAME_Length, 0);
+ pdf_dict_put_matrix(ctx, dict, PDF_NAME_Matrix, mat);
res = pdf_new_dict(ctx, doc, 0);
pdf_dict_put(ctx, dict, PDF_NAME_Resources, res);
diff --git a/source/pdf/pdf-xref.c b/source/pdf/pdf-xref.c
index cfcd0a21..723b543c 100644
--- a/source/pdf/pdf-xref.c
+++ b/source/pdf/pdf-xref.c
@@ -2699,14 +2699,14 @@ pdf_document *pdf_create_document(fz_context *ctx)
pdf_get_populating_xref_entry(ctx, doc, 0);
trailer = pdf_new_dict(ctx, doc, 2);
- pdf_dict_put_drop(ctx, trailer, PDF_NAME_Size, pdf_new_int(ctx, doc, 3));
+ pdf_dict_put_int(ctx, trailer, PDF_NAME_Size, 3);
root = pdf_new_dict(ctx, doc, 2);
pdf_dict_put_drop(ctx, trailer, PDF_NAME_Root, pdf_add_object_drop(ctx, doc, root));
- pdf_dict_put_drop(ctx, root, PDF_NAME_Type, PDF_NAME_Catalog);
+ pdf_dict_put(ctx, root, PDF_NAME_Type, PDF_NAME_Catalog);
pages = pdf_new_dict(ctx, doc, 3);
pdf_dict_put_drop(ctx, root, PDF_NAME_Pages, pdf_add_object_drop(ctx, doc, pages));
- pdf_dict_put_drop(ctx, pages, PDF_NAME_Type, PDF_NAME_Pages);
- pdf_dict_put_drop(ctx, pages, PDF_NAME_Count, pdf_new_int(ctx, doc, 0));
+ pdf_dict_put(ctx, pages, PDF_NAME_Type, PDF_NAME_Pages);
+ pdf_dict_put_int(ctx, pages, PDF_NAME_Count, 0);
pdf_dict_put_drop(ctx, pages, PDF_NAME_Kids, pdf_new_array(ctx, doc, 1));
/* Set the trailer of the final xref section. */