//Decl: Entity @SeekEntity(const string &in)
Entity @circle = SeekEntity("red_circle");
Release (ref counted) called twice
Hi,
I'm having trouble with my reference counted object in AngelScript:
Script code:
The problem is that the release method is being called twice, while the addref is called once. It turns the reference counter to zero and deletes it. I have followed it with the debugger and I saw that both release calls come from AS.
The reference counter is starting from 1 (in the constructor). If remove the code line above the program runs OK. Why is it happening?
Since SeekEntity is returning a handle it must increment the reference counter for that object. Alternatively you can use autohandles when registering the function, i.e.:
engine->RegisterGlobalFunction("Entity @+ SeekEntity(const string &in)", asFUNCTION(SeekEntity), asCALL_CDECL);
Thank you again Andreas, it worked.
One suggestion: the "Registering a reference type" section of the manual could talk about it or at least link the the page where the "+" modifier is presented (if there is one). I think it would avoid this kind of post.
One suggestion: the "Registering a reference type" section of the manual could talk about it or at least link the the page where the "+" modifier is presented (if there is one). I think it would avoid this kind of post.
Quote:Original post by WitchLord
Like this: Object handles?
I meant a link in the "Registering a reference type" page, but that's already visible enough. Keep up the good work.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement