#1 2025-03-01 09:40:44

dcoun
Member
From: Crete, Greece
Registered: 2020-02-18
Posts: 457

stop ikeyvalue from managing value's memory

I have a idmaper:Ikeyvalue<Ptrint,Ttreenode> to store Ttreenodes that are already managed for their memory in a Ttreeview.
How can I stop Ikeyvalue from freeing the Ttreenode for this specific idmaper:Ikeyvalue<Ptrint,Ttreenode> instance
trying to change idmaper.Data.Values.Info.info after creating idmaper does not work. And there is no option loNoFinalize as with Ilists
Thank you in advance

Offline

#2 2025-03-01 09:50:58

ab
Administrator
From: France
Registered: 2010-06-21
Posts: 14,929
Website

Re: stop ikeyvalue from managing value's memory

Do not change idmaper.Data.Values.Info because it is the shared stateless RTTI info, global to the whole process!

You can set

idmaper.Data.Values.NoFinalize := true;

or use the newly introduced kvoNoFinalize option:
https://github.com/synopse/mORMot2/commit/9055e07d4

Offline

#3 2025-03-01 09:54:52

dcoun
Member
From: Crete, Greece
Registered: 2020-02-18
Posts: 457

Re: stop ikeyvalue from managing value's memory

Really thank you a lot!!!

But Values is read property that can not be assigned

Offline

#4 2025-03-02 16:25:30

dcoun
Member
From: Crete, Greece
Registered: 2020-02-18
Posts: 457

Re: stop ikeyvalue from managing value's memory

@ab really thank you....
From a small request, you did a lot of work during the weekend

Offline

#5 2025-03-03 07:52:05

ab
Administrator
From: France
Registered: 2010-06-21
Posts: 14,929
Website

Re: stop ikeyvalue from managing value's memory

I was waiting for our guests arrival at our B&B.
https://cauterets.site
We had to stay home and kill time. smile
smile

Offline

Board footer

Powered by FluxBB