Bug 1424709 - Force disable the OSX system "nano allocator". r=spohl, a=RyanVM

We're not actually using it, and it messes up with the zone allocator in
mozjemalloc after fork(). See the lengthy analysis in
https://bugzilla.mozilla.org/show_bug.cgi?id=1424709#c34 and following.

--HG--
extra : rebase_source : b191048290a907cc7668ad7ab6369ef8661f31dc
extra : intermediate-source : 45c5d467a46077dcc3ccd59feafd0c2784432fef
extra : source : bf1efa161edb20a83fe8db2f96c51f4e66880153
This commit is contained in:
Mike Hommey 2018-01-31 17:18:01 +09:00 committed by Roy Tam
commit 6837efcaef
2 changed files with 11 additions and 0 deletions

View file

@ -205,6 +205,11 @@
<true/>
<key>LSApplicationCategoryType</key>
<string>public.app-category.productivity</string>
<key>LSEnvironment</key>
<dict>
<key>MallocNanoZone</key>
<string>0</string>
</dict>
<key>LSFileQuarantineEnabled</key>
<true/>
<key>LSMinimumSystemVersion</key>

View file

@ -513,6 +513,12 @@ register_zone(void)
*/
malloc_zone_t *purgeable_zone = malloc_default_purgeable_zone();
// There is a problem related to the above with the system nano zone, which
// is hard to work around from here, and that is instead worked around by
// disabling the nano zone through an environment variable
// (MallocNanoZone=0). In Firefox, we do that through
// browser/app/macbuild/Contents/Info.plist.in.
/* Register the custom zone. At this point it won't be the default. */
malloc_zone_register(&zone);