Browse Source

* fixed video unit for windows with sizes requiring scrolling
* prevent potential overflow by changing integer to longint

git-svn-id: trunk@1552 -

florian 20 years ago
parent
commit
2dcefd968f
2 changed files with 2 additions and 2 deletions
  1. 1 1
      rtl/inc/video.inc
  2. 1 1
      rtl/win32/video.pp

+ 1 - 1
rtl/inc/video.inc

@@ -79,7 +79,7 @@ end;
 Procedure AssignVideoBuf (OldCols, OldRows : Word);
 Procedure AssignVideoBuf (OldCols, OldRows : Word);
 
 
 Var NewVideoBuf,NewOldVideoBuf : PVideoBuf;
 Var NewVideoBuf,NewOldVideoBuf : PVideoBuf;
-    S,I,C,R,NewVideoBufSize : Integer;
+    S,I,C,R,NewVideoBufSize : longint;
 
 
 begin
 begin
   S:=SizeOf(TVideoCell);
   S:=SizeOf(TVideoCell);

+ 1 - 1
rtl/win32/video.pp

@@ -414,7 +414,7 @@ begin
       SysVMD[SysVideoModeCount-1].Col:=dwMaximumWindowSize.X;
       SysVMD[SysVideoModeCount-1].Col:=dwMaximumWindowSize.X;
       SysVMD[SysVideoModeCount-1].Row:=dwMaximumWindowSize.Y;
       SysVMD[SysVideoModeCount-1].Row:=dwMaximumWindowSize.Y;
       SysVMD[SysVideoModeCount-1].Color:=true;
       SysVMD[SysVideoModeCount-1].Color:=true;
-      OrigScreenSize := dwMaximumWindowSize.X * dwMaximumWindowSize.Y * SizeOf (Char_Info);
+      OrigScreenSize := max(dwMaximumWindowSize.X,dwSize.X) * max(dwMaximumWindowSize.Y,dwSize.Y) * SizeOf (Char_Info);
     end;
     end;
   GetMem (OrigScreen, OrigScreenSize);
   GetMem (OrigScreen, OrigScreenSize);
   with C do
   with C do