damage.c wrapping bug?

Adam Jackson ajax at nwnk.net
Wed Sep 14 18:22:57 UTC 2016

On Wed, 2016-09-14 at 14:01 -0400, Stirling Westrup wrote:
> I'm currently reading through the source for the damage extension in
> damage.c and I noticed that the list of functions that get wrapped
> when a screen gets damage support is not the same as the list of
> functions that get unwrapped when the screen is closed. That is
> DamageSetup() wraps these functions:
>      DestroyPixmap   -> damageDestroyPixmap  
>      CreateGC        -> damageCreateGC  
>      DestroyWindow   -> damageDestroyWindow  
>      SetWindowPixmap -> damageSetWindowPixmap  
>      CopyWindow      -> damageCopyWindow  
>      CloseScreen     -> damageCloseScreen   
> but inside damageCloseScreen, the list of functions that get restored
> are:
>      DestroyPixmap
>      CreateGC
>      CopyWindow
>      CloseScreen
> and neither SetWindowPixmap nor DestroyWindow are ever unwrapped. Is
> this an issue, or is there some reason to believe this isn't a
> problem?

It's a bug, though it's probably harmless. On the next generation
fbScreenInit (or whatever the bottom dispatch layer happens to be) is
going to reinitialize those slots in the ScreenRec, and since it's the
bottom layer it's not going to wrap them but just install them.

- ajax

More information about the xorg mailing list