summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Watts <robin.watts@artifex.com>2018-11-29 17:28:20 +0000
committerChris Liddell <chris.liddell@artifex.com>2019-03-25 07:08:07 +0000
commit7d41cc01dd42db818e43568f9a6e2e1a97444ace (patch)
tree5f71e47adc6ba90e7132780cb8601b7116bb92e3
parent507ef1d65737054ea7f7c6dd8ab9d3cf2a22c643 (diff)
downloadghostpdl-7d41cc01dd42db818e43568f9a6e2e1a97444ace.tar.gz
GPDL: Simplify device creation.
Just create the device once, rather than creating once, and then calling the creation function again to see if we need to create a default.
-rw-r--r--pcl/pl/plmain.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/pcl/pl/plmain.c b/pcl/pl/plmain.c
index d87cd628b..56ab4c424 100644
--- a/pcl/pl/plmain.c
+++ b/pcl/pl/plmain.c
@@ -699,11 +699,11 @@ pl_main_alloc_instance(gs_memory_t * mem)
/* Create a default device if not already defined. */
static int
-pl_top_create_device(pl_main_instance_t * pti, int index, bool is_default)
+pl_top_create_device(pl_main_instance_t * pti, int index)
{
int code = 0;
- if (!is_default || !pti->device) {
+ if (!pti->device) {
const gx_device *dev;
pl_interp_implementation_t **impl;
gs_memory_t *mem = pti->device_memory;
@@ -900,6 +900,7 @@ pl_main_process_options(pl_main_instance_t * pmi, arg_list * pal,
bool help = false;
char *arg;
gs_c_param_list *params = &pmi->params;
+ int device_index = -1;
gs_c_param_list_write_more(params);
while ((code = arg_next(pal, (const char **)&arg, pmi->memory)) > 0 && *arg == '-') {
@@ -1389,11 +1390,13 @@ pl_main_process_options(pl_main_instance_t * pmi, arg_list * pal,
}
value = eqp + 1;
if (!strncmp(arg, "DEVICE", 6)) {
- code = pl_top_create_device(pmi,
- get_device_index(pmi->
- memory,
- value),
- false);
+ if (device_index != -1) {
+ dmprintf(pmi->memory, "DEVICE can only be set once!\n");
+ return -1;
+ }
+ device_index = get_device_index(pmi->memory, value);
+ if (device_index == -1)
+ return -1;
/* check for icc settings */
} else
if (!strncmp
@@ -1461,7 +1464,7 @@ pl_main_process_options(pl_main_instance_t * pmi, arg_list * pal,
}
gs_c_param_list_read(params);
- code = pl_top_create_device(pmi, -1, true); /* create default device if needed */
+ code = pl_top_create_device(pmi, device_index); /* create default device if needed */
if (code < 0)
return code;