Есть функция на паскалеподобном синтаксисе
if oNode <> nil then FreeObject(oNode);
в этой строке при работе возникает ошибка Invalid pointer operation
из описания ясно что:
204 Invalid pointer operation
You will get this if you call Dispose or Freemem with an invalid pointer (notably, Nil).
То есть nil это только один из возможных вариантов, но в этом коде вызов FreeObject априори только тогда, когда объект не nil, в связи с чем вопрос что еще может быть не так с объектом, что его нельзя очистить и как это проверить?
p.s. возможно причина в том что данный объект присваивался к одному и из элементов списка, который очищался перед очисткой данного объекта, то есть объект вроде как существует, а данные уже нет