Author: ydario Date: Mon Nov 25 15:00:24 2013 New Revision: 1545312 URL: http://svn.apache.org/r1545312 Log: i118923 - OS/2 port: use libc memory allocator to reduce fragmentation.
Modified: openoffice/trunk/main/sal/rtl/source/alloc_arena.c Modified: openoffice/trunk/main/sal/rtl/source/alloc_arena.c URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sal/rtl/source/alloc_arena.c?rev=1545312&r1=1545311&r2=1545312&view=diff ============================================================================== --- openoffice/trunk/main/sal/rtl/source/alloc_arena.c (original) +++ openoffice/trunk/main/sal/rtl/source/alloc_arena.c Mon Nov 25 15:00:24 2013 @@ -1212,16 +1212,9 @@ SAL_CALL rtl_machdep_alloc ( #elif defined(SAL_W32) addr = VirtualAlloc (NULL, (SIZE_T)(size), MEM_COMMIT, PAGE_READWRITE); #elif defined(SAL_OS2) - { - APIRET rc; - addr = 0; - // Use DosAlloc* to get a 4KB page aligned address. - rc = DosAllocMem( &addr, size, PAG_COMMIT | PAG_READ | PAG_WRITE | OBJ_ANY); - if (rc) { - fprintf( stderr, "sal3::DosAllocMem failed rc=%d\n", rc); - addr = 0; - } - } + /* Use valloc() to use libc 16MB chunks when allocating high memory, to reduce + virtual address fragmentation. */ + addr = valloc( size); #endif /* (SAL_UNX || SAL_W32 || SAL_OS2) */ if (addr != MAP_FAILED) @@ -1256,7 +1249,7 @@ SAL_CALL rtl_machdep_free ( #elif defined(SAL_W32) (void) VirtualFree ((LPVOID)(pAddr), (SIZE_T)(0), MEM_RELEASE); #elif defined(SAL_OS2) - (void) DosFreeMem( pAddr); + free(pAddr); #endif /* (SAL_UNX || SAL_W32) */ }