Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

40 lines
880 B

//
// refcount.inl
//
// This file implements the member functions of
// CRefCount as defined in smartptr.h.
// Refer to smartptr.h for all information.
//
//-------------------------------------------
//
// Initialize the reference count to -1. We Use -1 so
// that it will be possible to determine when the first reference
// is made.
//
inline
CRefCount::CRefCount( ) : m_refs( -1 ) { }
//-------------------------------------------
inline LONG
CRefCount::AddRef( ) {
//
// Add a reference to an object.
//
return InterlockedIncrement( &m_refs ) ;
}
//-------------------------------------------
inline LONG
CRefCount::RemoveRef( ) {
//
// Remove a Reference from an object.
// When this function returns a negative number the object
// should be destroyed.
//
return InterlockedDecrement( &m_refs ) ;
}