Перейти к содержанию
Fire Monkey от А до Я
  • 0

Будет ли утечка памяти при таком использовании объектов?


virus_forever

Вопрос

{$IFNDEF AUTOREFCOUNT}
	TTest = IInterface;
{$ELSE}
	TTest = TInterfacedObject;
{$ENDIF}

//////////

var
  Obj:  TTest;
begin
  Obj:= TInterfacedObject.Create;
  
  //тут объект разрушается
end;

Это необходимо, для "магии", заключающейся при обязательном разрушении объекта в любом случае при выходе из функции (штатно, exit, ошибка, и.т.д.).

Она работает.

Но, вопрос в том - будет ли утечка памяти или что-то подобное? 

Заранее спасибо!

 

Изменено пользователем virus_forever
Ссылка на комментарий

Рекомендуемые сообщения

  • 0
6 минут назад, dnekrasov сказал:

А чем Вам не угодил блок try..finaly?

Ну а утечки памяти легко проверить указав

ReportMemoryLeaksOnShutdown := True;

 

Не подходит. Мне нужно именно это.

Ссылка на комментарий
  • 0
В 16.09.2016 в 19:34, virus_forever сказал:

TTest = IInterface;

Некрасиво обзывать описание интерфейса с префиксом T. Если уж используете объект как интерфейс - так и работайте с интерфейсом для нормальной работы подсчета ссылок:
 

var

  Obj: IInterface;

  Obj:=TInterfacedObject.Create;
В 16.09.2016 в 19:34, virus_forever сказал:

Obj:= TInterfacedObject.Create;

//тут объект разрушается

В том случае, если ссылку на Obj никто не держит при выходе из метода - да, объект будет уничтожен.

Ссылка на комментарий
  • 0
В 16.09.2016 в 19:56, virus_forever сказал:

Вроде ничего не появляется. Windows, Android - значит все хорошо?

На Android штатный менеджер памяти не отслеживает утечки.

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...