xwayland: Plug leaks in xwl_present_sync_callback
xwl_present_window->sync_callback was leaked.
The event memory was leaked if the corresponding buffer had already been
released.
(cherry picked from commit cb0de153bf)
			
			
This commit is contained in:
		
							parent
							
								
									971d418113
								
							
						
					
					
						commit
						64f5e6ec2d
					
				|  | @ -274,6 +274,9 @@ xwl_present_sync_callback(void *data, | ||||||
|     struct xwl_present_event *event = data; |     struct xwl_present_event *event = data; | ||||||
|     struct xwl_present_window *xwl_present_window = event->xwl_present_window; |     struct xwl_present_window *xwl_present_window = event->xwl_present_window; | ||||||
| 
 | 
 | ||||||
|  |     wl_callback_destroy(xwl_present_window->sync_callback); | ||||||
|  |     xwl_present_window->sync_callback = NULL; | ||||||
|  | 
 | ||||||
|     event->pending = FALSE; |     event->pending = FALSE; | ||||||
| 
 | 
 | ||||||
|     if (event->abort) { |     if (event->abort) { | ||||||
|  | @ -289,12 +292,14 @@ xwl_present_sync_callback(void *data, | ||||||
|                               xwl_present_window->ust, |                               xwl_present_window->ust, | ||||||
|                               xwl_present_window->msc); |                               xwl_present_window->msc); | ||||||
| 
 | 
 | ||||||
|     if (event->buffer_released) |     if (event->buffer_released) { | ||||||
|         /* If the buffer was already released, send the event now again */ |         /* If the buffer was already released, send the event now again */ | ||||||
|         present_wnmd_event_notify(xwl_present_window->window, |         present_wnmd_event_notify(xwl_present_window->window, | ||||||
|                                   event->event_id, |                                   event->event_id, | ||||||
|                                   xwl_present_window->ust, |                                   xwl_present_window->ust, | ||||||
|                                   xwl_present_window->msc); |                                   xwl_present_window->msc); | ||||||
|  |         xwl_present_free_event(event); | ||||||
|  |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static const struct wl_callback_listener xwl_present_sync_listener = { | static const struct wl_callback_listener xwl_present_sync_listener = { | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue