pkgsrc/www/firefox/patches/patch-memory_build_mozjemalloc__compat.c
ryoon 0832aa2392 Update to 43.0
Changelog:
    New Private Browsing with Tracking Protection offers choice of blocking additional trackers
    New Improved API support for m4v video playback
    New Firefox 64-bit for Windows is now available via the Firefox download page
    New Users can choose search suggestions from the Awesome Bar
    New On-screen keyboard displayed on selecting input field on devices running Windows 8 or greater
    New Firefox Health Report has switched to use the same data collection mechanism as telemetry
    Developer Markup view shows indicators for pseudo-classes locked for elements
    Developer Bind F1 key to open the settings when the toolbox is focused
    Developer New 'Use in Console' context menu item in Inspector to store selected element in a temporary variable
    Developer Search button next to overridden CSS properties to find similar properties in the rules view
    Developer Ability to filter styles from their property names in the rules view
    Developer Stack traces are now shown for exceptions inside the console
    Developer Added ability to display server-side logs in the console
    Developer Ability to choose resolution for the GCLI screenshot command
    Developer Subresource integrity allows developers to make their sites more secure
    Developer Network requests in Console now link to Network panel instead of opening in a popup
    Developer Unprefixed 'hyphens' property is now supported
    Developer WebIDE now has a sidebar-based UI
    Developer The 'transform-origin' property is now supported on SVG elements
    Developer Animation inspector now displays animations in a timeline
    Developer Single-process mode is no longer supported for NPAPI plugins
    Fixed Eyedropper tool does not work as expected when page is zoomed
    Fixed Various security fixes

Fixed in Firefox 43
    2015-149 Cross-site reading attack through data and view-source URIs
    2015-148 Privilege escalation vulnerabilities in WebExtension APIs
    2015-147 Integer underflow and buffer overflow processing MP4 metadata in libstagefright
    2015-146 Integer overflow in MP4 playback in 64-bit versions
    2015-145 Underflow through code inspection
    2015-144 Buffer overflows found through code inspection
    2015-143 Linux file chooser crashes on malformed images due to flaws in Jasper library
    2015-142 DOS due to malformed frames in HTTP/2
    2015-141 Hash in data URI is incorrectly parsed
    2015-140 Cross-origin information leak through web workers error events
    2015-139 Integer overflow allocating extremely large textures
    2015-138 Use-after-free in WebRTC when datachannel is used after being destroyed
    2015-137 Firefox allows for control characters to be set in cookies
    2015-136 Same-origin policy violation using perfomance.getEntries and history navigation
    2015-135 Crash with JavaScript variable assignment with unboxed objects
    2015-134 Miscellaneous memory safety hazards (rv:43.0 / rv:38.5)
2015-12-16 09:34:55 +00:00

53 lines
1.8 KiB
C

$NetBSD: patch-memory_build_mozjemalloc__compat.c,v 1.4 2015/12/16 09:34:56 ryoon Exp $
--- memory/build/mozjemalloc_compat.c.orig 2015-12-04 00:37:04.000000000 +0000
+++ memory/build/mozjemalloc_compat.c
@@ -140,6 +140,48 @@ compute_bin_unused_and_bookkeeping(jemal
stats->bin_unused = bin_unused;
}
+static size_t
+compute_bin_unused(unsigned int narenas)
+{
+ size_t bin_unused = 0;
+
+ uint32_t nregs; // number of regions per run in the j-th bin
+ size_t reg_size; // size of regions served by the j-th bin
+ size_t curruns; // number of runs belonging to a bin
+ size_t curregs; // number of allocated regions in a bin
+
+ unsigned int nbins; // number of bins per arena
+ unsigned int i, j;
+
+ // curruns and curregs are not defined for uninitialized arenas,
+ // so we skip them when computing bin_unused. However, initialized
+ // arenas are not guaranteed to be sequential, so we must test each
+ // one when iterating below.
+ bool initialized[100]; // should be narenas, but MSVC doesn't have VLAs
+ size_t isz = sizeof(initialized) / sizeof(initialized[0]);
+
+ je_(mallctl)("arenas.initialized", initialized, &isz, NULL, 0);
+ CTL_GET("arenas.nbins", nbins);
+
+ for (j = 0; j < nbins; j++) {
+ CTL_I_GET("arenas.bin.0.nregs", nregs, j);
+ CTL_I_GET("arenas.bin.0.size", reg_size, j);
+
+ for (i = 0; i < narenas; i++) {
+ if (!initialized[i]) {
+ continue;
+ }
+
+ CTL_IJ_GET("stats.arenas.0.bins.0.curruns", curruns, i, j);
+ CTL_IJ_GET("stats.arenas.0.bins.0.curregs", curregs, i, j);
+
+ bin_unused += (nregs * curruns - curregs) * reg_size;
+ }
+ }
+
+ return bin_unused;
+}
+
MOZ_JEMALLOC_API void
jemalloc_stats_impl(jemalloc_stats_t *stats)
{