🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

Incorrect context reference handling in scripthelper addon

Started by
1 comment, last by WitchLord 7 years, 11 months ago

The scripthelper addon function ExecuteString doesn't handle context reference counting properly if Prepare returns an error code.

Instead of returning contexts retrieved using asIScriptEngine::RequestContext, it calls release:


// If no context was provided, request a new one from the engine
asIScriptContext *execCtx = ctx ? ctx : engine->RequestContext();
r = execCtx->Prepare(func);
if( r < 0 )
{
	func->Release();
	if( !ctx ) execCtx->Release();
	return r;
}

Normal execution will handle this correctly:


if( !ctx ) engine->ReturnContext(execCtx);

it should use the latter method in both cases.

Advertisement

Thanks. I'll have it fixed.

AngelCode.com - game development and more - Reference DB - game developer references
AngelScript - free scripting library - BMFont - free bitmap font generator - Tower - free puzzle game

Fixed in revision 2335

AngelCode.com - game development and more - Reference DB - game developer references
AngelScript - free scripting library - BMFont - free bitmap font generator - Tower - free puzzle game

This topic is closed to new replies.

Advertisement