2
0
Эх сурвалжийг харах

avoid possible recursive trap in case of CONST parameters

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@7349 8c9fc860-2736-0410-a75d-ab315db34111
eth.guenter 8 жил өмнө
parent
commit
c5c561ba67
1 өөрчлөгдсөн 6 нэмэгдсэн , 1 устгасан
  1. 6 1
      source/Reflection.Mod

+ 6 - 1
source/Reflection.Mod

@@ -310,7 +310,12 @@ VAR
 				ELSE
 					IF v.n > MaxArray THEN etc := TRUE; v.n := MaxArray END
 				END;
-				WriteVar(w, v, col);	(* write value *)
+				IF (v.type <= 8) & ((v.adr > base + 64) OR (v.adr < base - 4096)) & (~CheckHeapAddress( v.adr )) THEN
+					(* CONST parameter ? *)
+					w.String( "???" )
+				ELSE
+					WriteVar(w, v, col);	(* write value *)
+				END;
 				IF etc THEN w.String("..."); INC(col, 3) END;
 				IF ~dense THEN
 					w.Ln; col := 0; Wait(w);