From 410cb65d7ab940e08a76754e8a8664a32ad7c108 Mon Sep 17 00:00:00 2001 From: Steve Fink Date: Wed, 23 Dec 2020 21:00:44 +0000 Subject: [PATCH] Bug 1682947 - Use MADV_FREE_REUSE before using decommitted memory again on OSX, as per https://bugs.chromium.org/p/chromium/issues/detail?id=823915 r=glandium Differential Revision: https://phabricator.services.mozilla.com/D99932 --- js/src/gc/Memory.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/js/src/gc/Memory.cpp b/js/src/gc/Memory.cpp index 57145d2f71ef..d59585f0c8ff 100644 --- a/js/src/gc/Memory.cpp +++ b/js/src/gc/Memory.cpp @@ -811,6 +811,11 @@ bool MarkPagesUnusedHard(void* region, size_t length) { void MarkPagesInUseSoft(void* region, size_t length) { CheckDecommit(region, length); +#if defined(XP_DARWIN) + while (madvise(region, length, MADV_FREE_REUSE) == -1 && errno == EAGAIN) { + } +#endif + MOZ_MAKE_MEM_UNDEFINED(region, length); }