Tue, 06 Jan 2015 21:39:09 +0100
Conditionally force memory storage according to privacy.thirdparty.isolate;
This solves Tor bug #9701, complying with disk avoidance documented in
https://www.torproject.org/projects/torbrowser/design/#disk-avoidance.
1 diff --git a/gfx/cairo/cairo/src/cairo-win32-font.c b/gfx/cairo/cairo/src/cairo-win32-font.c
2 --- a/gfx/cairo/cairo/src/cairo-win32-font.c
3 +++ b/gfx/cairo/cairo/src/cairo-win32-font.c
4 @@ -1182,22 +1182,22 @@ _add_glyph (cairo_glyph_state_t *state,
5 if (state->glyphs.num_elements > 0) {
6 int dx;
8 if (logical_y != state->last_y) {
9 status = _flush_glyphs (state);
10 if (status)
11 return status;
12 state->start_x = logical_x;
13 + } else {
14 + dx = logical_x - state->last_x;
15 + status = _cairo_array_append (&state->dx, &dx);
16 + if (status)
17 + return status;
18 }
19 -
20 - dx = logical_x - state->last_x;
21 - status = _cairo_array_append (&state->dx, &dx);
22 - if (status)
23 - return status;
24 } else {
25 state->start_x = logical_x;
26 }
28 state->last_x = logical_x;
29 state->last_y = logical_y;
31 status = _cairo_array_append (&state->glyphs, &glyph_index);