Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Comment: | {3566} fixed DateTimeMSToString/UnixMSTimeToString |
---|---|
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
e4334bd5b527995e27a2388e92c14ca9 |
User & Date: | ab 2017-03-30 15:05:52 |
2017-03-30
| ||
15:07 | {3567} enhanced log information to TSQLRest.AsynchInterning process check-in: 543af7c8a0 user: ab tags: trunk | |
15:05 | {3566} fixed DateTimeMSToString/UnixMSTimeToString check-in: e4334bd5b5 user: ab tags: trunk | |
12:38 | {3565} defined JSON_OPTIONS_NAMEVALUEINTERN and JSON_OPTIONS_FAST_EXTENDEDINTERN constants check-in: 2e15ac6abe user: ab tags: trunk | |
Changes to SynCommons.pas.
19052 19053 19054 19055 19056 19057 19058 19059 19060 19061 19062 19063 19064 19065 19066 ..... 19079 19080 19081 19082 19083 19084 19085 19086 19087 19088 19089 19090 19091 19092 19093 ..... 33900 33901 33902 33903 33904 33905 33906 33907 33908 33909 33910 33911 33912 33913 33914 |
finally Safe.Unlock; end; end; function TRawUTF8InterningSlot.Clean(aMaxRefCount: integer): integer; var i: integer; s,d: PPtrUInt; // points to RawUTF8 values begin result := 0; Safe.Lock; try if Safe.Padding[0].VInteger=0 then exit; s := pointer(Value); ................................................................................ s^ := 0; // avoid GPF end; inc(d); end; inc(s); end; if result>0 then begin Values.SetCount((PtrUInt(d)-PtrUInt(Value))div sizeof(RawUTF8)); Values.ReHash; end; finally Safe.UnLock; end; end; ................................................................................ var I: TTimeLogBits; begin I.FromUTCTime; result := I.Text(Expanded,FirstTimeChar); end; const DTMS_FMT: array[boolean] of RawUTF8 = ('%%%%%%%%%', '%-%-%%:%:%:%.%%'); function DateTimeMSToString(DateTime: TDateTime; Expanded: boolean; FirstTimeChar: AnsiChar; const TZD: RawUTF8): RawUTF8; var HH,MM,SS,MS,Y,M,D: word; begin // 'YYYY-MM-DD hh:mm:ss.sssZ' or 'YYYYMMDD hhmmss.sssZ' format if DateTime=0 then begin result := ''; |
| | | |
19052 19053 19054 19055 19056 19057 19058 19059 19060 19061 19062 19063 19064 19065 19066 ..... 19079 19080 19081 19082 19083 19084 19085 19086 19087 19088 19089 19090 19091 19092 19093 ..... 33900 33901 33902 33903 33904 33905 33906 33907 33908 33909 33910 33911 33912 33913 33914 |
finally Safe.Unlock; end; end; function TRawUTF8InterningSlot.Clean(aMaxRefCount: integer): integer; var i: integer; s,d: PPtrUInt; // points to RawUTF8 values (bypass COW assignments) begin result := 0; Safe.Lock; try if Safe.Padding[0].VInteger=0 then exit; s := pointer(Value); ................................................................................ s^ := 0; // avoid GPF end; inc(d); end; inc(s); end; if result>0 then begin Values.SetCount((PtrUInt(d)-PtrUInt(Value))div sizeof(d^)); Values.ReHash; end; finally Safe.UnLock; end; end; ................................................................................ var I: TTimeLogBits; begin I.FromUTCTime; result := I.Text(Expanded,FirstTimeChar); end; const DTMS_FMT: array[boolean] of RawUTF8 = ('%%%%%%%%%', '%-%-%%%:%:%.%%'); function DateTimeMSToString(DateTime: TDateTime; Expanded: boolean; FirstTimeChar: AnsiChar; const TZD: RawUTF8): RawUTF8; var HH,MM,SS,MS,Y,M,D: word; begin // 'YYYY-MM-DD hh:mm:ss.sssZ' or 'YYYYMMDD hhmmss.sssZ' format if DateTime=0 then begin result := ''; |
Changes to SynopseCommit.inc.
1 |
'1.18.3565'
|
| |
1 |
'1.18.3566'
|