[PATCH 3/3] exa: properly wrap Create/DestroyPixmap in ExaCheckPolyArc and fix GC (un)wrapping.

Maarten Maathuis madman2003 at gmail.com
Thu Nov 12 15:13:47 PST 2009


2009/11/12 Michel Dänzer <michel at daenzer.net>:
> On Thu, 2009-11-12 at 20:30 +0100, Maarten Maathuis wrote:
>> 2009/11/12 Michel Dänzer <michel at daenzer.net>:
>> > On Sat, 2009-11-07 at 13:32 +0100, Maarten Maathuis wrote:
>> >> - Fix the system that is required for it to actually work.
>> >> - The comment near the new macros explains the problem that existed before.
>> >
>> > I'm not sure it really explains why we need two levels of wrapping.
>>
>> The 2nd level is needed is because you want to do something more than
>> usual wrapping.
>> The DestroyPixmap example is a nice one. If i use single wrapping i
>> loose fbDestroyPixmap which is unacceptable, because the chain has to
>> be like this: exaDestroyPixmapWithFinish->damageDestroyPixmap->exaDestroyPixmap->(w)fbDestroyPixmap,
>> with single wrapping this would be
>> exaDestroyPixmapWithFinish->damageDestroyPixmap->exaDestroyPixmap->exaDestroyPixmapWithFinish,
>> which is a loop.
>
> exaDestroyPixmapWithFinish->damageDestroyPixmap looks like a layering
> violation. Could that be at least part of the problem in the first
> place?
>

It's an extra layer yes, if that is considered unacceptable, then this
leaves only the 2nd option.

>
> --
> Earthling Michel Dänzer           |                http://www.vmware.com
> Libre software enthusiast         |          Debian, X and DRI developer
>


More information about the xorg-devel mailing list