mORMot and Open Source friends
Check-in [1ef8add4de]
Not logged in

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:{5468} circumvent Delphi 2007 "C1632 internal error" bug
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 1ef8add4de3c59bef6bd6a6f41f4713f4326ea0a
User & Date: ab 2020-02-13 15:10:47
Context
2020-02-13
15:19
{5469} fixed TSQLRestStorageInMemory.SearchField check-in: 26f50ca370 user: ab tags: trunk
15:10
{5468} circumvent Delphi 2007 "C1632 internal error" bug check-in: 1ef8add4de user: ab tags: trunk
2020-02-10
13:35
{5467} documentation update check-in: 7db8ad1d9c user: ab tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to SynCommons.pas.

5831
5832
5833
5834
5835
5836
5837
5838

5839
5840
5841
5842
5843
5844
5845
    fHashTableSize: integer;
    fHashCountTrigger: integer;
    fScanCounter: integer; // Scan()>=0 up to fHashCountTrigger*2
    fHashState: set of (hasHasher, canHash);
    {$ifdef DYNARRAYHASHCOLLISIONCOUNT}
    fHashFindCollisions: cardinal;
    {$endif}
    function HashOne(const Elem): cardinal; {$ifdef HASINLINE}inline;{$endif}

    procedure HashAdd(const Elem; aHashCode: cardinal; var result: integer);
    procedure HashDelete(aArrayIndex, aHashTableIndex: integer; aHashCode: cardinal);
    /// low-level search of an element from its pre-computed hash
    // - if not found and aForAdd=true, returns -(HashTableIndex+1)
    // - this method will return the first matching item: use the
    // HashFindAndCompare(...; const Elem) method to avoid any collision issue
    // - you should NOT use this method, but rather high-level FindHashed*()






|
>







5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
    fHashTableSize: integer;
    fHashCountTrigger: integer;
    fScanCounter: integer; // Scan()>=0 up to fHashCountTrigger*2
    fHashState: set of (hasHasher, canHash);
    {$ifdef DYNARRAYHASHCOLLISIONCOUNT}
    fHashFindCollisions: cardinal;
    {$endif}
    function HashOne(const Elem): cardinal; 
      {$ifdef FPC_OR_UNICODE}inline;{$endif} // Delphi 2007 -> C1632 internal error
    procedure HashAdd(const Elem; aHashCode: cardinal; var result: integer);
    procedure HashDelete(aArrayIndex, aHashTableIndex: integer; aHashCode: cardinal);
    /// low-level search of an element from its pre-computed hash
    // - if not found and aForAdd=true, returns -(HashTableIndex+1)
    // - this method will return the first matching item: use the
    // HashFindAndCompare(...; const Elem) method to avoid any collision issue
    // - you should NOT use this method, but rather high-level FindHashed*()

Changes to SynopseCommit.inc.

1
'1.18.5467'
|
1
'1.18.5468'