virus_forever Опубликовано 16 сентября, 2016 Поделиться Опубликовано 16 сентября, 2016 (изменено) {$IFNDEF AUTOREFCOUNT} TTest = IInterface; {$ELSE} TTest = TInterfacedObject; {$ENDIF} ////////// var Obj: TTest; begin Obj:= TInterfacedObject.Create; //тут объект разрушается end; Это необходимо, для "магии", заключающейся при обязательном разрушении объекта в любом случае при выходе из функции (штатно, exit, ошибка, и.т.д.). Она работает. Но, вопрос в том - будет ли утечка памяти или что-то подобное? Заранее спасибо! Изменено 16 сентября, 2016 пользователем virus_forever Цитата Ссылка на комментарий
0 dnekrasov Опубликовано 16 сентября, 2016 Поделиться Опубликовано 16 сентября, 2016 А чем Вам не угодил блок try..finaly? Ну а утечки памяти легко проверить указав ReportMemoryLeaksOnShutdown := True; Цитата Ссылка на комментарий
0 virus_forever Опубликовано 16 сентября, 2016 Автор Поделиться Опубликовано 16 сентября, 2016 6 минут назад, dnekrasov сказал: А чем Вам не угодил блок try..finaly? Ну а утечки памяти легко проверить указав ReportMemoryLeaksOnShutdown := True; Не подходит. Мне нужно именно это. Цитата Ссылка на комментарий
0 virus_forever Опубликовано 16 сентября, 2016 Автор Поделиться Опубликовано 16 сентября, 2016 10 минут назад, dnekrasov сказал: ReportMemoryLeaksOnShutdown := True; Вроде ничего не появляется. Windows, Android - значит все хорошо? Цитата Ссылка на комментарий
0 dnekrasov Опубликовано 16 сентября, 2016 Поделиться Опубликовано 16 сентября, 2016 Не знаю насчет андроида, но в Windows - можете быть уверены Цитата Ссылка на комментарий
0 kami Опубликовано 18 сентября, 2016 Поделиться Опубликовано 18 сентября, 2016 В 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 никто не держит при выходе из метода - да, объект будет уничтожен. Равиль Зарипов (ZuBy) 1 Цитата Ссылка на комментарий
0 kami Опубликовано 18 сентября, 2016 Поделиться Опубликовано 18 сентября, 2016 В 16.09.2016 в 19:56, virus_forever сказал: Вроде ничего не появляется. Windows, Android - значит все хорошо? На Android штатный менеджер памяти не отслеживает утечки. Kitty, Равиль Зарипов (ZuBy), virus_forever и 1 другой 4 Цитата Ссылка на комментарий
0 virus_forever Опубликовано 21 сентября, 2016 Автор Поделиться Опубликовано 21 сентября, 2016 В 18.09.2016 в 22:12, kami сказал: На Android штатный менеджер памяти не отслеживает утечки. Понятно! Спасибо! Цитата Ссылка на комментарий
Вопрос
virus_forever
Это необходимо, для "магии", заключающейся при обязательном разрушении объекта в любом случае при выходе из функции (штатно, exit, ошибка, и.т.д.).
Она работает.
Но, вопрос в том - будет ли утечка памяти или что-то подобное?
Заранее спасибо!
Ссылка на комментарий
7 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.