summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/src/cmd/gs/src/zdscpars.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/sys/src/cmd/gs/src/zdscpars.c b/sys/src/cmd/gs/src/zdscpars.c
index 315c9074f..fb6ff74a3 100644
--- a/sys/src/cmd/gs/src/zdscpars.c
+++ b/sys/src/cmd/gs/src/zdscpars.c
@@ -132,11 +132,18 @@ zinitialize_dsc_parser(i_ctx_t *i_ctx_p)
ref local_ref;
int code;
os_ptr const op = osp;
- dict * const pdict = op->value.pdict;
- gs_memory_t * const mem = (gs_memory_t *)dict_memory(pdict);
- dsc_data_t * const data =
- gs_alloc_struct(mem, dsc_data_t, &st_dsc_data_t,
- "DSC parser init");
+ dict *pdict;
+ gs_memory_t *mem;
+ dsc_data_t *data;
+
+ check_read_type(*op, t_dictionary);
+
+ pdict = op->value.pdict;
+ mem = (gs_memory_t *)dict_memory(pdict);
+
+ data = gs_alloc_struct(mem, dsc_data_t, &st_dsc_data_t, "DSC parser init");
+ if (!data)
+ return_error(e_VMerror);
data->dsc_data_ptr = dsc_init((void *) "Ghostscript DSC parsing");
if (!data->dsc_data_ptr)