Re: gdk_draw_segments crash the application when called with more than 32767 segments.
- From: David Odin <David dindinx org>
- To: Owen Taylor <otaylor redhat com>
- Cc: James Willcox <jwillcox gnome org>, GTK+ development mailing list <gtk-devel-list gnome org>
- Subject: Re: gdk_draw_segments crash the application when called with more than 32767 segments.
- Date: Tue, 17 Feb 2004 09:05:13 +0100
On Mon, Feb 16, 2004 at 07:19:18PM -0500, Owen Taylor wrote:
> On Mon, 2004-02-16 at 19:07, James Willcox wrote:
> > On Mon, 2004-02-02 at 14:11, David Odin wrote:
> > > Hi,
> > >
> > > As bug #122026 states, gdk_draw_segments crashes the application when
> > > called with more than 32767, due to a X protocol limitation.
> > >
> > > Imho, an application shouldn't have to care about this.
> > > The report in bugzilla fixes this at gdk level.
> > >
> > > Can I commit?
> >
> > Was this patch approved? You apparently commited it today, and it broke
> > the build.
>
> Indeed, the patch wasn't approved yet, leaving aside issues of build
> breakage, there is one obvious problem with the patch, and two
> issues that needed to be researched (questions I don't know the
> answers to offhand)
>
I hadn't any positive or negative response in more than two weeks. Now
this bug seems to have more interest. I admit that this isn't a good
method, but at least, now I am more confident this will be fixed soon.
> - The patch patches the wrong file, since it is dealing with
> X11-specific limitations, it should be patching X specific files
>
Well spotted. See my new patch in bugzilla. But are you really sure
this limitation isn't there in the others gdk backend?
> - What's the interaction of XDrawSegments with, say, a XOR mode
> if the segments overlap?
>
Do you really think this is a problem with that much segments anyway?
Beside, apart from recoding the whole thing, I don't see how to solve
this issue. And really, I don't think this will worth it.
By the way, the man page says: "If lines intersect, the intersecting
pixels are drawn multiple times.", so the XOR problem looks like a
non-issue to me;
>
> - What's the interaction of this with maximum request sizes? Is
> 32767 really the right figure here or just an approximation
> that works on your system?
>
The error message I got told me this should be a 16 bits value...
By the way, my (new) patch doesn't handle one thing: the
gdk_x11_draw_segments() allocate a huge amount of memory to duplicate
all the segments. This could be fixed be moving the assigments into the
loop. Feel free to change this, too.
Regards, and apologizes.
DindinX
--
david dindinx org
main(i){int j,s,d[1001];for(i=1e3;i;)d[i--]=1;for(printf("e>2.");++i<429;
printf("%06d",s))for(s=0,j=1e3;j>1;d[j]=s%j,s/=j--)s+=1e6*d[j];puts("");}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]