void QueryResult::put_Explanation( String* inExplainStr ) { // if we have string here we need destroy it ForgetObject( mpExplainStr ); mpExplainStr = inExplainStr; }
Thread_Simple::~Thread_Simple( void ) { #if FBL_WIN if( mHandle ) CloseHandle( mHandle ); #endif //FBL_WIN ForgetObject( mpThreadArgs ); }
void QueryResult::put_AsString( String* inpValue ) { // if we have string here we need destroy it ForgetObject( mpStringValue ); mResultType = kQueryResult_String; mResultTypeEx = (EQueryResultEx)(mResultTypeEx | kQueryResultEx_String); mpStringValue = inpValue; }
void Location_Disk_FSSpec::put_FSSpec( const FSSpec* inSpec ) { FBL_CHECK( inSpec != NULL ); mFSSpec = *inSpec; // copy structures here. mSpecExists = true; ForgetObject( mpFullPath ); }
void Location_Disk_FSSpec::put_Path( const String& inFullPath ) { ForgetObject( mpFullPath ); if( !inFullPath.isEmpty() ) mpFullPath = new String( inFullPath ); mSpecExists = false; }
void ValentinaThreadShutDown( void ) { #if FBL_INTERNAL_THREADSAFE || FBL_EXTERNAL_THREADSAFE vuint64* threadInitCounter = (vuint64*)tlsInitCounter.get(); if( threadInitCounter ) { if( (*threadInitCounter) > 1 ) { // ValentinaThreadShutDown is called, but we just register this fact // instead of real job. (*threadInitCounter)--; } else { // (*threadInitCounter) == 1 // #if FBL_TEST_CODE { StLockGuard<True_Thread_Mutex> lock(gThreadIDArrayMutex); FBL_CHECK( gThreadIDArray ); if( gThreadIDArray ) { #if FBL_WIN gThreadIDArray->RemoveItem( (fbl::vuint64)GetCurrentThreadId() ); #else gThreadIDArray->RemoveItem( (fbl::vuint64)( pthread_self() ) ); #endif //FBL_WIN } } #endif // FBL_TEST_CODE // vKernel stuff. if( pValentinaThreadShutDownEx ) pValentinaThreadShutDownEx(); // "Free" TLS objects (safe even if this thread did not "create" tlsSysLocalizable ). tlsSysLocalizable.SafeRelease(); // "Free" tlsInitCounter object ForgetObject( threadInitCounter ); } tlsInitCounter.set( threadInitCounter ); } else { // Silently ignore - ValentinaThreadShutDown is called before any ValentinaThreadInit. } #endif // FBL_INTERNAL_THREADSAFE || FBL_EXTERNAL_THREADSAFE }
Location_Disk_FSSpec& Location_Disk_FSSpec::operator=( const Location_Disk_FSSpec& inOther ) { mSpecExists = inOther.mSpecExists; mFSSpec = inOther.mFSSpec; // also we check that may be inOther have path? ForgetObject( mpFullPath ); if( inOther.mpFullPath ) mpFullPath = new String( *inOther.mpFullPath ); return *this; }
QueryResult::~QueryResult( void ) { ForgetObject( mpStringValue ); ForgetObject( mpExplainStr ); }
Value_datetime_imp::~Value_datetime_imp( void ) { if( mDTFormatOwner ) ForgetObject(mDTFormat); }
Location_Disk_FSSpec::~Location_Disk_FSSpec( void ) { ForgetObject( mpFullPath ); }