diff -r 1221b68b8a5f -r 1481bf457703 omadrm/drmengine/server/src/DRMRightsClient.cpp --- a/omadrm/drmengine/server/src/DRMRightsClient.cpp Tue Aug 31 15:29:38 2010 +0300 +++ b/omadrm/drmengine/server/src/DRMRightsClient.cpp Wed Sep 01 12:21:16 2010 +0100 @@ -19,6 +19,7 @@ // INCLUDE FILES #include #include +#include #include "DRMRightsClient.h" #include "DRMEngineClientServer.h" #include "DrmPermission.h" @@ -157,11 +158,23 @@ } #ifdef __DRM_FULL - // startup code, if it starts it starts if not it will be tried again. - RDRMHelper helper; - TInt ignore = helper.Connect(); // Start HelperServer - helper.Close(); -#endif + + TRAP( ret, FeatureManager::InitializeLibL() ); + + if ( !ret && FeatureManager::FeatureSupported( KFeatureIdFfOmadrm1FullSupport ) ) + { + // startup code, if it starts it starts if not it will be tried again. + RDRMHelper helper; + TInt ignore = helper.Connect(); // Start HelperServer + helper.Close(); + } + + if ( !ret ) + { + FeatureManager::UnInitializeLib(); + } + +#endif DRMLOG2( _L( "RDRMRightsClient::Connect(): Result: %d" ), ret ); @@ -841,9 +854,7 @@ Mem::Copy( &roSize, ptr.Ptr()+offset, sizeof(TInt) ); offset += sizeof (TInt); ro = ptr.Mid(offset, roSize).AllocL(); - CleanupStack::PushL( ro ); - aRoList.AppendL (ro); - CleanupStack::Pop( ro ); + aRoList.Append(ro); offset += roSize; } CleanupStack::PopAndDestroy();