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


Reply via email to