Текущий архив: 2013.12.08;
Скачать: CL | DM;
Вниз
Чтобы локальные переменные в функциях Найти похожие ветки
← →
Dennis I. Komarov © (2011-10-06 22:19) [40]
> эээ... А где тут утечка????
> begin
> Object := nil;
> Object.Free;
> end;
А деструктор для кого тут вызван будет?
З.Ы. Или пива уже много? :)
← →
Ega23 © (2011-10-06 23:10) [41]
> А деструктор для кого тут вызван будет?
А он и не будет вызван. :)
procedure TObject.Free;
begin
if Self <> nil then
Destroy;
end;
> З.Ы. Или пива уже много? :)
Походу
← →
Германн © (2011-10-07 01:08) [42]
> Dennis I. Komarov © (06.10.11 22:19) [40]
> Ega23 © (06.10.11 23:10) [41]
Вот не люблю и не использую FreeAndNil.
Так что на ваш диалог смотрю скептически. :(
← →
Dennis I. Komarov © (2011-10-07 09:05) [43]Ну и?
Ссылку потеряли, объект не уничтожили. Чем не утечка?
← →
Dennis I. Komarov © (2011-10-07 09:31) [44]
> Вот не люблю и не использую FreeAndNil.
Эм, у нас тут немного другое: NilAndFree
← →
Бездомный (2011-10-07 10:07) [45]
> Ссылку потеряли, объект не уничтожили. Чем не утечка?
var Object: TObject;
begin
Object := nil;
Object.Free;
end;
Нет же никакой ссылки.
← →
Ega23 © (2011-10-07 10:07) [46]
> Ссылку потеряли, объект не уничтожили.
Мы его и не создали, если чё.
← →
Dennis I. Komarov © (2011-10-07 10:12) [47]
> Мы его и не создали, если чё.
Ну ты так больше не шути :)
← →
Ega23 © (2011-10-07 10:15) [48]
var
Object: TObject;
begin
Object := nil;
Object.Free;
end;
← →
Dennis I. Komarov © (2011-10-07 10:24) [49]тогда согласен, не страшно, тогда глупо...
← →
Бездомный (2011-10-12 17:53) [50]
> Dennis I. Komarov © (07.10.11 10:24) [49]
А это по твоему для потакания глупости сделано было?
procedure TObject.Free;
begin
if Self <> nil then
Destroy;
end;
← →
Dennis I. Komarov © (2011-10-12 18:14) [51]
> А это по твоему для потакания глупости сделано было?
Глупо пытаться сперва "занилить" ссылку, а после по ней пытаться уничтожить объект.
← →
Dennis I. Komarov © (2011-10-12 19:11) [52]Так же довольно глупо пытаться уничтожить заведомо не существующий объект.
> var Object: TObject;
> begin
> Object := nil;
> Object.Free;
> end;
А по сему, если предположить что код выложен не полностью и объект все-таки где-то когда-то созданvar Object: TObject;
begin
...
Object := nil;
Object.Free;
end;
, то получаем утечку памяти, что уже страшно...
← →
Плохиш © (2011-10-13 01:58) [53]
> Бездомный (06.10.11 13:45) [2]
>
> > Ega23 © (06.10.11 13:40) [1]
>
> Чтобы не писать:
Delphi вообще не правильная среда. Правильная среда должна иметь всего одну кнопку "Дай прогу".
PS. Прикольная такая ветка и до сих пор в основной.
← →
Yaro2000 (2011-10-24 05:20) [54]>> Dennis I. Komarov © (07.10.11 09:31) [44]
>> Вот не люблю и не использую FreeAndNil.
> Эм, у нас тут немного другое: NilAndFree
Пять баллов! :))))
← →
RWolf © (2011-10-24 11:06) [55]> Эм, у нас тут немного другое: NilAndFree
в оригинальной FreeAndNil так и делается, не?procedure FreeAndNil(var Obj);
var
Temp: TObject;
begin
Temp := TObject(Obj);
Pointer(Obj) := nil;
Temp.Free;
end;
← →
Плохиш © (2011-10-24 11:23) [56]
> RWolf © (24.10.11 11:06) [55]
> > Эм, у нас тут немного другое: NilAndFree
>
> в оригинальной FreeAndNil так и делается, не?
>
>
В каком месте он так делает? Может тебе поизучать скопированный тобой же код несколько раз до полного просветления.
← →
RWolf © (2011-10-24 11:30) [57]
> [56]
ссылку обнулили, объект освободили.
с точки зрения вызывающего — вполне себе NilAndFree.
Страницы: 1 2 вся ветка
Текущий архив: 2013.12.08;
Скачать: CL | DM;
Память: 0.57 MB
Время: 0.01 c