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) */
}