* patch by Bart Broersma: avoid unsigned wrap around in TDeque.Erase, resolves #37482

git-svn-id: trunk@47122 -
This commit is contained in:
florian 2020-10-17 20:35:20 +00:00
parent 080d8c28f7
commit a19ec44b97
3 changed files with 37 additions and 15 deletions

1
.gitattributes vendored
View File

@ -18458,6 +18458,7 @@ tests/webtbs/tw37322.pp svneol=native#text/pascal
tests/webtbs/tw37323.pp svneol=native#text/pascal
tests/webtbs/tw37339.pp svneol=native#text/pascal
tests/webtbs/tw37355.pp svneol=native#text/pascal
tests/webtbs/tw37382.pp svneol=native#text/pascal
tests/webtbs/tw37393.pp svneol=native#text/pascal
tests/webtbs/tw37397.pp svneol=native#text/plain
tests/webtbs/tw37398.pp svneol=native#text/pascal

View File

@ -212,10 +212,11 @@ var i:SizeUInt;
begin
if Position <= Size then
begin
for i:=Position to Size-2 do
begin
Items[i]:=Items[i+1];
end;
if Size > 1 then
for i:=Position to Size-2 do
begin
Items[i]:=Items[i+1];
end;
popBack();
end;
end;

20
tests/webtbs/tw37382.pp Normal file
View File

@ -0,0 +1,20 @@
{$mode objfpc}
{$h+}
uses
GDeque;
type
TIntQueue = specialize TDeque<Integer>;
var
Q: TIntQueue;
begin
Q := TIntQueue.Create;
Q.Insert(0, 12345);
writeln('Size=',Q.Size);
Q.Erase(0);
writeln('Size=',Q.Size);
Q.Free;
end.