omadrm/drmengine/server/src/DRMRightsClient.cpp
branchRCL_3
changeset 72 1481bf457703
parent 71 1221b68b8a5f
--- 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 <s32file.h>
 #include <etelmm.h>
+#include <featmgr.h>
 #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();