Original Post
r = engine->RegisterObjectType( "Matrix2", sizeof( ScriptMatrix2 ), asOBJ_REF ); r = engine->RegisterObjectBehaviour( "Matrix2", asBEHAVE_FACTORY, "Matrix2 @f()", asFUNCTION( ScriptMatrix2DefaultFactory ), asCALL_CDECL ); r = engine->RegisterObjectBehaviour( "Matrix2", asBEHAVE_FACTORY, "Matrix2 @f(float, float, float, float)", asFUNCTION( ScriptMatrix2Factory ), asCALL_GENERIC ); r = engine->RegisterObjectBehaviour( "Matrix2", asBEHAVE_ADDREF, "void f()",asMETHOD( ScriptMatrix2, AddRef ), asCALL_THISCALL ); r = engine->RegisterObjectBehaviour( "Matrix2", asBEHAVE_RELEASE, "void f()", asMETHOD( ScriptMatrix2, Release ), asCALL_THISCALL ); // AS Code : Matrix2 m( 0, 0, 0, 0 ); But it had memory leak, Release of Matrix2 didn't been called. I dont't know why, Thanks very much guys !