Răsfoiți Sursa

* Do not use comp type, use int64 instead. Fix issue #40469

(cherry picked from commit bad90711efd66aecdd000fbddfc985c28cd4f900)
Michaël Van Canneyt 1 an în urmă
părinte
comite
b54f4c53b0
2 a modificat fișierele cu 15 adăugiri și 6 ștergeri
  1. 13 5
      rtl/objpas/sysutils/dati.inc
  2. 2 1
      rtl/objpas/sysutils/datih.inc

+ 13 - 5
rtl/objpas/sysutils/dati.inc

@@ -75,19 +75,27 @@ end;
 {   MSecsToTimeStamp   }
 
 function MSecsToTimeStamp(MSecs: comp): TTimeStamp;
+
 var
-  D1:Int64;
+  D1 : Int64;
+  
 begin
   D1:=Trunc(msecs);
-  result.Date := D1 div msecsperday;
-  result.Time := D1 - result.date * msecsperday;
+  Result:=MSecsToTimeStamp(D1);
+end;
+
+function MSecsToTimeStamp(MSecs: Int64): TTimeStamp;
+
+begin
+  result.Date := MSecs div msecsperday;
+  result.Time := MSecs - result.date * msecsperday;
 end;
 
 {   TimeStampToMSecs   }
 
-function TimeStampToMSecs(const TimeStamp: TTimeStamp): comp;
+function TimeStampToMSecs(const TimeStamp: TTimeStamp): Int64;
 begin
-  result := TimeStamp.Time + comp(timestamp.date)*msecsperday;
+  result := TimeStamp.Time + timestamp.date * msecsperday;
 end;
 
 Function TryEncodeDate(Year,Month,Day : Word; Out Date : TDateTime) : Boolean;

+ 2 - 1
rtl/objpas/sysutils/datih.inc

@@ -113,7 +113,8 @@ type
 function DateTimeToTimeStamp(DateTime: TDateTime): TTimeStamp;
 function TimeStampToDateTime(const TimeStamp: TTimeStamp): TDateTime;
 function MSecsToTimeStamp(MSecs: Comp): TTimeStamp;
-function TimeStampToMSecs(const TimeStamp: TTimeStamp): comp;
+function MSecsToTimeStamp(MSecs: Int64): TTimeStamp;
+function TimeStampToMSecs(const TimeStamp: TTimeStamp): Int64;
 function TryEncodeDate(Year, Month, Day: Word; out Date: TDateTime): Boolean;
 function TryEncodeTime(Hour, Min, Sec, MSec: Word; out Time: TDateTime): Boolean;
 function EncodeDate(Year, Month, Day :word): TDateTime;