The Pale Moon Project - Custom-built and optimized Firefox browsers for Windows Operating Systems

[ <-- Back ]

PR bug 20110406 [reopened-devonly]

Crash condition on certain pages when trying to print or print preview.

Reporters: Kevin Lubick, Guy Simmons, Stephen Cohen

Affects the following:

Functions: File -> Print, File -> Print preview.
Builds: All 4.0 dev builds except x64. Released builds don't have this crash condition (trial&error).

Cause: Compiler issue when using PGO combined with SSE2. Also possibly related to Bug 647792

Details:
The linking phase when combining PGO with SSE2 causes memory access errors in certain conditions. This is (yet another) compiler bug in MSVC :/ -- and it seems to be rather persistent and random, some builds are successful, hit-and-miss.
As a result, specific conditions present in collecting the page data to prepare for printing results in an invalid memory access (usually in protected system memory), crashing the browser or closing it to desktop silently.

Solution:
Re-build, disabling SSE2 specifically for affected modules.
The consequence will be a performance hit for the functions with SSE2 instructions disabled. On the whole, this should not be significant; vector calculations are usually not needed for printing.

Implementation:
1) Find the affected modules.
Progress: ruled out so far: JS, jemalloc, mozalloc
Likely candidates: embedding/components/printinggui and /layout/printing/* (next up)
2) Edit makefile with CXXFLAGS := $(CXXFLAGS:arch:SSE2=arch:SSE) or even filter-out if SSE is a problem as well.

[ <-- Back ]

Halloween theme art by Laura Bevon
Firefox, Mozilla Firefox and Mozilla are registered trademarks of the Mozilla Corporation.
Site and contents © 2009-2014 Moonchild Productions - All rights reserved
Pale Moon's distribution is subject to the following redistribution license