From bc1b7960ec12ff84bcb220df1f2be65b48be98ba Mon Sep 17 00:00:00 2001 From: florian Date: Sat, 13 Jun 2020 19:14:20 +0000 Subject: [PATCH] * patch by Bi0T1N: fix result type of InterlockedCompareExchange64 for QWord, resolves #37186 git-svn-id: trunk@45647 - --- packages/fcl-stl/src/ghashmap.pp | 11 ++++++----- rtl/inc/systemh.inc | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/packages/fcl-stl/src/ghashmap.pp b/packages/fcl-stl/src/ghashmap.pp index 8774f4a9ea..4a604ef3ad 100644 --- a/packages/fcl-stl/src/ghashmap.pp +++ b/packages/fcl-stl/src/ghashmap.pp @@ -73,15 +73,15 @@ Key:TKey; end; var - private + private type TContainer = specialize TVector; TTable = specialize TVector; - var + var FData:TTable; - FDataSize:SizeUInt; + FDataSize:SizeUInt; procedure EnlargeTable; - public + public type TIterator = specialize THashmapIterator; constructor Create; @@ -124,7 +124,7 @@ begin end; procedure THashmap.EnlargeTable; -var i,j,h,oldDataSize:SizeUInt; +var i,j,h,oldDataSize:SizeUInt; curbucket:TContainer; value:TPair; begin @@ -195,6 +195,7 @@ begin {$endif} inc(i); end; + // Result:=Default(TValue); // exception? end; diff --git a/rtl/inc/systemh.inc b/rtl/inc/systemh.inc index d455c4517c..cc720edb4d 100644 --- a/rtl/inc/systemh.inc +++ b/rtl/inc/systemh.inc @@ -1550,7 +1550,7 @@ function InterlockedIncrement64 (var Target: qword) : qword; external name 'FPC_ function InterlockedDecrement64 (var Target: qword) : qword; external name 'FPC_INTERLOCKEDDECREMENT64'; function InterlockedExchange64 (var Target: qword;Source : qword) : qword; external name 'FPC_INTERLOCKEDEXCHANGE64'; function InterlockedExchangeAdd64 (var Target: qword;Source : qword) : qword; external name 'FPC_INTERLOCKEDEXCHANGEADD64'; -function InterlockedCompareExchange64(var Target: qword; NewValue: qword; Comperand: qword): int64; external name 'FPC_INTERLOCKEDCOMPAREEXCHANGE64'; +function InterlockedCompareExchange64(var Target: qword; NewValue: qword; Comperand: qword): qword; external name 'FPC_INTERLOCKEDCOMPAREEXCHANGE64'; {$endif cpu64}