diff -r e26895079d7c -r 7fdc9a71d314 memspy/Engine/Source/ThreadAndProcess/MemSpyEngineObjectThreadInfoObjects.cpp --- a/memspy/Engine/Source/ThreadAndProcess/MemSpyEngineObjectThreadInfoObjects.cpp Wed Sep 15 00:19:18 2010 +0300 +++ b/memspy/Engine/Source/ThreadAndProcess/MemSpyEngineObjectThreadInfoObjects.cpp Wed Sep 15 13:53:27 2010 +0300 @@ -123,6 +123,17 @@ return TPtrC( item->Combined() ); } +EXPORT_C TPtrC CMemSpyThreadInfoItemBase::Caption(TInt aIndex ) const + { + CItem* item = iItems[ aIndex ]; + return TPtrC( item->Caption() ); + } + +EXPORT_C TPtrC CMemSpyThreadInfoItemBase::Value(TInt aIndex ) const + { + CItem* item = iItems[ aIndex ]; + return TPtrC( item->Value() ); + } EXPORT_C CMemSpyEngine& CMemSpyThreadInfoItemBase::Engine() const { @@ -1691,20 +1702,18 @@ #endif // See if we have an entry with that name... - TIdentityRelation comparer( CompareEntries ); - HBufC* name = aName.AllocLC(); - CSessionInfoEntry* entry = new(ELeave) CSessionInfoEntry( name ); - CleanupStack::Pop( name ); - CleanupStack::PushL( entry ); - const TInt foundIndex = iServerNames.Find( entry, comparer ); - CleanupStack::PopAndDestroy( entry ); + TInt foundIndex = 0; + TRAP(ret, foundIndex = FindServerL(aName)); - // If we did, get the count - if ( foundIndex >=0 && foundIndex < iServerNames.Count() ) + if (ret == KErrNone) { - ret = iServerNames[ foundIndex ]->iCount; + // If we did, get the count + if ( foundIndex >=0 && foundIndex < iServerNames.Count() ) + { + ret = iServerNames[ foundIndex ]->iCount; + } } - // + #ifdef _DEBUG RDebug::Printf( "CMemSpyThreadInfoSession::ConnectionCount() - END - ret: %d", ret ); #endif @@ -1712,10 +1721,22 @@ return ret; } +TInt CMemSpyThreadInfoSession::FindServerL( const TDesC& aName ) const + { + TIdentityRelation comparer( CompareEntries ); + HBufC* name = aName.AllocLC(); + CSessionInfoEntry* entry = new(ELeave) CSessionInfoEntry( name ); + CleanupStack::Pop( name ); // don't destroy it as name is now owned by entry + CleanupStack::PushL( entry ); + const TInt foundIndex = iServerNames.Find( entry, comparer ); + User::LeaveIfError(foundIndex); // so we only return a real index + CleanupStack::PopAndDestroy( entry ); + return foundIndex; + } void CMemSpyThreadInfoSession::HandleContainerItemL( TMemSpyDriverHandleInfoGeneric& aItem, TInt /*aRefCount*/, TDes& aFullName ) { - // Check whether we have the item already? + // Check whether we have the item already TIdentityRelation comparer( CompareEntries ); // Prepare object, just in case we don't find it...