Compatibility breaks

All functional and binary breaks in this release are listed with supporting information on handling these breaks.

APIs/Header files/Libraries Description
e32cmn.h and e32std.h / euser.dll Symbian Belle introduces hybrid heap allocator, which offers improved performance by selecting between three different allocator algorithms. The New heap, RHybridHeap is derived from RHeap. It latter acts as base class offering only few bits of data for backward compatibility. The developers must be aware that RHeap should not be instantiated directly nor must be derived. Only RAllocator can be derived. The new RHybridHeap overrides the minimum heap size for all applications with 4K. The maximum heap size is also adjusted upwards to compensate for extra overhead of the hybrid allocator. RHeap has been modifled as follows:
  • Several public inline methods have been moved to RAllocator or removed.

  • RAllocator must be dervied as most of protected RHeap methods are removed. If application derived RHeap and calls these, break occurs.

  • The value of enums ECellAlignment, EFreeCellSize and EAllocCellSize changed as the implementation has changed in the new heap allocator.

  • RHeap::__DbgGetAllocFail() and User::__DbgGetAllocFail() functions added allowing to access that variable.


RHeap hybrid heap is re-implemented. External binary breaks from methods that were originally implemented as in-line are now implemented internally. A recompile using the new heap will automatically switch the client code over to the new system. The variables that were accessed by these in-line methods remain in their original place so they will continue to work with old third party code that uses them.

Connection settings API /cmmanager.h /cmmanager.lib
The support for ECmCellularDataUsageConfirm and iUsageOfWlan from TCmGenConnSettings is removed. The following values/fields are no longer supported:
  • ECmCellularDataUsageConfirm value in TCmCellularDataUsage

  • iUsageOfWlan field in TCmGenConnSettings

  • TCmUsageOfWlan

Navigation Pane API / avkon.lib

The following methods are deprecated:

  • CAknNavigationControlContainer::SetPreferredNaviDecoratorLayoutStyle()

  • CAknNavigationDecorator::SetNaviControlLayoutStyle()

  • CAknNavigationDecorator::NaviControlLayoutStyle()

  • CAknNavigationDecorator::SetNaviControlLayoutMode()

  • CAknNavigationDecorator::NaviControlLayoutMode()

Only the wide layout style is supported.

Profiles API / mproengengine.h / profileengine.lib

In the Profile settings Class MProEngEngine() the two default profile identifiers EProfileOutdoorId () and EProfilePagerId() cannot be set.