Страница 2 из 2
Re: Правильное уничтожение созданных в рантайме объектов?
Добавлено: 14.07.2012 20:50:27
debi12345
А функция Free и так проверяет на NIL перед Destroy
Проблема в другом - при декларации переменной класса она имеет случайное (ненулевое - а значит и валидное для проверки во FREE) значение , правильным (не вызывающим AV/SF) оно становится только в в момент создания объекта. Поэтому, чтобы не иметь дело со случйаным занчением, лучне сразу (до создани объекта) присвоить NIL, ана выходе перед удалнеи объккта - пвоероять на NIL (на признак - создался ли объект). Лично я давно взял эту методику за стандарт в случаях, если возможны сбои при создании объектов.
Re: Правильное уничтожение созданных в рантайме объектов?
Добавлено: 15.07.2012 12:22:06
OberonAR
debi12345 писал(а):правда на nil не проверял в этот раз.
Почему ?
Никогда не помешает перед созданием экзмепляра объекта присвоить объектной перремнной NIL, а перед освобождением экземпляра - проверить объектную переменную на NIL. Это убережет от фатальных ошибок, связанных с несозданием объекта (если такое возможно в принципе - ошибки в коде создания, нехватка памяти,..).
Спасибо, теперь делаю так. Ошибка ушла после обновления CodeTyphon на версию 2.70, там как раз обновились версии ZEOS. Походу в них и был косяк. Теперь все работает как надо и память не утекает. Всем спасибо за ответы и потраченное время! 73!
Re: Правильное уничтожение созданных в рантайме объектов?
Добавлено: 15.07.2012 13:48:41
debi12345
Спасибо, теперь делаю так.
Не за что
ПС:
В принципе, перед созданием экземпляров ГАРАНТИРОВАННО создаваемых классов вроде TStringList - присовение и проверка NIL необязательны.