DEADSOFTWARE

fix trap handling
[cpc.git] / src / cpfront / posix / generic / System / Mod / Kernel.cp
index 7c2c0bf26f9052a1bf73235b000c60cb52b07596..87ea635fc7524de0eca557d825ed0fc6dfee3f8c 100644 (file)
@@ -521,26 +521,11 @@ MODULE Kernel;
     FreeMem(modAdr, modSize)
   END InvalModMem;
 
-  PROCEDURE TryRead (from, to, c: INTEGER);
-    VAR i: INTEGER; x: BYTE;
-  BEGIN
-    IF from <= to THEN
-      FOR i := from TO to DO
-        S.GET(i, x)
-      END
-    ELSE
-      FOR i := to TO from BY -1 DO
-        S.GET(i, x)
-      END
-    END;
-  END TryRead;
-
-  PROCEDURE^ Try* (h: TryHandler; a, b, c: INTEGER);
-
   PROCEDURE IsReadable* (from, to: INTEGER): BOOLEAN;
-    VAR r: BOOLEAN; res: setjmp.int; i: INTEGER; x: BYTE;
+    VAR r: BOOLEAN; jmp: setjmp.sigjmp_buf; res: setjmp.int; i: INTEGER; x: BYTE;
   BEGIN
     r := checkReadable;
+    jmp := checkReadableEnv;
     checkReadable := TRUE;
     res := setjmp.sigsetjmp(checkReadableEnv, 1);
     IF res = 0 THEN
@@ -554,6 +539,7 @@ MODULE Kernel;
         END
       END
     END;
+    checkReadableEnv := jmp;
     checkReadable := r;
     RETURN res = 0
   END IsReadable;
@@ -1807,7 +1793,6 @@ MODULE Kernel;
         err := 202; (* illigal instruction *)
         IF IsReadable(pc, pc + 4) THEN
           S.GET(pc, val)
-          (* !!! err := halt code *)
         END;
     ELSE (* unknown *)
     END;