소스 검색

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

git-svn-id: trunk@1552 -

florian 20 년 전
부모
커밋
2dcefd968f
2개의 변경된 파일2개의 추가작업 그리고 2개의 파일을 삭제
  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);
 
 Var NewVideoBuf,NewOldVideoBuf : PVideoBuf;
-    S,I,C,R,NewVideoBufSize : Integer;
+    S,I,C,R,NewVideoBufSize : longint;
 
 begin
   S:=SizeOf(TVideoCell);

+ 1 - 1
rtl/win32/video.pp

@@ -414,7 +414,7 @@ begin
       SysVMD[SysVideoModeCount-1].Col:=dwMaximumWindowSize.X;
       SysVMD[SysVideoModeCount-1].Row:=dwMaximumWindowSize.Y;
       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;
   GetMem (OrigScreen, OrigScreenSize);
   with C do