Re[3]: Подходы с присвоением больших сложных массивов
От: Khimik  
Дата: 11.09.23 19:27
Оценка:
Здравствуйте, swame, Вы писали:

A>>Но в такой системе при изменении структуры "все данные" ссылки могут потерять актуальность и привести к SegFault.

A>>Поэтому я храню не ссылки, а индексы в массиве. Индекс можно хотя бы проверить перед использованием.

S>Для исключения ссылок на сдестроенные объекты я регистрирую объекты в коллекции TDictionary<int64, TObject>

S>Объяетам назначаются идентификаторы int64, при создание объекта он регистрирует себя в коллекции, при дестрое удаляется оттуда.
S>в ссылках между объектами хранятся не указатели, а эти идентификаторы.
S>Массив не годится там где объекты постоянно создаются — удаляются

Сорри, не очень пока понимаю как это работает. А в чём разница, если дестроить объекты не через xxx.free, а через это:

procedure FreeObject(var obj:pointer);
begin
  tobject(obj).Free;
  obj:=nil;
end;

..
freeobject(xxx);
"Ты должен сделать добро из зла, потому что его больше не из чего сделать." Р.П. Уоррен
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.