mirror of
				https://gitlab.gnome.org/GNOME/glib.git
				synced 2025-11-04 10:08:56 +01:00 
			
		
		
		
	fixed param_value_array_values_cmp(), param_value_array_validate() and
Fri Jan 11 12:26:36 2002 Tim Janik <timj@gtk.org> * gparamspecs.c: fixed param_value_array_values_cmp(), param_value_array_validate() and param_value_array_set_default() to deal with NULL value arrays.
This commit is contained in:
		@@ -1,3 +1,10 @@
 | 
				
			|||||||
 | 
					Fri Jan 11 12:26:36 2002  Tim Janik  <timj@gtk.org>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						* gparamspecs.c: fixed param_value_array_values_cmp(),
 | 
				
			||||||
 | 
						param_value_array_validate() and
 | 
				
			||||||
 | 
						param_value_array_set_default() to deal with NULL value
 | 
				
			||||||
 | 
						arrays.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Wed Jan  9 05:23:27 2002  Tim Janik  <timj@gtk.org>
 | 
					Wed Jan  9 05:23:27 2002  Tim Janik  <timj@gtk.org>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	* gobject.h (G_OBJECT_WARN_INVALID_PROPERTY_ID): cosmetic fix.
 | 
						* gobject.h (G_OBJECT_WARN_INVALID_PROPERTY_ID): cosmetic fix.
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -825,11 +825,15 @@ param_value_array_set_default (GParamSpec *pspec,
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  GParamSpecValueArray *aspec = G_PARAM_SPEC_VALUE_ARRAY (pspec);
 | 
					  GParamSpecValueArray *aspec = G_PARAM_SPEC_VALUE_ARRAY (pspec);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  g_return_if_fail (value->data[0].v_pointer != NULL);	/* paranoid */
 | 
					  if (!value->data[0].v_pointer && aspec->fixed_n_elements)
 | 
				
			||||||
 | 
					    value->data[0].v_pointer = g_value_array_new (aspec->fixed_n_elements);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (value->data[0].v_pointer)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
      /* g_value_reset (value);  already done */
 | 
					      /* g_value_reset (value);  already done */
 | 
				
			||||||
      value_array_ensure_size (value->data[0].v_pointer, aspec->fixed_n_elements);
 | 
					      value_array_ensure_size (value->data[0].v_pointer, aspec->fixed_n_elements);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static gboolean
 | 
					static gboolean
 | 
				
			||||||
param_value_array_validate (GParamSpec *pspec,
 | 
					param_value_array_validate (GParamSpec *pspec,
 | 
				
			||||||
@@ -839,8 +843,11 @@ param_value_array_validate (GParamSpec *pspec,
 | 
				
			|||||||
  GValueArray *value_array = value->data[0].v_pointer;
 | 
					  GValueArray *value_array = value->data[0].v_pointer;
 | 
				
			||||||
  guint changed = 0;
 | 
					  guint changed = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  g_return_val_if_fail (value->data[0].v_pointer != NULL, FALSE);	/* paranoid */
 | 
					  if (!value->data[0].v_pointer && aspec->fixed_n_elements)
 | 
				
			||||||
 | 
					    value->data[0].v_pointer = g_value_array_new (aspec->fixed_n_elements);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (value->data[0].v_pointer)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
      /* ensure array size validity */
 | 
					      /* ensure array size validity */
 | 
				
			||||||
      changed += value_array_ensure_size (value_array, aspec->fixed_n_elements);
 | 
					      changed += value_array_ensure_size (value_array, aspec->fixed_n_elements);
 | 
				
			||||||
      
 | 
					      
 | 
				
			||||||
@@ -867,6 +874,7 @@ param_value_array_validate (GParamSpec *pspec,
 | 
				
			|||||||
	      changed += g_param_value_validate (element_spec, element);
 | 
						      changed += g_param_value_validate (element_spec, element);
 | 
				
			||||||
	    }
 | 
						    }
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  return changed;
 | 
					  return changed;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -880,8 +888,8 @@ param_value_array_values_cmp (GParamSpec   *pspec,
 | 
				
			|||||||
  GValueArray *value_array1 = value1->data[0].v_pointer;
 | 
					  GValueArray *value_array1 = value1->data[0].v_pointer;
 | 
				
			||||||
  GValueArray *value_array2 = value2->data[0].v_pointer;
 | 
					  GValueArray *value_array2 = value2->data[0].v_pointer;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  g_return_val_if_fail (value1->data[0].v_pointer != NULL, -1);	/* paranoid */
 | 
					  if (!value_array1 || !value_array2)
 | 
				
			||||||
  g_return_val_if_fail (value2->data[0].v_pointer != NULL, 1);	/* paranoid */
 | 
					    return value_array2 ? -1 : value_array1 != value_array2;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (value_array1->n_values != value_array2->n_values)
 | 
					  if (value_array1->n_values != value_array2->n_values)
 | 
				
			||||||
    return value_array1->n_values < value_array2->n_values ? -1 : 1;
 | 
					    return value_array1->n_values < value_array2->n_values ? -1 : 1;
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user