Advertisement

Incorrect context reference handling in scripthelper addon

Started by July 10, 2016 12:26 PM
1 comment, last by WitchLord 8 years, 4 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.

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

Advertisement

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