Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2018.04.01;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.001 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
Отслеживание изменений в директории


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


2-1459961908
Погроммист
2016-04-06 19:58
2018.04.01
Как определить MAC адрес НУЖНОГО адаптера





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский