synopse / mORMot

Synopse mORMot 1 ORM/SOA/MVC framework - Please upgrade to mORMot 2 !
https://synopse.info
785 stars 324 forks source link

function _PdfDateToDateTime in SynPdf.pas : Raise missing #394

Closed lhede62 closed 3 years ago

lhede62 commented 3 years ago

in method :

function _PdfDateToDateTime(const AText: TPdfDate): TDateTime; var Y,M,D, H,MI,SS: cardinal; begin if Length(AText)<16 then EConvertError.CreateRes(@SDateEncodeError); Y := ord(AText[3])1000+ord(AText[4])100+ord(AText[5])10+ord(AText[6]) -(48+480+4800+48000); M := ord(AText[7])10+ord(AText[8])-(48+480); D := ord(AText[9])10+ord(AText[10])-(48+480); result := EncodeDate(Y,M,D); H := ord(AText[11])10+ord(AText[12])-(48+480); MI := ord(AText[13])10+ord(AText[14])-(48+480); SS := ord(AText[15])10+ord(AText[16])-(48+480); if (H<24) and (MI<60) and (SS<60) then // inlined EncodeTime() result := result + (H (MinsPerHour SecsPerMin MSecsPerSec) + MI (SecsPerMin MSecsPerSec) + SS MSecsPerSec) / MSecsPerDay else EConvertError.CreateRes(@SDateEncodeError); end;

Raise is missing .

correct code:

function _PdfDateToDateTime(const AText: TPdfDate): TDateTime; var Y,M,D, H,MI,SS: cardinal; begin if Length(AText)<16 then raise EConvertError.CreateRes(@SDateEncodeError); Y := ord(AText[3])1000+ord(AText[4])100+ord(AText[5])10+ord(AText[6]) -(48+480+4800+48000); M := ord(AText[7])10+ord(AText[8])-(48+480); D := ord(AText[9])10+ord(AText[10])-(48+480); result := EncodeDate(Y,M,D); H := ord(AText[11])10+ord(AText[12])-(48+480); MI := ord(AText[13])10+ord(AText[14])-(48+480); SS := ord(AText[15])10+ord(AText[16])-(48+480); if (H<24) and (MI<60) and (SS<60) then // inlined EncodeTime() result := result + (H (MinsPerHour SecsPerMin MSecsPerSec) + MI (SecsPerMin MSecsPerSec) + SS MSecsPerSec) / MSecsPerDay else raise EConvertError.CreateRes(@SDateEncodeError); end;

synopse commented 3 years ago

Thanks for the feedback.