Интерфейсный объект не всегда освобождается самDelphi , Синтаксис , Ошибки и ИсключенияИнтерфейсный объект не всегда освобождается сам
Оформил: DeeCo Автор: Suvorov Alexander procedure SomeProc({const} A: IUnknown); begin // ... end; procedure TForm1.FormCreate(Sender: TObject); begin SomeProc(TInterfacedObject.Create); end;Подобный вызов SomeProc будет приводить к утечке памяти, если A передаётся как Const или не используется в SomeProc. КОММЕНТАРИЙ: Проверено: D5, NT4, W2K.Теряется 16 байт при каждом вызове. Этот камень перенесен из категории КОМПИЛЯТОР. Как выяснилось, здесь мы имеем дело с неочевидными особенностями правил подсчета интерфейсных ссылок. Подробнее можно почитать главу справки: Delphi Help - > Programming with Delphi - > Common programming tasks - > Using reference counting Интерфейсный объект не всегда освобождается сам, что может привести к утечке памяти, если он передаётся как Const или не используется в процедуре. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Ошибки и Исключения ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |