Bug 33138

Summary: ExecutableAllocatorSymbian appears to have buggy ARM version check
Product: WebKit Reporter: Maciej Stachowiak <mjs>
Component: JavaScriptCoreAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal    
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Other   
OS: S60 3rd edition   

Description Maciej Stachowiak 2010-01-04 01:19:05 PST
ExecutableAllocatorSymbian has this code:

#if PLATFORM_ARM_ARCH(5)
    // The moving memory model (as used in ARMv5 and earlier platforms)                                      
    // on Symbian OS limits the number of chunks for each process to 16.                                     
    // To mitigate this limitation increase the pagesize to                                                  
    // allocate less of larger chunks.                                                                       
    ExecutableAllocator::pageSize = MOVING_MEM_PAGE_SIZE;
#else
    TInt page_size;
    UserHal::PageSizeInBytes(page_size);
    ExecutableAllocator::pageSize = page_size;
#endif

But PLATFORM_ARM_ARCH(5) checks for ARM achitecture greater than or equal to 5, not less than or equal to 5. I believe what is intended is this:

#if PLATFORM_ARM_ARCH(6)
    TInt page_size;
    UserHal::PageSizeInBytes(page_size);
    ExecutableAllocator::pageSize = page_size;
#else
    // The moving memory model (as used in ARMv5 and earlier platforms)                                      
    // on Symbian OS limits the number of chunks for each process to 16.                                     
    // To mitigate this limitation increase the pagesize to                                                  
    // allocate less of larger chunks.                                                                       
    ExecutableAllocator::pageSize = MOVING_MEM_PAGE_SIZE;
#endif
Comment 1 Maciej Stachowiak 2010-01-04 03:45:27 PST
I fixed this in r52729.