Procházet zdrojové kódy

Better Reflection of Math Arrays

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@7186 8c9fc860-2736-0410-a75d-ab315db34111
felixf před 8 roky
rodič
revize
f0bacd1864
1 změnil soubory, kde provedl 4 přidání a 4 odebrání
  1. 4 4
      source/Generic.Reflection.Mod

+ 4 - 4
source/Generic.Reflection.Mod

@@ -494,7 +494,7 @@ CONST
 		IF maxLen = 0 THEN w.String("..."); END;
 	END WriteValueString;
 	
-	PROCEDURE WriteMathArray*(w: Streams.Writer; adr: ADDRESS; check: BOOLEAN);
+	PROCEDURE WriteMathArray*(w: Streams.Writer; adr: ADDRESS; low, high: ADDRESS);
 		TYPE 
 		LenInc = RECORD
 			len: SIZE;
@@ -513,7 +513,7 @@ CONST
 		VAR t: UnsafeArray; i: SIZE;
 	BEGIN
 		IF adr = NIL THEN w.String(" (NIL)"); 
-		ELSIF ~check OR CheckHeapAddress(adr) THEN
+		ELSIF  OnHeapOrStack(adr, low, high) THEN
 			t := adr;
 			w.String(" len/inc=[ ");
 			IF t.dim < 8 THEN
@@ -591,7 +591,7 @@ CONST
 			| sfTypeMathOpenArray: 
 				w.String(" OPEN MATH ARRAY ");
 				SkipType(refs, offset);
-				WriteMathArray(w, adr, FALSE);
+				WriteMathArray(w, adr, low, high);
 			| sfTypeMathStaticArray: 
 				w.String(" ... (MATH STATIC ARRAY)");
 				SkipSize(offset); SkipType(refs, offset);
@@ -599,7 +599,7 @@ CONST
 				w.String(" TENSOR ");
 				SYSTEM.GET(adr, a);
 				WriteBasicValue(w, sfTypeANY, adr, size);
-				WriteMathArray(w, a, TRUE);
+				WriteMathArray(w, a, low, high);
 				SkipType(refs, offset); 
 			| sfTypeRecord: 
 				w.String("...");