# Release (ref counted) called twice

## Recommended Posts

Hi, I'm having trouble with my reference counted object in AngelScript: Script code:
//Decl: Entity @SeekEntity(const string &in)
Entity @circle = SeekEntity("red_circle");

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?

##### Share on other sites
How is SeekEntity implemented? It may be creating references and not releasing them.

##### Share on other sites
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);

##### Share on other sites
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.

##### Share on other sites
Like this: Object handles?

##### Share on other sites
Quote:
 Original post by WitchLordLike 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.

## Create an account

Register a new account

• ### Forum Statistics

• Total Topics
627711
• Total Posts
2978744

• 21
• 14
• 12
• 36
• 30