Imported Upstream version 6.12.0.91

Former-commit-id: eb02b520ce64f8414ed36812659a32ec82002572
This commit is contained in:
Xamarin Public Jenkins (auto-signing) 2020-08-29 07:59:14 +00:00
parent 0b380204a4
commit 3308852af0
58 changed files with 931 additions and 755 deletions

View File

@ -1 +1 @@
8881f9e3281be1b876b8e97720363b2ce45b5244
b0321e4ccb7955b761a2cc3650a2a9e909cf5bf8

View File

@ -1 +1 @@
b736fbcec00fc8bd8dbad8a763bc97bb709e56f0
911fb3361be8d4a2656f078f3b053af5e472164e

File diff suppressed because it is too large Load Diff

View File

@ -10,11 +10,11 @@ generated by GNU Autoconf 2.69. Invocation command line was
## Platform. ##
## --------- ##
hostname = az-ubuntu-general34f900
hostname = az-ubuntu-generalc2e5d1
uname -m = x86_64
uname -r = 4.15.0-1091-azure
uname -r = 4.15.0-1092-azure
uname -s = Linux
uname -v = #101~16.04.1-Ubuntu SMP Fri Jun 26 01:14:12 UTC 2020
uname -v = #102~16.04.1-Ubuntu SMP Tue Jul 14 20:28:23 UTC 2020
/usr/bin/uname -p = unknown
/bin/uname -X = unknown
@ -747,7 +747,7 @@ generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_COMMANDS =
$ ./config.status
on az-ubuntu-general34f900
on az-ubuntu-generalc2e5d1
config.status:1238: creating Makefile
config.status:1238: creating bdw-gc.pc

File diff suppressed because it is too large Load Diff

View File

@ -1 +1 @@
e5b664eb14cab4f093a824049a1013bdd1e9dcc3
1fcdac368589d5b451cb09a2a976114ef07d2ef3

View File

@ -6,6 +6,7 @@ class CairoPackage (CairoGraphicsXzPackage):
'patches/cairo-quartz-crash.patch',
'patches/cairo-fix-color-bitmap-fonts.patch',
'patches/cairo-fix-CGFontGetGlyphPath-deprecation.patch',
'patches/cairo-bigsur.patch',
# 'patches/cairo-cglayer.patch',
])

View File

@ -0,0 +1,122 @@
diff --git a/src/cairo-quartz-surface.c b/src/cairo-quartz-surface.c
index 1e2bbec..f096e8d 100644
--- a/src/cairo-quartz-surface.c
+++ b/src/cairo-quartz-surface.c
@@ -211,8 +211,13 @@ CairoQuartzCreateCGImage (cairo_format_t format,
return NULL;
}
+ void *data_copy = malloc (height * stride);
+ if (unlikely (!data_copy))
+ return NULL;
+ memcpy (data_copy, data, height * stride);
+
dataProvider = CGDataProviderCreateWithData (releaseInfo,
- data,
+ data_copy,
height * stride,
releaseCallback);
@@ -768,18 +773,10 @@ CairoQuartzCreateGradientFunction (const cairo_gradient_pattern_t *gradient,
/* Obtain a CGImageRef from a #cairo_surface_t * */
-typedef struct {
- cairo_surface_t *surface;
- cairo_image_surface_t *image_out;
- void *image_extra;
-} quartz_source_image_t;
-
static void
DataProviderReleaseCallback (void *info, const void *data, size_t size)
{
- quartz_source_image_t *source_img = info;
- _cairo_surface_release_source_image (source_img->surface, source_img->image_out, source_img->image_extra);
- free (source_img);
+ free (data);
}
static cairo_status_t
@@ -791,7 +788,6 @@ _cairo_surface_to_cgimage (cairo_surface_t *source,
CGImageRef *image_out)
{
cairo_status_t status;
- quartz_source_image_t *source_img;
cairo_image_surface_t *image_surface;
if (source->backend && source->backend->type == CAIRO_SURFACE_TYPE_QUARTZ_IMAGE) {
@@ -814,11 +810,8 @@ _cairo_surface_to_cgimage (cairo_surface_t *source,
}
}
- source_img = malloc (sizeof (quartz_source_image_t));
- if (unlikely (source_img == NULL))
- return _cairo_error (CAIRO_STATUS_NO_MEMORY);
-
- source_img->surface = source;
+ cairo_image_surface_t *cimage_out;
+ void *image_extra;
if (source->type == CAIRO_SURFACE_TYPE_RECORDING) {
image_surface = (cairo_image_surface_t *)
@@ -826,7 +819,6 @@ _cairo_surface_to_cgimage (cairo_surface_t *source,
if (unlikely (image_surface->base.status)) {
status = image_surface->base.status;
cairo_surface_destroy (&image_surface->base);
- free (source_img);
return status;
}
@@ -836,40 +828,35 @@ _cairo_surface_to_cgimage (cairo_surface_t *source,
NULL);
if (unlikely (status)) {
cairo_surface_destroy (&image_surface->base);
- free (source_img);
return status;
}
- source_img->image_out = image_surface;
- source_img->image_extra = NULL;
+ cimage_out = image_surface;
+ image_extra = NULL;
cairo_matrix_init_identity (matrix);
}
else {
- status = _cairo_surface_acquire_source_image (source_img->surface,
- &source_img->image_out,
- &source_img->image_extra);
+ status = _cairo_surface_acquire_source_image (source,
+ &cimage_out,
+ &image_extra);
if (unlikely (status)) {
- free (source_img);
return status;
}
}
- if (source_img->image_out->width == 0 || source_img->image_out->height == 0) {
+ if (cimage_out->width == 0 || cimage_out->height == 0) {
*image_out = NULL;
- DataProviderReleaseCallback (source_img,
- source_img->image_out->data,
- source_img->image_out->height * source_img->image_out->stride);
} else {
- *image_out = CairoQuartzCreateCGImage (source_img->image_out->format,
- source_img->image_out->width,
- source_img->image_out->height,
- source_img->image_out->stride,
- source_img->image_out->data,
+ *image_out = CairoQuartzCreateCGImage (cimage_out->format,
+ cimage_out->width,
+ cimage_out->height,
+ cimage_out->stride,
+ cimage_out->data,
TRUE,
NULL,
DataProviderReleaseCallback,
- source_img);
+ NULL);
/* TODO: differentiate memory error and unsupported surface type */
if (unlikely (*image_out == NULL))

View File

@ -41,7 +41,7 @@ static partial class Consts
// Use these assembly version constants to make code more maintainable.
//
public const string MonoVersion = "6.12.0.86";
public const string MonoVersion = "6.12.0.91";
public const string MonoCompany = "Mono development team";
public const string MonoProduct = "Mono Common Language Infrastructure";
public const string MonoCopyright = "(c) Various Mono authors";

View File

@ -1 +1 @@
54a94760d6e0e7f35337119bdaafe6e0ec3e2b4b
0c96bfffb62af5d21b1ac9df9cf50b47789113cd

View File

@ -1 +1 @@
f31a767d625cae348ad817f3e53ea624532dc746
6c5f6ac84829b9305b56d0160e8ea88b1185a456

View File

@ -1 +1 @@
c389cc9e98f394c2fc5d7de4678d189846e60fd7
656d4aa4aacb661b108c21ed2d9fc9e1966646dd

View File

@ -1 +1 @@
f069129ca8c638bd8689808fc7413d66f50fb4b1
328c76490982fa105d1202d02d634aad81e3a67d

View File

@ -1 +1 @@
8bd883b933b54e0218500bb543560609232b3aa6
408eacece6e9ec4e7ff4c4e16469428761dff420

View File

@ -1 +1 @@
c68049a277fc3edcc551724f3bab2ca93715a337
6d286d8a92735735c5f99ba7a69ff27d2ff77bef

View File

@ -1 +1 @@
c80212533e33f049569f3b6d25e15320301f08a2
d043d7b6cce7ef8133c7481f2213f264b6614a77

View File

@ -1 +1 @@
ebe96b90fc0bbef28abd84618b94df22e1eba6eb
fd2a752180c93b896e5cc39586ced086752876c8

View File

@ -1 +1 @@
54a94760d6e0e7f35337119bdaafe6e0ec3e2b4b
0c96bfffb62af5d21b1ac9df9cf50b47789113cd

View File

@ -1 +1 @@
f31a767d625cae348ad817f3e53ea624532dc746
6c5f6ac84829b9305b56d0160e8ea88b1185a456

View File

@ -1 +1 @@
c389cc9e98f394c2fc5d7de4678d189846e60fd7
656d4aa4aacb661b108c21ed2d9fc9e1966646dd

Some files were not shown because too many files have changed in this diff Show More