Magellan Linux

Annotation of /trunk/libX11/patches/libX11-1.1.1-xinitimage.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 206 - (hide annotations) (download)
Mon May 21 22:24:41 2007 UTC (17 years ago) by niro
File size: 2683 byte(s)
-added new patches

1 niro 206 diff --git a/src/ImUtil.c b/src/ImUtil.c
2     index 83fd030..9e667bb 100644
3     --- a/src/ImUtil.c
4     +++ b/src/ImUtil.c
5     @@ -327,12 +327,13 @@ XImage *XCreateImage (dpy, visual, depth
6     {
7     register XImage *image;
8     int bits_per_pixel = 1;
9     + int min_bytes_per_line;
10    
11     if (depth == 0 || depth > 32 ||
12     (format != XYBitmap && format != XYPixmap && format != ZPixmap) ||
13     (format == XYBitmap && depth != 1) ||
14     (xpad != 8 && xpad != 16 && xpad != 32) ||
15     - offset < 0 || image_bytes_per_line < 0)
16     + offset < 0)
17     return (XImage *) NULL;
18     if ((image = (XImage *) Xcalloc(1, (unsigned) sizeof(XImage))) == NULL)
19     return (XImage *) NULL;
20     @@ -363,16 +364,21 @@ XImage *XCreateImage (dpy, visual, depth
21     /*
22     * compute per line accelerator.
23     */
24     - if (image_bytes_per_line == 0)
25     {
26     if (format == ZPixmap)
27     - image->bytes_per_line =
28     + min_bytes_per_line =
29     ROUNDUP((bits_per_pixel * width), image->bitmap_pad);
30     else
31     - image->bytes_per_line =
32     + min_bytes_per_line =
33     ROUNDUP((width + offset), image->bitmap_pad);
34     }
35     - else image->bytes_per_line = image_bytes_per_line;
36     + if (image_bytes_per_line == 0) {
37     + image->bytes_per_line = min_bytes_per_line;
38     + } else if (image_bytes_per_line < min_bytes_per_line) {
39     + return 0;
40     + } else {
41     + image->bytes_per_line = image_bytes_per_line;
42     + }
43    
44     image->bits_per_pixel = bits_per_pixel;
45     image->obdata = NULL;
46     @@ -384,7 +390,11 @@ XImage *XCreateImage (dpy, visual, depth
47     Status XInitImage (image)
48     XImage *image;
49     {
50     + int min_bytes_per_line;
51     +
52     if (image->depth == 0 || image->depth > 32 ||
53     + image->bits_per_pixel > 32 || image->bitmap_unit > 32 ||
54     + image->bits_per_pixel < 0 || image->bitmap_unit < 0 ||
55     (image->format != XYBitmap &&
56     image->format != XYPixmap &&
57     image->format != ZPixmap) ||
58     @@ -392,21 +402,24 @@ Status XInitImage (image)
59     (image->bitmap_pad != 8 &&
60     image->bitmap_pad != 16 &&
61     image->bitmap_pad != 32) ||
62     - image->xoffset < 0 || image->bytes_per_line < 0)
63     + image->xoffset < 0)
64     return 0;
65    
66     /*
67     * compute per line accelerator.
68     */
69     - if (image->bytes_per_line == 0)
70     - {
71     if (image->format == ZPixmap)
72     - image->bytes_per_line =
73     + min_bytes_per_line =
74     ROUNDUP((image->bits_per_pixel * image->width),
75     image->bitmap_pad);
76     else
77     - image->bytes_per_line =
78     + min_bytes_per_line =
79     ROUNDUP((image->width + image->xoffset), image->bitmap_pad);
80     +
81     + if (image->bytes_per_line == 0) {
82     + image->bytes_per_line = min_bytes_per_line;
83     + } else if (image->bytes_per_line < min_bytes_per_line) {
84     + return 0;
85     }
86    
87     _XInitImageFuncPtrs (image);