mirror of
				https://gitlab.freedesktop.org/wlroots/wlroots.git
				synced 2025-11-03 09:01:40 -05:00 
			
		
		
		
	xdg-shell: make wlr_xdg_surface_from_resource reject NULL
Most resources must not be NULL. Make it so callers need to check for NULL explicitly. This makes it clearer in the handlers code that the NULL wl_resource case needs to be handled, and allows callers to make a difference between a NULL wl_resource and an inert resource.
This commit is contained in:
		
							parent
							
								
									7e521fed97
								
							
						
					
					
						commit
						8bb2dc68ea
					
				
					 1 changed files with 4 additions and 5 deletions
				
			
		| 
						 | 
				
			
			@ -237,8 +237,10 @@ static void xdg_surface_handle_get_popup(struct wl_client *client,
 | 
			
		|||
		struct wl_resource *positioner_resource) {
 | 
			
		||||
	struct wlr_xdg_surface *xdg_surface =
 | 
			
		||||
		wlr_xdg_surface_from_resource(resource);
 | 
			
		||||
	struct wlr_xdg_surface *parent =
 | 
			
		||||
		wlr_xdg_surface_from_resource(parent_resource);
 | 
			
		||||
	struct wlr_xdg_surface *parent = NULL;
 | 
			
		||||
	if (parent_resource != NULL) {
 | 
			
		||||
		parent = wlr_xdg_surface_from_resource(parent_resource);
 | 
			
		||||
	}
 | 
			
		||||
	if (xdg_surface == NULL) {
 | 
			
		||||
		return; // TODO: create an inert xdg_popup
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -517,9 +519,6 @@ void destroy_xdg_surface(struct wlr_xdg_surface *surface) {
 | 
			
		|||
 | 
			
		||||
struct wlr_xdg_surface *wlr_xdg_surface_from_resource(
 | 
			
		||||
		struct wl_resource *resource) {
 | 
			
		||||
	if (!resource) {
 | 
			
		||||
		return NULL;
 | 
			
		||||
	}
 | 
			
		||||
	assert(wl_resource_instance_of(resource, &xdg_surface_interface,
 | 
			
		||||
		&xdg_surface_implementation));
 | 
			
		||||
	return wl_resource_get_user_data(resource);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue