> On May 13, 2021, at 2:38 PM, Sven Barth <pascaldra...@googlemail.com> wrote: > > Ah, you need to use ChangeOwnerAndName then and simply pass in the same name > you used for the constructor (cause otherwise it tries to use the name that > is currently stored in the list).
Looking at this again today and I have yet another question to confirm. I create one of the types using ctypesym.create but the others were just references from the system unit. We only want to change owner of the symbol I create, right? Not the system unit ones? If not changing owner maybe we need to add some ref count or something? just confirming to make sure. function create_unamed_typesym(def:tdef): tsym; var newtype: tsym; begin newtype:=nil; if is_conststring_array(def) then begin { for constant strings we need to respect various modeswitches } if (cs_refcountedstrings in current_settings.localswitches) then begin if m_default_unicodestring in current_settings.modeswitches then newtype:=cunicodestringtype.typesym else newtype:=cansistringtype.typesym; end else newtype:=cshortstringtype.typesym; end else if def.typ=stringdef then newtype:=tstringdef(def).get_default_string_type.typesym else begin newtype:=ctypesym.create(def.typename,def); newtype.owner:=def.owner; end; if newtype=nil then internalerror(2021020904); result:=newtype; end; Regards, Ryan Joseph _______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel