Update of /cvsroot/decaldev/source/DecalFilters
In directory sc8-pr-cvs1:/tmp/cvs-serv17283
Modified Files:
IdentifyQueue.cpp IdentifyQueue.h
Log Message:
more queue changes.. some for readability (references to pointers scare me) others for performance
Index: IdentifyQueue.cpp
===================================================================
RCS file: /cvsroot/decaldev/source/DecalFilters/IdentifyQueue.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** IdentifyQueue.cpp 31 Mar 2003 05:33:52 -0000 1.4
--- IdentifyQueue.cpp 31 Mar 2003 21:32:19 -0000 1.5
***************
*** 58,63 ****
if( m_bWaiting )
{
! IDStruct* &Front = m_Queue.front();
! if( abs( Front->lTime - timeGetTime() ) > TIMEOUT )
{
if( ++m_lAttempts >= 3 )
--- 58,62 ----
if( m_bWaiting )
{
! if( abs( m_Queue[0]->lTime - timeGetTime() ) > TIMEOUT )
{
if( ++m_lAttempts >= 3 )
***************
*** 71,75 ****
else
{
! Front->lTime = timeGetTime();
m_bWaiting = false;
Request();
--- 70,74 ----
else
{
! m_Queue[0]->lTime = timeGetTime();
m_bWaiting = false;
Request();
***************
*** 91,107 ****
if( !m_Queue.empty() )
{
! std::deque< IDStruct* >::iterator pdeque;
! for(pdeque = m_Queue.begin();
! pdeque != m_Queue.end();
! pdeque++)
! {
! if ( !IsBadReadPtr( ( void * ) ( *pdeque ), sizeof( IDStruct ) ) )
! {
! if ( (*pdeque)->lObjectID == lObjectID )
! {
! return S_OK;
! }
! }
! }
}
--- 90,99 ----
if( !m_Queue.empty() )
{
! for( std::deque< IDStruct * >::iterator pDeque = m_Queue.begin(); pDeque != m_Queue.end(); pDeque++ )
! {
! if ( !IsBadReadPtr( reinterpret_cast< void * >( *pDeque ), sizeof( IDStruct ) ) )
! if ( (*pDeque)->lObjectID == lObjectID )
! return S_OK;
! }
}
***************
*** 136,151 ****
pMembers->get_NextInt( _bstr_t( "object" ), &lObjectID );
! IDStruct* &Front = m_Queue.front();
!
! if( lObjectID == Front->lObjectID )
{
#ifdef _DEBUG
! char szOut[2048]; memset( szOut, 0, sizeof( szOut ) );
! _snprintf( szOut, sizeof( szOut ), "IDF: Deleting ID 0x%8X from Queue!", Front->lObjectID );
! m_pHooks->ChatOut( _bstr_t( szOut ), 7 );
#endif
! m_lAttempts = 0;
! m_Queue.erase( m_Queue.begin() );
}
--- 128,144 ----
pMembers->get_NextInt( _bstr_t( "object" ), &lObjectID );
! for( std::deque< IDStruct * >::iterator pDeque = m_Queue.begin(); pDeque != m_Queue.end(); pDeque++ )
{
+ if( lObjectID == m_Queue[0]->lObjectID )
+ {
#ifdef _DEBUG
! char szOut[2048]; memset( szOut, 0, sizeof( szOut ) );
! _snprintf( szOut, sizeof( szOut ), "IDF: Deleting ID 0x%8X from Queue!", Front->lObjectID );
! m_pHooks->ChatOut( _bstr_t( szOut ), 7 );
#endif
! m_lAttempts = 0;
! m_Queue.erase( m_Queue.begin() );
! }
}
***************
*** 164,169 ****
if( !m_bWaiting )
{
- IDStruct* &Front = m_Queue.front();
-
#ifdef _DEBUG
char szOut[2048]; memset( szOut, 0, sizeof( szOut ) );
--- 157,160 ----
***************
*** 172,179 ****
#endif
! m_pHooks->RequestID( Front->lObjectID );
m_bWaiting = true;
! if( Front->lObjectID == 0 )
{
m_bWaiting = false;
--- 163,170 ----
#endif
! m_pHooks->RequestID( m_Queue[0]->lObjectID );
m_bWaiting = true;
! if( m_Queue[0]->lObjectID == 0 )
{
m_bWaiting = false;
Index: IdentifyQueue.h
===================================================================
RCS file: /cvsroot/decaldev/source/DecalFilters/IdentifyQueue.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** IdentifyQueue.h 30 Mar 2003 07:52:15 -0000 1.1
--- IdentifyQueue.h 31 Mar 2003 21:32:21 -0000 1.2
***************
*** 47,51 ****
CComPtr< IACHooks > m_pHooks;
! std::deque< IDStruct* > m_Queue;
bool m_bWaiting;
long m_lAttempts;
--- 47,51 ----
CComPtr< IACHooks > m_pHooks;
! std::deque< IDStruct * > m_Queue;
bool m_bWaiting;
long m_lAttempts;
|