From 825e138da5376245d7ea58e5858365524e6753d9 Mon Sep 17 00:00:00 2001 From: mread Date: Tue, 12 Oct 2010 10:13:28 +0100 Subject: Revert "Making the hybrid allocator change compatible across all 4.7.x" This reverts commit c27f1586d7c4c56af1f46fa09ad77f03b7736e5d. The change to make the hybrid allocator change compatible across all 4.7.x releases is not needed after 4.7. The exported function added for the hybrid allocator will always be present now. --- src/s60main/newallocator_hook.cpp | 87 +-------------------------------------- src/s60main/s60main.pro | 3 -- 2 files changed, 1 insertion(+), 89 deletions(-) diff --git a/src/s60main/newallocator_hook.cpp b/src/s60main/newallocator_hook.cpp index 9ea2ef0..9cc6afb 100644 --- a/src/s60main/newallocator_hook.cpp +++ b/src/s60main/newallocator_hook.cpp @@ -41,11 +41,6 @@ #include #include -#ifdef QT_EXPORTS_NOT_FROZEN -// If exports in Qt DLLs are not frozen in this build, then we have to pick up the -// allocator creation function by import link. We know the function will be present -// in the DLLs we test with, as we have to use the DLLs we have built. - struct SStdEpocThreadCreateInfo; Q_CORE_EXPORT TInt qt_symbian_SetupThreadHeap(TBool aNotFirst, SStdEpocThreadCreateInfo& aInfo); @@ -56,88 +51,8 @@ Q_CORE_EXPORT TInt qt_symbian_SetupThreadHeap(TBool aNotFirst, SStdEpocThreadCre * Uses link-time symbol preemption to capture a call from the application * startup. On return, there is some kind of heap allocator installed on the * thread. -*/ +*/ TInt UserHeap::SetupThreadHeap(TBool aNotFirst, SStdEpocThreadCreateInfo& aInfo) { return qt_symbian_SetupThreadHeap(aNotFirst, aInfo); } - -#else // QT_EXPORTS_NOT_FROZEN -// If we are using an export frozen build, it should be compatible with all 4.7.x Qt releases. -// We want to use the allocator creation function introduced in qtcore.dll after 4.7.1. But we -// can't import link to it, as it may not be present in whatever 4.7.x DLLs we are running with. -// So the function is found and called dynamically, by library lookup. If it is not found, we -// use the OS allocator creation functions instead. - -struct SThreadCreateInfo - { - TAny* iHandle; - TInt iType; - TThreadFunction iFunction; - TAny* iPtr; - TAny* iSupervisorStack; - TInt iSupervisorStackSize; - TAny* iUserStack; - TInt iUserStackSize; - TInt iInitialThreadPriority; - TPtrC iName; - TInt iTotalSize; // Size including any extras (must be a multiple of 8 bytes) - }; - -struct SStdEpocThreadCreateInfo : public SThreadCreateInfo - { - RAllocator* iAllocator; - TInt iHeapInitialSize; - TInt iHeapMaxSize; - TInt iPadding; // Make structure size a multiple of 8 bytes - }; - - -/* \internal - * - * Uses link-time symbol preemption to capture a call from the application - * startup. On return, there is some kind of heap allocator installed on the - * thread. -*/ -TInt UserHeap::SetupThreadHeap(TBool aNotFirst, SStdEpocThreadCreateInfo& aInfo) -{ - TInt r = KErrNone; - -#ifndef __WINS__ - // attempt to create the fast allocator through a known export ordinal in qtcore.dll - RLibrary qtcore; - if (qtcore.Load(_L("qtcore.dll")) == KErrNone) - { - const int qt_symbian_SetupThreadHeap_eabi_ordinal = 3713; - TLibraryFunction libFunc = qtcore.Lookup(qt_symbian_SetupThreadHeap_eabi_ordinal); - if (libFunc) - { - typedef int (*TSetupThreadHeapFunc)(TBool aNotFirst, SStdEpocThreadCreateInfo& aInfo); - TSetupThreadHeapFunc p_qt_symbian_SetupThreadHeap = TSetupThreadHeapFunc(libFunc); - r = (*p_qt_symbian_SetupThreadHeap)(aNotFirst, aInfo); - } - qtcore.Close(); - if (libFunc) - return r; - } -#endif - - // no fast allocator support - use default allocator creation - if (!aInfo.iAllocator && aInfo.iHeapInitialSize>0) - { - // new heap required - RHeap* pH = NULL; - r = UserHeap::CreateThreadHeap(aInfo, pH); - } - else if (aInfo.iAllocator) - { - // sharing a heap - RAllocator* pA = aInfo.iAllocator; - pA->Open(); - User::SwitchAllocator(pA); - r = KErrNone; - } - return r; -} - -#endif // QT_EXPORTS_NOT_FROZEN diff --git a/src/s60main/s60main.pro b/src/s60main/s60main.pro index 8ab3bd3..664f155 100644 --- a/src/s60main/s60main.pro +++ b/src/s60main/s60main.pro @@ -31,9 +31,6 @@ symbian { # against GCCE apps, so remove it MMP_RULES -= $$MMP_RULES_DONT_EXPORT_ALL_CLASS_IMPEDIMENTA linux-armcc:QMAKE_CXXFLAGS *= --export_all_vtbl - - # Flag if exports are not frozen to avoid lookup of qtcore allocator creation function by ordinal - contains(CONFIG, def_files_disabled): DEFINES += QT_EXPORTS_NOT_FROZEN } else { error("$$_FILE_ is intended only for Symbian!") } -- cgit v0.12