Вверх ↑
Ответов: 9906
Рейтинг: 351
#1: 2014-06-25 14:16:58 ЛС | профиль | цитата
Assasin писал(а):
Для того, чтобы хранить размер реально выделенной под поток байт памяти. Использоваться может меньше, а выделяться больше. Это чтобы меньше использовать динамическое выделение.

Не смешите мои подковы.
Честное слово, я профессиональный Читатель. Читать - умею.
Вот карта использования этого FAlloced
#pas
constructor TProgram.Create;
...
FAlloced := 0;
...
end;
...
function TProgram.AllocMemIfNeeded(need:integer): boolean;
...
nsz := FAlloced;
...
if nsz <> FAlloced then begin
...
end;
...
procedure TProgram.Clear;
...
FreeMem(FPgm, FAlloced);
FPgm := nil;
FAlloced := 0;
end;
...
procedure TProgram.Truncate;
begin
if FUsed < FAlloced then begin
ReallocMem(FPgm, FUsed);
FAlloced := FUsed;
end;
end;
...
Видим, что ненулевое значение получается только при Truncate
Это называется "Оппа-аньки".
Я то, тупой, думал, что мне как-бы облегчили жизнь, сказавши, что мне надо лишь знать методы ReadXXX, WriteXXX, и Clear.
Оказывается не фига.
Есть еще Truncate
И мне следует произвести криминалистические исследования "а что это за девочка, и где она живет"

А если еще присмотреться, то условие в Truncate никогда не выполнится.

Но давай вспомним самый главный вопрос - НА ХРЕНА МНЕ ЭТИ РАЗБОРКИ.
Как впрочем, и всем остальным.

Сейчас вспомню
Assasin писал(а):
я как раз считаю, что делаю лучше, и что избавляюсь от проблем, которые возникнут

А по-моему, ты их создал.
Ибо лучшее средство от перхоти - гильотина
------------ Дoбавленo в 14.16:
Assasin писал(а):
А вот однажды смекалистый юзер такое применение найдет, что откроется бага в них

Про теорию я знаю.
Таковая инкапсуляция осуществляется, чтобы гарантировать реализацией методов сохранение некоторых инвариантов класса (например, некоторые логические соотношения между значениями его полей).
Которые смекалистый юзер сумеет нарушить без инкапсуляции.

ПОКАЖИ мне эти инварианты (условия).
Вспомни: "Не вводи новые сущности без необходимости".
Т.е., сначала НЕОБХОДИМОСТЬ, а потом - новая сущность.

Вот какого черта вы делаете (точнее - вас учат так делать) с точностью ДО НАОБОРОТ

карма: 9

0