[gs-cvs] rev 6944 - trunk/gs/src

alexcher at ghostscript.com alexcher at ghostscript.com
Tue Aug 1 15:43:35 PDT 2006


Author: alexcher
Date: 2006-08-01 15:43:34 -0700 (Tue, 01 Aug 2006)
New Revision: 6944

Modified:
   trunk/gs/src/zgeneric.c
Log:
Make get operator error reprorting similar to Distiller's.


Modified: trunk/gs/src/zgeneric.c
===================================================================
--- trunk/gs/src/zgeneric.c	2006-08-01 21:12:02 UTC (rev 6943)
+++ trunk/gs/src/zgeneric.c	2006-08-01 22:43:34 UTC (rev 6944)
@@ -151,6 +151,7 @@
 private int
 zget(i_ctx_t *i_ctx_p)
 {
+    int code;
     os_ptr op = osp;
     os_ptr op1 = op - 1;
     ref *pvalue;
@@ -167,19 +168,19 @@
 	    check_int_ltu(*op, r_size(op1));
 	    make_int(op1, op1->value.bytes[(uint) op->value.intval]);
 	    break;
-	default: {
-	    int code;
-
+	case t_array:
+	case t_mixedarray:
+	case t_shortarray:
 	    check_type(*op, t_integer);
 	    check_read(*op1);
 	    code = array_get(imemory, op1, op->value.intval, op1);
-	    if (code < 0) {	/* Might be a stackunderflow reported as typecheck. */
-		if (code == e_typecheck)
-		    return_op_typecheck(op1);
-		else
-		    return code;
-	    }
-	}
+	    if (code < 0) 
+	        return code;
+	    break;
+        case t__invalid:
+            return_error(e_stackunderflow);
+        default:
+            return_error(e_typecheck); 
     }
     pop(1);
     return 0;



More information about the gs-cvs mailing list