unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Paul Eggert <eggert@cs.ucla.edu>
To: martin rudalics <rudalics@gmx.at>
Cc: Eli Zaretskii <eliz@gnu.org>, emacs-devel@gnu.org
Subject: Re: Building trunk fails in x_check_image_size
Date: Thu, 28 Jul 2011 02:44:33 -0700	[thread overview]
Message-ID: <4E312F81.8060705@cs.ucla.edu> (raw)
In-Reply-To: <4E311950.3000408@gmx.at>

On 07/28/11 01:09, martin rudalics wrote:
> But the consequences of doing that seem too unpredictable to me.
> I'll wait till Paul fixes it.

Sorry about that.  I fixed it for now as follows.  Doing it "right" requires more
expertise in Windows and NS than I have right now, but at least
this fix should let things compile, and the code will be no worse
off than before (when it didn't check image sizes on any platform).

* image.c (x_check_image_size) [!HAVE_X_WINDOWS]: Return 1.
In other words, assume that every image size is allowed, on non-X
hosts.  This assumption is probably wrong, but it lets Emacs compile.
=== modified file 'src/image.c'
--- src/image.c	2011-07-14 06:20:53 +0000
+++ src/image.c	2011-07-28 09:35:15 +0000
@@ -1906,16 +1906,17 @@
 static void x_destroy_x_image (XImagePtr);
 static void x_put_x_image (struct frame *, XImagePtr, Pixmap, int, int);

-/* Return nonzero if XIMG's size WIDTH x HEIGHT doesn't break X.
+/* Return nonzero if XIMG's size WIDTH x HEIGHT doesn't break the
+   windowing system.
    WIDTH and HEIGHT must both be positive.
    If XIMG is null, assume it is a bitmap.  */
 static int
 x_check_image_size (XImagePtr ximg, int width, int height)
 {
+#ifdef HAVE_X_WINDOWS
   /* Respect Xlib's limits: it cannot deal with images that have more
      than INT_MAX (and/or UINT_MAX) bytes.  And respect Emacs's limits
-     of PTRDIFF_MAX (and/or SIZE_MAX) bytes for any object.  For now,
-     assume all windowing systems have the same limits that X does.  */
+     of PTRDIFF_MAX (and/or SIZE_MAX) bytes for any object.  */
   enum
   {
     XLIB_BYTES_MAX = min (INT_MAX, UINT_MAX),
@@ -1937,6 +1938,11 @@
     }
   return (width <= (INT_MAX - (bitmap_pad - 1)) / depth
 	  && height <= X_IMAGE_BYTES_MAX / bytes_per_line);
+#else
+  /* FIXME: Implement this check for the HAVE_NS and HAVE_NTGUI cases.
+     For now, assume that every image size is allowed on these systems.  */
+  return 1;
+#endif
 }

 /* Create an XImage and a pixmap of size WIDTH x HEIGHT for use on




  reply	other threads:[~2011-07-28  9:44 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-28  6:50 Building trunk fails in x_check_image_size martin rudalics
2011-07-28  7:05 ` Eli Zaretskii
2011-07-28  8:09   ` martin rudalics
2011-07-28  9:44     ` Paul Eggert [this message]
2011-07-28 12:18       ` martin rudalics

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4E312F81.8060705@cs.ucla.edu \
    --to=eggert@cs.ucla.edu \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=rudalics@gmx.at \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).