b=429678, crash with failed printing of outset border with transparency; patch from upstream; a=me

This commit is contained in:
vladimir@pobox.com 2008-04-25 09:35:24 -07:00
Родитель d5fb29fcc5
Коммит 71a55bdeaf
2 изменённых файлов: 9 добавлений и 2 удалений

Просмотреть файл

@ -19,6 +19,9 @@ VC6 is not supported. Please upgrade to VC8.
Some specific things:
cairo git commit ea6dbfd36f2182fda16cb82bca92007e0f7b8d77 -
[cairo-meta-surface] Save and restore the original clip.
max-font-size.patch: Clamp freetype font size to 1000 to avoid overflow issues
win32-logical-font-scale.patch: set CAIRO_WIN32_LOGICAL_FONT_SCALE to 1

Просмотреть файл

@ -658,8 +658,8 @@ _cairo_meta_surface_replay_internal (cairo_surface_t *surface,
cairo_meta_surface_t *meta;
cairo_command_t *command, **elements;
int i, num_elements;
cairo_int_status_t status;
cairo_clip_t clip;
cairo_int_status_t status, status2;
cairo_clip_t clip, *old_clip;
cairo_bool_t has_device_transform = _cairo_surface_has_device_transform (target);
cairo_matrix_t *device_transform = &target->device_transform;
cairo_path_fixed_t path_copy, *dev_path;
@ -674,6 +674,7 @@ _cairo_meta_surface_replay_internal (cairo_surface_t *surface,
status = CAIRO_STATUS_SUCCESS;
_cairo_clip_init (&clip, target);
old_clip = _cairo_surface_get_clip (target);
num_elements = meta->commands.num_elements;
elements = _cairo_array_index (&meta->commands, 0);
@ -867,6 +868,9 @@ _cairo_meta_surface_replay_internal (cairo_surface_t *surface,
}
_cairo_clip_reset (&clip);
status2 = _cairo_surface_set_clip (target, old_clip);
if (status == CAIRO_STATUS_SUCCESS)
status = status2;
return _cairo_surface_set_error (surface, status);
}