I find bug
![smile.png](http://public.gamedev.net//public/style_emoticons/default/smile.png)
if comment this code
// null_object.Do();
destructor call 2 times - it is ok!
but, if we have null pointer exception
destructor call 3 times and c++ crash
http://www.everfall....hp?nt1d6pbl1rkg
AngelCode.com - game development and more - Reference DB - game developer references
AngelScript - free scripting library - BMFont - free bitmap font generator - Tower - free puzzle game
{
COutStream out;
asIScriptEngine *engine = asCreateScriptEngine(ANGELSCRIPT_VERSION);
engine->SetMessageCallback(asMETHOD(COutStream, Callback), &out, asCALL_THISCALL);
engine->RegisterObjectType("TestLink", sizeof(CObject), asOBJ_VALUE | asOBJ_APP_CLASS_CD);
engine->RegisterObjectBehaviour("TestLink", asBEHAVE_CONSTRUCT, "void f()", asFUNCTION(Construct), asCALL_CDECL_OBJLAST);
engine->RegisterObjectBehaviour("TestLink", asBEHAVE_CONSTRUCT, "void f(const TestLink &in)", asFUNCTION(CopyConstruct), asCALL_CDECL_OBJLAST);
engine->RegisterObjectBehaviour("TestLink", asBEHAVE_DESTRUCT, "void f()", asFUNCTION(Destruct), asCALL_CDECL_OBJLAST);
asIScriptModule *mod = engine->GetModule("mod", asGM_ALWAYS_CREATE);
mod->AddScriptSection("test",
"class Object3 \n"
"{ \n"
" Object3( TestLink str ) \n"
" { \n"
" Object3 @null_object = null; \n"
" null_object.Do(); \n"
" } \n"
" void Do() {} \n"
"} \n"
"void Main() \n"
"{ \n"
" Object3 @oo = Object3( TestLink() ); \n"
"} \n");
r = mod->Build();
if( r < 0 )
TEST_FAILED;
CObject_constructCount = 0;
CObject_destructCount = 0;
asIScriptContext *ctx = engine->CreateContext();
r = ExecuteString(engine, "Main()", mod, ctx);
if( r != asEXECUTION_EXCEPTION )
TEST_FAILED;
if( CObject_constructCount != 2 ||
CObject_destructCount != 1 )
TEST_FAILED;
ctx->Release();
if( CObject_constructCount != 2 ||
CObject_destructCount != 2 )
TEST_FAILED;
engine->Release();
}
AngelCode.com - game development and more - Reference DB - game developer references
AngelScript - free scripting library - BMFont - free bitmap font generator - Tower - free puzzle game
AngelCode.com - game development and more - Reference DB - game developer references
AngelScript - free scripting library - BMFont - free bitmap font generator - Tower - free puzzle game
AngelCode.com - game development and more - Reference DB - game developer references
AngelScript - free scripting library - BMFont - free bitmap font generator - Tower - free puzzle game