(!1714) dri3: use CloseScreen hook
Wrapping ScreenRec's function pointers is problematic for many reasons, so use the new screen close notify hook instead. Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
This commit is contained in:
		
							parent
							
								
									2a4bca3028
								
							
						
					
					
						commit
						b4c3a2ddd5
					
				
							
								
								
									
										10
									
								
								dri3/dri3.c
								
								
								
								
							
							
						
						
									
										10
									
								
								dri3/dri3.c
								
								
								
								
							|  | @ -29,15 +29,11 @@ DevPrivateKeyRec dri3_screen_private_key; | ||||||
| 
 | 
 | ||||||
| static int dri3_screen_generation; | static int dri3_screen_generation; | ||||||
| 
 | 
 | ||||||
| static Bool | static void dri3_screen_close(ScreenPtr screen, void *arg) | ||||||
| dri3_close_screen(ScreenPtr screen) |  | ||||||
| { | { | ||||||
|     dri3_screen_priv_ptr screen_priv = dri3_screen_priv(screen); |     dri3_screen_priv_ptr screen_priv = dri3_screen_priv(screen); | ||||||
| 
 |     dixScreenUnhookClose(screen, dri3_screen_close, NULL); | ||||||
|     unwrap(screen_priv, screen, CloseScreen); |  | ||||||
| 
 |  | ||||||
|     free(screen_priv); |     free(screen_priv); | ||||||
|     return (*screen->CloseScreen) (screen); |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| Bool | Bool | ||||||
|  | @ -53,7 +49,7 @@ dri3_screen_init(ScreenPtr screen, const dri3_screen_info_rec *info) | ||||||
|         if (!screen_priv) |         if (!screen_priv) | ||||||
|             return FALSE; |             return FALSE; | ||||||
| 
 | 
 | ||||||
|         wrap(screen_priv, screen, CloseScreen, dri3_close_screen); |         dixScreenHookClose(screen, dri3_screen_close, NULL); | ||||||
| 
 | 
 | ||||||
|         screen_priv->info = info; |         screen_priv->info = info; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -42,7 +42,6 @@ typedef struct dri3_dmabuf_format { | ||||||
| } dri3_dmabuf_format_rec, *dri3_dmabuf_format_ptr; | } dri3_dmabuf_format_rec, *dri3_dmabuf_format_ptr; | ||||||
| 
 | 
 | ||||||
| typedef struct dri3_screen_priv { | typedef struct dri3_screen_priv { | ||||||
|     CloseScreenProcPtr          CloseScreen; |  | ||||||
|     ConfigNotifyProcPtr         ConfigNotify; |     ConfigNotifyProcPtr         ConfigNotify; | ||||||
| 
 | 
 | ||||||
|     Bool                        formats_cached; |     Bool                        formats_cached; | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue