summaryrefslogtreecommitdiff
path: root/Build/source/texk/dvipdfm-x/spc_pdfm.c
diff options
context:
space:
mode:
authorAkira Kakuto <kakuto@fuk.kindai.ac.jp>2015-07-25 04:19:27 +0000
committerAkira Kakuto <kakuto@fuk.kindai.ac.jp>2015-07-25 04:19:27 +0000
commit14ebc2a9ea32def73c44d5502f4fbc701d5dee96 (patch)
treeb0b24db2e5b8df26bd4219db30a833dab976fb3f /Build/source/texk/dvipdfm-x/spc_pdfm.c
parent22b3ee317c07e2d0f8cf8bec64b2dec6ff7c3103 (diff)
dvipdfm-x: Improve output file size
git-svn-id: svn://tug.org/texlive/trunk@37953 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/dvipdfm-x/spc_pdfm.c')
-rw-r--r--Build/source/texk/dvipdfm-x/spc_pdfm.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/Build/source/texk/dvipdfm-x/spc_pdfm.c b/Build/source/texk/dvipdfm-x/spc_pdfm.c
index fc1c49d477f..f3fd5971725 100644
--- a/Build/source/texk/dvipdfm-x/spc_pdfm.c
+++ b/Build/source/texk/dvipdfm-x/spc_pdfm.c
@@ -984,7 +984,7 @@ spc_handler_pdfm_bead (struct spc_env *spe, struct spc_arg *args)
return 0;
}
-ImageSpecial = 0;
+ImageSpecial = 0; /* default value */
static int
spc_handler_pdfm_image (struct spc_env *spe, struct spc_arg *args)
@@ -1047,6 +1047,7 @@ spc_handler_pdfm_image (struct spc_env *spe, struct spc_arg *args)
ImageSpecial = 1;
xobj_id = pdf_ximage_findresource(pdf_string_value(fspec), page_no, attr);
ImageSpecial = 0;
+
if (xobj_id < 0) {
spc_warn(spe, "Could not find image resource...");
pdf_release_obj(fspec);
@@ -1055,6 +1056,16 @@ spc_handler_pdfm_image (struct spc_env *spe, struct spc_arg *args)
return -1;
}
+ if (xobj_id > 4999) {
+ spc_warn(spe, "Too many images...");
+ pdf_release_obj(fspec);
+ if (ident)
+ RELEASE(ident);
+ return -1;
+ }
+
+ PageBox_of_id[xobj_id] = (uint8_t)PageBox;
+
if (!(ti.flags & INFO_DO_HIDE))
pdf_dev_put_image(xobj_id, &ti, spe->x_user, spe->y_user);