Revision: 201017 RCL_3
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 11 May 2010 16:22:38 +0300
branchRCL_3
changeset 7 fc3225a0ab43
parent 6 a72ff4214918
child 9 332e7bf3b42f
Revision: 201017 Kit: 201019
appfw/apparchitecture/apgrfx/APGWGNAM.CPP
appfw/apparchitecture/tef/T_WgnamStep.CPP
commonappservices/alarmserver/Client/Source/ASCliSession.cpp
contextframework/cfwplugins/ApplicationStateSourcePlugIn/group/bld.inf
contextframework/cfwplugins/PSStateSourcePlugIn/group/bld.inf
contextframework/cfwplugins/sensorsourceplugin/group/bld.inf
contextframework/cfwplugins/sensorsourceplugin/src/sensorchannelbase.cpp
coreapplicationuis/SysAp/Inc/SysApAppUi.h
coreapplicationuis/SysAp/Src/SysApAppUi.cpp
coreapplicationuis/SysAp/Src/SysApSatObserver.cpp
coreapplicationuis/advancedtspcontroller/group/bld.inf
coreapplicationuis/powersaveutilities/batterypopupcontrol/src/batterypopupcontrol.cpp
coreapplicationuis/rfsplugins/FormatterRFSPlugin/src/formatterrfsplugin.cpp
sysresmonitoring/oommonitor/data/oomconfig.xml
tzservices/tzserver/Client/Source/timezoneuserdata.cpp
tzservices/tzserver/Include/tzuserdefineddata.h
--- a/appfw/apparchitecture/apgrfx/APGWGNAM.CPP	Tue Apr 27 16:49:15 2010 +0300
+++ b/appfw/apparchitecture/apgrfx/APGWGNAM.CPP	Tue May 11 16:22:38 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
 // under the terms of "Eclipse Public License v1.0"
@@ -9,6 +9,7 @@
 // Nokia Corporation - initial contribution.
 //
 // Contributors:
+// NTT DOCOMO, INC. -- Fix CApaWindowGroupName::AppUid() cannot handle UID with 0 prefix
 //
 // Description:
 //
@@ -513,7 +514,7 @@
 		{
 		start++;
 		TInt end=FindDelimiter(EEndUid);
-		if ((end-start) == KUidBufLength)
+		if (0<end && (end-start)<=KUidBufLength)
 			{
 			TBuf<KUidBufLength> uidBuf=iBuf->Mid(start, end-start);
 			TLex lex(uidBuf);
--- a/appfw/apparchitecture/tef/T_WgnamStep.CPP	Tue Apr 27 16:49:15 2010 +0300
+++ b/appfw/apparchitecture/tef/T_WgnamStep.CPP	Tue May 11 16:22:38 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2005-2010 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
 // under the terms of "Eclipse Public License v1.0"
@@ -201,6 +201,16 @@
 	TEST(apaWindowGroupName->AppUid()==uid);
 	INFO_PRINTF1(_L("\n"));
 	// User::After(2000000);
+	
+	// RDebug::Print(_L("Block 5a"));
+	INFO_PRINTF1(_L("Test setting appUid starting with 0"));
+	const TUid uid1={ 0x00000111 };
+	PrintWindowGroupName(apaWindowGroupName->WindowGroupName());
+	INFO_PRINTF2(_L("Setting app uid to %x\n"), uid1.iUid);
+	apaWindowGroupName->SetAppUid(uid1);
+	PrintWindowGroupName(apaWindowGroupName->WindowGroupName());
+	TEST(apaWindowGroupName->AppUid()==uid1);
+	INFO_PRINTF1(_L("\n"));
 
 	// test setting caption
 	// RDebug::Print(_L("Block 6"));
--- a/commonappservices/alarmserver/Client/Source/ASCliSession.cpp	Tue Apr 27 16:49:15 2010 +0300
+++ b/commonappservices/alarmserver/Client/Source/ASCliSession.cpp	Tue May 11 16:22:38 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1999-2010 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
 // under the terms of "Eclipse Public License v1.0"
@@ -742,6 +742,7 @@
 */
 EXPORT_C void RASCliSession::GetAvailableCategoryListL(RArray<TAlarmCategory>& aCategories) const
 	{
+	CleanupClosePushL(aCategories);
 	// First step is to build the transfer buffer in the server
 	// and get the size (in bytes) so that we know
 	// how big to make the client-side (corresponding) temporary one.
@@ -768,6 +769,8 @@
 	//
 	stream.Close();
 	CleanupStack::PopAndDestroy(2, buffer);
+  // relieve the ownership of the array to the caller
+  CleanupStack::Pop(&aCategories);
 	}
 
 
@@ -1328,6 +1331,7 @@
 */
 void RASCliSession::FetchAlarmIdsFromBufferL(RArray<TAlarmId>& aAlarmIds, TInt aBufferSize) const
 	{
+	CleanupClosePushL(aAlarmIds);
 	CBufBase* buffer = FetchTransferBufferLC(aBufferSize);
 
 	// The buffer just contains serialized TAlarmId's so we need to
@@ -1344,6 +1348,8 @@
 		}
 	//
 	CleanupStack::PopAndDestroy(2, buffer);
+	// relieve the ownership of the array to the caller
+	CleanupStack::Pop(&aAlarmIds); 
 	}
 
 /** 
--- a/contextframework/cfwplugins/ApplicationStateSourcePlugIn/group/bld.inf	Tue Apr 27 16:49:15 2010 +0300
+++ b/contextframework/cfwplugins/ApplicationStateSourcePlugIn/group/bld.inf	Tue May 11 16:22:38 2010 +0300
@@ -31,9 +31,9 @@
 // Rule files
 /*
 Copy autorotateui_activate.xml, autorotateui_alwaysinportrait.xml, autorotateui_init.xml, autorotateui_rotate.xml to 
-1. \epoc32\data\z\private\10282BC4\rules\
-2. \epoc32\release\winscw\udeb\z\private\10282BC4\rules\
-3. \epoc32\release\winscw\urel\z\private\10282BC4\rules\
+1. /epoc32/data/z/private/10282BC4/rules/
+2. /epoc32/release/winscw/udeb/z/private/10282BC4/rules/
+3. /epoc32/release/winscw/urel/z/private/10282BC4/rules/
 */
 ../data/autorotateui_activate.xml Z:/private/10282bc4/rules/autorotateui_activate.rul
     
--- a/contextframework/cfwplugins/PSStateSourcePlugIn/group/bld.inf	Tue Apr 27 16:49:15 2010 +0300
+++ b/contextframework/cfwplugins/PSStateSourcePlugIn/group/bld.inf	Tue May 11 16:22:38 2010 +0300
@@ -26,9 +26,9 @@
 
 /*
 Copy 10282C74.xml to 
-1. \epoc32\data\z\private\10282BC4\Settings\10282C74\10282C74.xml
-2. \epoc32\release\winscw\udeb\z\private\10282BC4\Settings\10282C74\10282C74.xml
-3. \epoc32\release\winscw\urel\z\private\10282BC4\Settings\10282C74\10282C74.xml
+1. /epoc32/data/z/private/10282BC4/Settings/10282C74/10282C74.xml
+2. /epoc32/release/winscw/udeb/z/private/10282BC4/Settings/10282C74/10282C74.xml
+3. /epoc32/release/winscw/urel/z/private/10282BC4/Settings/10282C74/10282C74.xml
 */
 ../data/10282C74.xml	Z:/private/10282BC4/Settings/10282C74/10282C74.xml
     
--- a/contextframework/cfwplugins/sensorsourceplugin/group/bld.inf	Tue Apr 27 16:49:15 2010 +0300
+++ b/contextframework/cfwplugins/sensorsourceplugin/group/bld.inf	Tue May 11 16:22:38 2010 +0300
@@ -29,9 +29,9 @@
 
 /*
 Copy 10282DF0.xml to 
-1. \epoc32\data\z\private\10282BC4\Settings\10282DF0\10282DF0.xml
-2. \epoc32\release\winscw\udeb\z\private\10282BC4\Settings\10282DF0\10282DF0.xml
-3. \epoc32\release\winscw\urel\z\private\10282BC4\Settings\10282DF0\10282DF0.xml
+1. /epoc32/data/z/private/10282BC4/Settings/10282DF0/10282DF0.xml
+2. /epoc32/release/winscw/udeb/z/private/10282BC4/Settings/10282DF0/10282DF0.xml
+3. /epoc32/release/winscw/urel/z/private/10282BC4/Settings/10282DF0/10282DF0.xml
 */
 ../data/10282DF0.xml	Z:/private/10282BC4/Settings/10282DF0/10282DF0.xml
 
--- a/contextframework/cfwplugins/sensorsourceplugin/src/sensorchannelbase.cpp	Tue Apr 27 16:49:15 2010 +0300
+++ b/contextframework/cfwplugins/sensorsourceplugin/src/sensorchannelbase.cpp	Tue May 11 16:22:38 2010 +0300
@@ -13,6 +13,7 @@
 *
 * Description:  CSensorChannelBase class implementation.
 *
+*  
 */
 
 
@@ -235,9 +236,8 @@
     TInt aDataLost )
     {
     FUNC_LOG;
-
-    TRAP_IGNORE( HandleDataReceivedL( aChannel, aCount, aDataLost ) );
-
+    
+    
     // If we are fetching initial value, make sure that the channel is closed
     // properly if there are no active connections
     if( !SensorActive() && iState == EChannelStateInitializing )
@@ -247,6 +247,7 @@
         }
     else
         {
+        TRAP_IGNORE( HandleDataReceivedL( aChannel, aCount, aDataLost ) );
         // Active connections received, change state
         ChangeState( EChannelStateActive );
         }
@@ -631,3 +632,4 @@
     }
 
 // End of file
+
--- a/coreapplicationuis/SysAp/Inc/SysApAppUi.h	Tue Apr 27 16:49:15 2010 +0300
+++ b/coreapplicationuis/SysAp/Inc/SysApAppUi.h	Tue May 11 16:22:38 2010 +0300
@@ -1522,9 +1522,6 @@
         TInt                            iApplicationScanningRoundNumberInBtSap;
         TBool                           iTimeToKillInBtSap;
 
-        CAknGlobalNote*                 iProfileNote;
-        TInt                            iProfileNoteId;
-
         TBool                           iLastPowerKeyWasShort;
         TBool                           iIgnoreNextPowerKeyUpEvent;
         TBool                           iIgnoreNextPowerKeyRepeats;
--- a/coreapplicationuis/SysAp/Src/SysApAppUi.cpp	Tue Apr 27 16:49:15 2010 +0300
+++ b/coreapplicationuis/SysAp/Src/SysApAppUi.cpp	Tue May 11 16:22:38 2010 +0300
@@ -18,6 +18,7 @@
 
 // INCLUDES
 
+#include<akndiscreetpopup.h>
 #include <avkon.hrh>
 #include <avkon.rsg>
 #include <eikon.hrh>
@@ -207,8 +208,6 @@
 #ifndef RD_MULTIPLE_DRIVE
     iMemoryCardDialog( 0 ),
 #endif // RD_MULTIPLE_DRIVE
-    iProfileNote( NULL ),
-    iProfileNoteId( 0 ),
     iPowerKeyPopupMenuActive( EFalse ),
     iDisablePowerkeyMenu( EFalse ),
     iDeviceLockEnabled( EFalse ),
@@ -554,7 +553,7 @@
         }
 #endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
 
-    delete iProfileNote;
+  
 
 #ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
     if( iAnimTimer )
@@ -1724,13 +1723,7 @@
 
     if ( UiReady() )
         {
-        if ( iProfileNote )
-            {
-            // when a call is coming in, there might be a pending "Selected profile"
-            // we don't want to show anymore
-            iProfileNote->CancelNoteL( iProfileNoteId );
-            }
-
+      
         TBufC<KMaxProfileNameLength> profileName;
         HBufC* noteStringBuf = NULL;
         ActiveProfileNameL( profileName.Des() );
@@ -1738,13 +1731,7 @@
         TPtr textBuffer = noteStringBuf->Des();
         AknTextUtils::DisplayTextLanguageSpecificNumberConversion( textBuffer );
 
-        // profile note is constructed when it is needed for the first time
-        if ( !iProfileNote )
-            {
-            iProfileNote = CAknGlobalNote::NewL();
-            iProfileNote->SetTone( EAvkonSIDConfirmationTone );
-            }
-
+       
         // Set secondary display data if necessary
         if ( iSysApFeatureManager->CoverDisplaySupported() )
             {
@@ -1753,12 +1740,13 @@
             sdProfileName.Append(profileName.Left(SecondaryDisplay::KProfileNameMaxLen));
             SecondaryDisplay::TProfileNotePckg pckg(sdProfileName);
             CAknSDData* sd = CAknSDData::NewL(SecondaryDisplay::KCatSysAp, SecondaryDisplay::ECmdShowProfileNote, pckg);
-            iProfileNote->SetSecondaryDisplayData(sd); // ownership to notifier client
-            }
-
-        iProfileNoteId = iProfileNote->ShowNoteL( EAknGlobalConfirmationNote, textBuffer );
-
-        CleanupStack::PopAndDestroy( ); // noteStringbuf
+           
+            }
+
+
+        CAknDiscreetPopup::ShowGlobalPopupL(textBuffer,KNullDesC, KAknsIIDNone, KNullDesC);
+         
+        CleanupStack::PopAndDestroy(); // noteStringbuf 
 
         iSysApLightsController->ProfileChangedL(); // All notes should always turn lights on.
         }
@@ -4059,14 +4047,14 @@
         iSysApLightsController->DeviceLockStateChangedL( iDeviceLockEnabled );
         }
     
-    if( iDeviceLockEnabled )
+ /*   if( iDeviceLockEnabled )
         {
         if( iKeyLockEnabled )
             {
             KeyLock().DisableWithoutNote();
             }
-        }
-    else
+        }*/
+    if(! iDeviceLockEnabled )
         {
         // let's not activate keylock in case device lock was disabled during call or in cradle
         iKeyLockOnBeforeCall = EFalse;
--- a/coreapplicationuis/SysAp/Src/SysApSatObserver.cpp	Tue Apr 27 16:49:15 2010 +0300
+++ b/coreapplicationuis/SysAp/Src/SysApSatObserver.cpp	Tue May 11 16:22:38 2010 +0300
@@ -18,8 +18,8 @@
 
 
 // INCLUDE FILES
-#include <RSatRefresh.h>
-#include <RSatSession.h>
+#include <rsatrefresh.h>
+#include <rsatsession.h>
 #include <e32debug.h>
 #include "SysApSatObserver.h"
 #include "SysAp.hrh"
--- a/coreapplicationuis/advancedtspcontroller/group/bld.inf	Tue Apr 27 16:49:15 2010 +0300
+++ b/coreapplicationuis/advancedtspcontroller/group/bld.inf	Tue May 11 16:22:38 2010 +0300
@@ -27,13 +27,13 @@
 PRJ_EXPORTS
 
 #ifdef RD_TSP_CLIENT_MAPPER
-// Rules for media key handling
 /*
 Copy keyevent.rul, keyincall.rul, keyinfmtx.rul to 
-1. \epoc32\data\z\private\10282BC4\rules\
-2. \epoc32\release\winscw\udeb\z\private\10282BC4\rules\
-3. \epoc32\release\winscw\urel\z\private\10282BC4\rules\
+1. /epoc32/data/z/private/10282BC4/rules/
+2. /epoc32/release/winscw/udeb/z/private/10282BC4/rules/
+3. /epoc32/release/winscw/urel/z/private/10282BC4/rules/
 */
+// Rules for media key handling
 ../data/keyevent.rul                                        	    Z:/private/10282bc4/rules/keyevent.rul
 // Call handling rules
 ../data/keyincall.rul                               	            Z:/private/10282bc4/rules/keyincall.rul
--- a/coreapplicationuis/powersaveutilities/batterypopupcontrol/src/batterypopupcontrol.cpp	Tue Apr 27 16:49:15 2010 +0300
+++ b/coreapplicationuis/powersaveutilities/batterypopupcontrol/src/batterypopupcontrol.cpp	Tue May 11 16:22:38 2010 +0300
@@ -139,6 +139,13 @@
         {
         SizeChanged();
         }
+
+	// Position
+	TPoint uipRect;
+	if( AknLayoutUtils::LayoutMetricsPosition( AknLayoutUtils::EBatteryPane, uipRect ) )
+		{
+		iController->SetPosition( uipRect );
+		}
     }
 
 
--- a/coreapplicationuis/rfsplugins/FormatterRFSPlugin/src/formatterrfsplugin.cpp	Tue Apr 27 16:49:15 2010 +0300
+++ b/coreapplicationuis/rfsplugins/FormatterRFSPlugin/src/formatterrfsplugin.cpp	Tue May 11 16:22:38 2010 +0300
@@ -23,6 +23,7 @@
 #include <swi/sisregistryentry.h>
 #include <swi/sisregistrypackage.h>
 #include <mmf/common/mmfcontrollerpluginresolver.h>
+#include <starterdomaincrkeys.h>
 // USER INCLUDE
 #include "formatterrfsplugin.h"
 #include "formatterrfspluginprivatecrkeys.h"
@@ -86,12 +87,6 @@
     RFs fileSession;
     RFile excludeFileName;
     
-    RFile fileName;
-    TInt pos = 0;
-    TInt size_of_script( 0 );
-    TInt buffer_size( sizeof(TText) );
-    TInt number_of_chars;
-    
     User::LeaveIfError(fileSession.Connect());
     TInt ret = excludeFileName.Open(fileSession,_L("c:\\private\\100059C9\\excludelist.txt"),EFileRead);
 
@@ -100,38 +95,16 @@
 			RDebug::Print(_L("CFormatterRFSPlugin::ExcludeListNameL , MergeFiles : Failed to open the file"));
 			return;
 			}
-    ret = fileName.Open(fileSession,_L("c:\\private\\100059C9\\excludelistcache.txt"),EFileWrite|EFileStreamText);
-    if ( ret != KErrNone)
-            {
-            excludeFileName.Close();
-            RDebug::Print(_L("CFormatterRFSPlugin::ExcludeListNameL , MergeFiles : Failed to open the file"));
-            return;
-            }
-    fileName.Seek(ESeekEnd,pos);
-    
-    HBufC* buffer = HBufC::NewMaxLC( buffer_size );        
-    TPtr8 bufferPtr( (TUint8*)buffer->Ptr(), buffer_size);
-    
-    TInt err(0);
-    err = excludeFileName.Size( size_of_script );
-    number_of_chars = size_of_script / sizeof(TText);
+    excludeFileName.Close();
 
-    TInt i(0);
-    for (i = 0; i < number_of_chars; i++)
-       {
-       if ( err == KErrNone )
-            {
-            err = excludeFileName.Read( bufferPtr);                
-            }
-        fileName.Write(bufferPtr);
-        }
-    fileName.Flush();
-    fileName.Close();
-    
-    excludeFileName.Close();
+    CFileMan* fileMan=CFileMan::NewL(fileSession);
+    CleanupStack::PushL(fileMan);
+ 
+    TInt result=fileMan->Copy(_L("c:\\private\\100059C9\\excludelist.txt"),_L("c:\\private\\100059C9\\excludelistcache.txt"),CFileMan::EOverWrite);
+		RDebug::Print(_L("CFormatterRFSPlugin::MergeFilesL copying the excludelist.txt to excludelistcache.txt , CFileMan::Copy returned = %d"), result);   
+    CleanupStack::PopAndDestroy(fileMan);
+
     fileSession.Close();
-    CleanupStack::PopAndDestroy();//buffer
-
     }
 
 static HBufC* ExcludeListNameL( TChar aSystemDrive )
@@ -465,6 +438,14 @@
         aPath.Append( KScriptUidSeparator );
         INFO_1( "Script = '%S'", &aPath );
         }
+    else
+        {
+        RDebug::Print(_L("Resetting the KStartupFirstBoot value"));
+		CRepository* repository = CRepository::NewL(KCRUidStartup);
+        CleanupStack::PushL( repository );
+        repository->Reset(KStartupFirstBoot);
+        CleanupStack::PopAndDestroy( repository );
+        }
     }
 
 // ---------------------------------------------------------------------------
--- a/sysresmonitoring/oommonitor/data/oomconfig.xml	Tue Apr 27 16:49:15 2010 +0300
+++ b/sysresmonitoring/oommonitor/data/oomconfig.xml	Tue May 11 16:22:38 2010 +0300
@@ -108,6 +108,19 @@
 			<app_close_idle_priority idle_time="900" priority="50"></app_close_idle_priority>
 			<app_close_idle_priority idle_time="43200" priority="20"></app_close_idle_priority>
 		</close_app>
+		
+		<!--CWRTWidget.exe -->		
+		<close_app uid="200267C0" priority="100" sync_mode="check"> <!-- Ovi Widget UI -->
+            <app_close_idle_priority idle_time="900" priority="50"></app_close_idle_priority>
+            <app_close_idle_priority idle_time="43200" priority="30"></app_close_idle_priority>
+        </close_app>		
+		<!--CWRTWidget.exe  End -->
+		<!--CWRTWidget2.exe -->		
+		<close_app uid="200267D6" priority="80" sync_mode="check"> 
+            <app_close_idle_priority idle_time="900" priority="50"></app_close_idle_priority>
+            <app_close_idle_priority idle_time="43200" priority="30"></app_close_idle_priority>
+        </close_app>		
+		<!--CWRTWidget2.exe  End -->
 <!--		Widget UI plugin handles the closing of widgets. Widget UI application is not closed.
 -->
 		<close_app uid="10282822" priority="NEVER_CLOSE" sync_mode="check"> </close_app> <!-- Widget UI --> 
@@ -150,5 +163,19 @@
 		<app_plugin uid="10282855" target_app_id="10282822" priority="70" wait="3500" sync_mode="check" call_if_target_app_not_running="false"> <!-- WIDGETMEMORYPLUGIN, target app Widget UI -->
 			<plugin_foreground_app_priority target_app_id="10282822" priority="NEVER_CLOSE"></plugin_foreground_app_priority> <!-- target app Widget UI -->
 		</app_plugin>
+	<!--CWRTWidget.exe  -  Plugin -->	
+		
+		<app_plugin uid="200267D3" target_app_id="200267C0" priority="70" wait="3500" sync_mode="check" call_if_target_app_not_running="false"> 
+			<plugin_foreground_app_priority target_app_id="200267C0" priority="NEVER_CLOSE"></plugin_foreground_app_priority>
+		</app_plugin>
+	
+	<!--CWRTWidget.exe  -  Plugin   End-->		
+	<!--CWRTWidget2.exe  -  Plugin -->	
+		
+		<app_plugin uid="200267DB" target_app_id="200267D6" priority="50" wait="3500" sync_mode="check" call_if_target_app_not_running="false"> 
+			<plugin_foreground_app_priority target_app_id="200267D6" priority="NEVER_CLOSE"></plugin_foreground_app_priority>
+		</app_plugin>
+	
+	<!--CWRTWidget2.exe  -  Plugin   End-->		
 	</app_plugin_settings>
 </oom_config>
--- a/tzservices/tzserver/Client/Source/timezoneuserdata.cpp	Tue Apr 27 16:49:15 2010 +0300
+++ b/tzservices/tzserver/Client/Source/timezoneuserdata.cpp	Tue May 11 16:22:38 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
 // under the terms of "Eclipse Public License v1.0"
@@ -523,7 +523,6 @@
 	iTzServer.DeleteUserTimeZoneL(aTzId);
 	}
 
-
 /**
 Returns the time zone identifiers for all existing user-defined time zones.
 
@@ -533,5 +532,19 @@
 */	
 EXPORT_C void CTzUserData::GetTzIdsL(RPointerArray<CTzId>& aTzIds) const
 	{
+	CleanupStack::PushL( TCleanupItem(CleanupPointerArray, &aTzIds) );
 	iTzServer.GetUserTimeZoneIdsL(aTzIds);
+	CleanupStack::Pop();
 	}
+
+void CTzUserData::CleanupPointerArray(TAny* aArray)
+    {
+    RPointerArray<CTzId>* array = static_cast<RPointerArray<CTzId>* >(aArray);
+    if (array)
+        {
+        array->ResetAndDestroy();
+        array->Close();
+        }
+    }
+ 
+
--- a/tzservices/tzserver/Include/tzuserdefineddata.h	Tue Apr 27 16:49:15 2010 +0300
+++ b/tzservices/tzserver/Include/tzuserdefineddata.h	Tue May 11 16:22:38 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
 // under the terms of "Eclipse Public License v1.0"
@@ -53,7 +53,8 @@
 
 private:
     CTzUserData(RTz& aTzServer);
-	
+    static void CleanupPointerArray(TAny* aArray);
+    	
 private:
     RTz& iTzServer;
 	};