Правильное уничтожение созданных в рантайме объектов?

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

Re: Правильное уничтожение созданных в рантайме объектов?

Сообщение debi12345 » 14.07.2012 20:50:27

А функция Free и так проверяет на NIL перед Destroy

Проблема в другом - при декларации переменной класса она имеет случайное (ненулевое - а значит и валидное для проверки во FREE) значение , правильным (не вызывающим AV/SF) оно становится только в в момент создания объекта. Поэтому, чтобы не иметь дело со случйаным занчением, лучне сразу (до создани объекта) присвоить NIL, ана выходе перед удалнеи объккта - пвоероять на NIL (на признак - создался ли объект). Лично я давно взял эту методику за стандарт в случаях, если возможны сбои при создании объектов.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5759
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: Правильное уничтожение созданных в рантайме объектов?

Сообщение OberonAR » 15.07.2012 12:22:06

debi12345 писал(а):
правда на nil не проверял в этот раз.

Почему ?
Никогда не помешает перед созданием экзмепляра объекта присвоить объектной перремнной NIL, а перед освобождением экземпляра - проверить объектную переменную на NIL. Это убережет от фатальных ошибок, связанных с несозданием объекта (если такое возможно в принципе - ошибки в коде создания, нехватка памяти,..).


Спасибо, теперь делаю так. Ошибка ушла после обновления CodeTyphon на версию 2.70, там как раз обновились версии ZEOS. Походу в них и был косяк. Теперь все работает как надо и память не утекает. Всем спасибо за ответы и потраченное время! 73!
Аватара пользователя
OberonAR
новенький
 
Сообщения: 73
Зарегистрирован: 08.02.2012 11:46:04
Откуда: Краснодарский край

Re: Правильное уничтожение созданных в рантайме объектов?

Сообщение debi12345 » 15.07.2012 13:48:41

Спасибо, теперь делаю так.

Не за что :)
ПС:
В принципе, перед созданием экземпляров ГАРАНТИРОВАННО создаваемых классов вроде TStringList - присовение и проверка NIL необязательны.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5759
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Пред.

Вернуться в Общее

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9

Рейтинг@Mail.ru