[prev in list] [next in list] [prev in thread] [next in thread] 

List:       cairo
Subject:    Re: [cairo] Time for a release ?
From:       Stanisław_Jeśmanowicz <stan () jesmanowicz ! com>
Date:       2020-09-25 14:45:31
Message-ID: 3db21171-680f-2421-bfbc-61cd33c6d4f7 () jesmanowicz ! com
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


Hello,

On 25-09-2020 16:17, Matthias Clasen wrote:
> On Wed, Sep 16, 2020 at 9:34 AM Uli Schlachter <psychon@znc.in
> <mailto:psychon@znc.in>> wrote:
>
>     Hi,
>
>     Am 12.09.20 um 18:23 schrieb Matthias Clasen:
>     > The last release (1.17.2) happened in January 2019. There are some
>     > important bug fixes in master that I would like to rely on for
>     GTK 4.
>     > Getting a release with meson would also be very
>     > nice.
>     >
>     > What is the prospects for a 1.7.4 release ?
>
>     From the top of my memory, "not much" happened, so that would be
>     fine by
>     me. If I remember correctly, Bryce did the last release. I
>     definitely do
>     not have the time for that, sorry.
>
>
> Is Bryce around at all, these days?
>

Before committing new release, please apply my fix to cairo-image-surface.c
The patch is attached.

Function _cairo_image_surface_is_size_valid() should be removed, because
pixmap library have enough checks in pixman_image_create_bit()
to decide if width and height is valid or not.

Regards,
Stanislaw Jesmanowicz





[Attachment #5 (text/html)]

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    Hello,<br>
    <br>
    <div class="moz-cite-prefix">On 25-09-2020 16:17, Matthias Clasen
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAFwd_vBPpxA3LK4PFZSKiX3-aQbEcuRr33CRT4hyuU4NxfMDPw@mail.gmail.com">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <div dir="ltr">
        <div dir="ltr">On Wed, Sep 16, 2020 at 9:34 AM Uli Schlachter
          &lt;<a href="mailto:psychon@znc.in" moz-do-not-send="true">psychon@znc.in</a>&gt;
          wrote:<br>
        </div>
        <div class="gmail_quote">
          <blockquote class="gmail_quote" style="margin:0px 0px 0px
            0.8ex;border-left:1px solid
            rgb(204,204,204);padding-left:1ex">Hi,<br>
            <br>
            Am 12.09.20 um 18:23 schrieb Matthias Clasen:<br>
            &gt; The last release (1.17.2) happened in January 2019.
            There are some<br>
            &gt; important bug fixes in master that I would like to rely
            on for GTK 4.<br>
            &gt; Getting a release with meson would also be very<br>
            &gt; nice.<br>
            &gt; <br>
            &gt; What is the prospects for a 1.7.4 release ?<br>
            <br>
            From the top of my memory, "not much" happened, so that
            would be fine by<br>
            me. If I remember correctly, Bryce did the last release. I
            definitely do<br>
            not have the time for that, sorry.<br>
            <br>
          </blockquote>
          <div><br>
          </div>
          <div>Is Bryce around at all, these days? <br>
          </div>
        </div>
      </div>
      <br>
    </blockquote>
    <br>
    Before committing new release, please apply my fix to
    cairo-image-surface.c<br>
    The patch is attached.<br>
    <br>
    Function _cairo_image_surface_is_size_valid() should be removed,
    because pixmap library have enough checks in
    pixman_image_create_bit()<br>
    to decide if width and height is valid or not.<br>
    <br>
    Regards,<br>
    Stanislaw Jesmanowicz<br>
    <br>
    <br>
    <br>
    <br>
    <pre class="moz-signature" cols="72">
</pre>
  </body>
</html>

["cairo-1.17.3.patch" (text/x-patch)]

diff -ru cairo-1.17.3.org/src/cairo-image-surface.c cairo-1.17.3/src/cairo-image-surface.c
--- cairo-1.17.3.org/src/cairo-image-surface.c	2020-08-01 21:39:54.382864735 +0200
+++ cairo-1.17.3/src/cairo-image-surface.c	2020-08-08 13:04:23.758524676 +0200
@@ -56,11 +56,6 @@
 #include "cairo-surface-snapshot-private.h"
 #include "cairo-surface-subsurface-private.h"
 
-/* Limit on the width / height of an image surface in pixels.  This is
- * mainly determined by coordinates of things sent to pixman at the
- * moment being in 16.16 format. */
-#define MAX_IMAGE_SIZE 32767
-
 /**
  * SECTION:cairo-image
  * @Title: Image Surfaces
@@ -82,13 +77,6 @@
  * Since: 1.8
  **/
 
-static cairo_bool_t
-_cairo_image_surface_is_size_valid (int width, int height)
-{
-    return 0 <= width  &&  width <= MAX_IMAGE_SIZE &&
-	   0 <= height && height <= MAX_IMAGE_SIZE;
-}
-
 cairo_format_t
 _cairo_format_from_pixman_format (pixman_format_code_t pixman_format)
 {
@@ -351,11 +339,6 @@
     cairo_surface_t *surface;
     pixman_image_t *pixman_image;
 
-    if (! _cairo_image_surface_is_size_valid (width, height))
-    {
-	return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_INVALID_SIZE));
-    }
-
     pixman_image = pixman_image_create_bits (pixman_format, width, height,
 					     (uint32_t *) data, stride);
 
@@ -529,9 +512,6 @@
     if ((stride & (CAIRO_STRIDE_ALIGNMENT-1)) != 0)
 	return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_INVALID_STRIDE));
 
-    if (! _cairo_image_surface_is_size_valid (width, height))
-	return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_INVALID_SIZE));
-
     minstride = cairo_format_stride_for_width (format, width);
     if (stride < 0) {
 	if (stride > -minstride) {
@@ -759,9 +739,6 @@
 
     TRACE ((stderr, "%s (other=%u)\n", __FUNCTION__, other->base.unique_id));
 
-    if (! _cairo_image_surface_is_size_valid (width, height))
-	return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_INVALID_SIZE));
-
     if (content == other->base.content) {
 	return _cairo_image_surface_create_with_pixman_format (NULL,
 							       other->pixman_format,

--- cairo-1.17.3.org/test/xcb-huge-image-shm.c	2019-12-06 18:39:16.000000000 +0100
+++ cairo-1.17.3/test/xcb-huge-image-shm.c	2020-08-08 14:32:52.094190803 +0200
@@ -40,6 +40,8 @@
     surface = cairo_surface_create_similar (cairo_get_target (cr),
 					    CAIRO_CONTENT_COLOR_ALPHA,
 					    WIDTH, HEIGHT);
+    if (!surface)
+      return CAIRO_TEST_SUCCESS;
 
     /* First we have to defeat xcb's deferred clear */
     cr2 = cairo_create (surface);
@@ -48,13 +50,15 @@
 
     /* Now we try to map this to an image. This will try to use shared memory
      * but fail the allocation, because of the huge surface. */
-    image = cairo_surface_map_to_image (surface, NULL);
-    cairo_surface_unmap_image (surface, image);
+    if ((image = cairo_surface_map_to_image (surface, NULL)))
+    {
+		cairo_surface_unmap_image (surface, image);
 
-    /* Finally we make sure that errors aren't lost. */
-    cairo_set_source_surface (cr, surface, 0, 0);
-    cairo_paint (cr);
-    cairo_surface_destroy (surface);
+		/* Finally we make sure that errors aren't lost. */
+		cairo_set_source_surface (cr, surface, 0, 0);
+		cairo_paint (cr);
+		cairo_surface_destroy (surface);
+    }
 
     return CAIRO_TEST_SUCCESS;
 }


--- cairo-1.17.3.org/util/cairo-trace/lookup-symbol.c	2019-12-06 18:39:16.000000000 +0100
+++ cairo-1.17.3/util/cairo-trace/lookup-symbol.c	2020-08-08 13:31:37.433462584 +0200
@@ -145,14 +145,26 @@
     if (symbol->found)
 	return;
 
+#if 1
+    if ((bfd_section_flags (section) & SEC_ALLOC) == 0)
+#else
     if ((bfd_get_section_flags (symtab->bfd, section) & SEC_ALLOC) == 0)
+#endif
 	return;
 
+#if 1
+    vma = bfd_section_vma (section);
+#else
     vma = bfd_get_section_vma (symtab->bfd, section);
+#endif
     if (symbol->pc < vma)
 	return;
 
+#if 1
+    size = bfd_section_size (section);
+#else
     size = bfd_section_size (symtab->bfd, section);
+#endif
     if (symbol->pc >= vma + size)
 	return;



-- 
cairo mailing list
cairo@cairographics.org
https://lists.cairographics.org/mailman/listinfo/cairo


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic