mirror of
				https://gitlab.gnome.org/GNOME/glib.git
				synced 2025-10-31 16:32:18 +01:00 
			
		
		
		
	gobject: Allow passing %NULL for @data in g_object_remove_toggle_ref
gjs has some situations where it's not always aware of the @data that was passed into g_object_add_toggle_ref, so allow passing %NULL to just match on @notify. Rebased and updated by Nitin Wartkar Closes #817
This commit is contained in:
		
				
					committed by
					
						 nitinosiris
						nitinosiris
					
				
			
			
				
	
			
			
			
						parent
						
							0c8740dc83
						
					
				
				
					commit
					edb40c7171
				
			| @@ -3319,7 +3319,8 @@ g_object_add_toggle_ref (GObject       *object, | ||||
|  * @notify: a function to call when this reference is the | ||||
|  *  last reference to the object, or is no longer | ||||
|  *  the last reference. | ||||
|  * @data: data to pass to @notify | ||||
|  * @data: (nullable): data to pass to @notify, or %NULL to | ||||
|  *  match any toggle refs with the @notify argument. | ||||
|  * | ||||
|  * Removes a reference added with g_object_add_toggle_ref(). The | ||||
|  * reference count of the object is decreased by one. | ||||
| @@ -3345,7 +3346,7 @@ g_object_remove_toggle_ref (GObject       *object, | ||||
|  | ||||
|       for (i = 0; i < tstack->n_toggle_refs; i++) | ||||
| 	if (tstack->toggle_refs[i].notify == notify && | ||||
| 	    tstack->toggle_refs[i].data == data) | ||||
| 	    (tstack->toggle_refs[i].data == data || data == NULL)) | ||||
| 	  { | ||||
| 	    found_one = TRUE; | ||||
| 	    tstack->n_toggle_refs -= 1; | ||||
|   | ||||
| @@ -256,7 +256,8 @@ main (int   argc, | ||||
|   g_assert (object_destroyed == FALSE); | ||||
|  | ||||
|   clear_flags (); | ||||
|   g_object_remove_toggle_ref (object, toggle_ref2, GUINT_TO_POINTER (24)); | ||||
|   /* Check that removing a toggle ref with %NULL data works fine. */ | ||||
|   g_object_remove_toggle_ref (object, toggle_ref2, NULL); | ||||
|   g_assert (toggle_ref1_weakened == FALSE); | ||||
|   g_assert (toggle_ref1_strengthened == FALSE); | ||||
|   g_assert (toggle_ref2_weakened == FALSE); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user