本文整理汇总了C++中MOAILuaObject::GetRefCount方法的典型用法代码示例。如果您正苦于以下问题:C++ MOAILuaObject::GetRefCount方法的具体用法?C++ MOAILuaObject::GetRefCount怎么用?C++ MOAILuaObject::GetRefCount使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MOAILuaObject
的用法示例。
在下文中一共展示了MOAILuaObject::GetRefCount方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: _gc
//----------------------------------------------------------------//
int MOAILuaObject::_gc ( lua_State* L ) {
MOAILuaState state ( L );
MOAILuaObject* self = ( MOAILuaObject* )state.GetPtrUserData ( 1 );
self->mCollected = true;
if ( MOAILuaRuntime::IsValid ()) {
if ( self->mFinalizer ) {
self->mFinalizer.PushRef ( state );
if ( state.IsType ( -1, LUA_TFUNCTION )) {
state.DebugCall ( 0, 0 );
}
else if ( state.IsType ( -1, LUA_TSTRING )) {
printf ( "%s\n", state.GetValue < cc8* >( -1, "" ));
}
else {
state.Pop ( 1 );
}
self->mFinalizer.Clear ();
}
if ( MOAILuaRuntime::Get ().mReportGC ) {
printf ( "GC %s <%p>\n", self->TypeName (), self );
}
}
if ( self->GetRefCount () == 0 ) {
delete ( self );
}
return 0;
}
示例2: _gc
//----------------------------------------------------------------//
int MOAILuaObject::_gc ( lua_State* L ) {
MOAILuaState state ( L );
MOAILuaObject* data = ( MOAILuaObject* )state.GetPtrUserData ( 1 );
bool cleanup = ( data->GetRefCount () == 0 ); // ready to cleanup if no references
// in any event, let's get rid of the userdata and lua refs we know about
data->ClearLocal ( data->mContain );
data->mUserdata.Clear ();
data->mMemberTable.Clear ();
// check to see if gc is being invoked during finalization
if ( MOAILuaRuntime::IsValid ()) {
MOAILuaRuntime::Get ().ClearObjectStackTrace ( data );
}
// delete if no references
if ( cleanup ) {
delete data;
}
return 0;
}