The intended design of the logical-coordinate geometry classes in WritingModes.h was that the mWritingMode field should only be present in debug builds, for validation by CHECK_WRITING_MODE, but in non-debug builds we'd avoid the overhead of tagging these classes with the mode. However, the mWritingMode field was inadvertently not guarded by #ifdef DEBUG, and so it is present in all builds, even though we don't actually set it in non-debug builds. And then we've got a couple of places where non-debug code actually refers to the mWritingMode field, which it should never do. In the LogicalSize [in]equality operators, we can't make equality depend on comparing the writing modes of the operands; rather, we need to mandate that these operators (like others) are only valid when writing modes match.
Assignee: nobody → jfkthame
Status: NEW → ASSIGNED
Attachment #8501125 - Flags: review?(smontagu) → review+
Target Milestone: --- → mozilla35
sorry had to back this out in : https://treeherder.mozilla.org/ui/#/jobs?repo=mozilla-inbound&revision=32c4d5043b18 since one of this changes caused https://treeherder.mozilla.org/ui/logviewer.html#?job_id=2845533&repo=mozilla-inbound
This passed try yesterday: https://tbpl.mozilla.org/?tree=Try&rev=91e2d584ad04 So I've relanded it by itself: https://hg.mozilla.org/integration/mozilla-inbound/rev/681c4450639e
Status: ASSIGNED → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.