summaryrefslogtreecommitdiff
path: root/Build/source/texk/dvipdfm-x/spc_pdfm.c
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/dvipdfm-x/spc_pdfm.c')
-rw-r--r--Build/source/texk/dvipdfm-x/spc_pdfm.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/Build/source/texk/dvipdfm-x/spc_pdfm.c b/Build/source/texk/dvipdfm-x/spc_pdfm.c
index 477a22c39f8..fbe57618f08 100644
--- a/Build/source/texk/dvipdfm-x/spc_pdfm.c
+++ b/Build/source/texk/dvipdfm-x/spc_pdfm.c
@@ -194,6 +194,20 @@ safeputresdict (pdf_obj *kp, pdf_obj *vp, void *dp)
dict = pdf_lookup_dict(dp, key);
if (pdf_obj_typeof(vp) == PDF_INDIRECT) {
+ /* Copy the content of old resource category dict (if exists) */
+ if (dict) {
+ pdf_obj *dst = pdf_deref_obj(vp);
+ if (dst) {
+ if (pdf_obj_typeof(dst) == PDF_DICT) {
+ pdf_foreach_dict(dict, safeputresdent, dst);
+ pdf_release_obj(dst);
+ } else {
+ WARN("Invalid type (not DICT) for page/form resource dict entry: key=\"%s\"", key);
+ pdf_release_obj(dst);
+ return -1;
+ }
+ }
+ }
pdf_add_dict(dp, pdf_new_name(key), pdf_link_obj(vp));
} else if (pdf_obj_typeof(vp) == PDF_DICT) {
if (dict)