desktop/source/lib/init.cxx |   12 ++++++++++++
 1 file changed, 12 insertions(+)

New commits:
commit d65f88621351aaa7bc753edec611619fceac110b
Author:     Michael Meeks <michael.me...@collabora.com>
AuthorDate: Wed Apr 12 16:01:46 2023 +0100
Commit:     Michael Meeks <michael.me...@collabora.com>
CommitDate: Fri Apr 14 10:40:56 2023 +0200

    lok: trim glibc allocator's pending heap when called.
    
    Change-Id: I8d1bda01a0e6ccff0fa868013c67c0fbbf78a836
    Signed-off-by: Michael Meeks <michael.me...@collabora.com>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150299
    Tested-by: Jenkins
    (cherry picked from commit faa5ee1e497d6cf7bd4dbce4bf75b6231eb2387a)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150315

diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
index 4caa1b034d86..20cc63231cbd 100644
--- a/desktop/source/lib/init.cxx
+++ b/desktop/source/lib/init.cxx
@@ -26,8 +26,14 @@
 #include <postmac.h>
 #endif
 
+#undef HAVE_MALLOC_TRIM
+
 #ifdef LINUX
 #include <fcntl.h>
+#if defined __GLIBC__
+#  include <malloc.h>
+#  define HAVE_MALLOC_TRIM
+#endif
 #endif
 
 #ifdef ANDROID
@@ -3153,6 +3159,12 @@ static char* lo_extractRequest(LibreOfficeKit* 
/*pThis*/, const char* pFilePath)
 static void lo_trimMemory(LibreOfficeKit* /* pThis */, int nTarget)
 {
     vcl::lok::trimMemory(nTarget);
+    if (nTarget > 1000)
+    {
+#ifdef HAVE_MALLOC_TRIM
+        malloc_trim(0);
+#endif
+    }
 }
 
 static void lo_registerCallback (LibreOfficeKit* pThis,

Reply via email to