Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2018.04.01;
Скачать: CL | DM;

Вниз

Ошибка в стандартной библиотеке?   Найти похожие ветки 

 
vlk32   (2012-12-28 17:50) [0]


procedure TQueue<T>.SetCapacity(Value: Integer);
var
 tailCount, offset: Integer;
begin
 offset := Value - Length(FItems);
 if offset = 0 then
   Exit;
 
 // If head <= tail, then part of the queue wraps around
 // the end of the array; don"t introduce a gap in the queue.
 if (FHead < FTail) or ((FHead = FTail) and (Count > 0)) then
   tailCount := Length(FItems) - FTail
 else
   tailCount := 0;
 
 if offset > 0 then
   SetLength(FItems, Value);
 if tailCount > 0 then
 begin
   Move(FItems[FTail], FItems[FTail + offset], tailCount * SizeOf(FItems[0]));
   if offset > 0 then
     FillChar(FItems[FTail], offset * SizeOf(FItems[0]), 0)
   else if offset < 0 then
     FillChar(FItems[Count], (- offset) * SizeOf(FItems[0]), 0); <<< !? ВОТ ТУТ ПОХОЖЕ ТРЕТСЯ НЕ ТО ЧТО НАДО
   Inc(FTail, offset);
 end
 else if FTail > 0 then
 begin
   if Count > 0 then
   begin
     Move(FItems[FTail], FItems[0], Count * SizeOf(FItems[0]));
     FillChar(FItems[FCount], FTail * SizeOf(FItems[0]), 0);
   end;
   Dec(FHead, FTail);
   FTail := 0;
 end;
 if offset < 0 then
   SetLength(FItems, Value);
end;


Правильный код в том месте, что я указал должен быть

FillChar(FItems[Length(FItems)+offset], (- offset) * SizeOf(FItems[0]), 0);

Есть сильно вумные чтобы проверить досконально этот момент? А то я на 146% не уверен, но бага серьезная похоже. И причем в одной из ключевых коллекций. Может в эмбаркодеро надо зарепортить?


 
Anatoly Podgoretsky ©   (2012-12-28 18:34) [1]

А в чем вопрос?


 
Игорь Шевченко ©   (2012-12-28 20:17) [2]


> Может в эмбаркодеро надо зарепортить?


Стоит поискать по QC, может, уже кто наткнулся



Страницы: 1 вся ветка

Текущий архив: 2018.04.01;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.004 c
15-1471706996
Fox
2016-08-20 18:29
2018.04.01
Интернет-радио


2-1458549557
Signal
2016-03-21 11:39
2018.04.01
IWebBrowser2 не получается получить текст


2-1459516762
mtk
2016-04-01 16:19
2018.04.01
Отслеживание изменений в директории


15-1470954808
Kilkennycat
2016-08-12 01:33
2018.04.01
SaaS. Практические технологии (плюсы и минусы) создания?


6-1285639970
ForumReader
2010-09-28 06:12
2018.04.01
Запустить несколько TWebBrowser, чтобы куки не путались...