/* Free the boxed structure @boxed which is of type @boxed_type.  */
void g_boxed_free(GType boxed_type, gpointer boxed)
/* Free the boxed structure @boxed which is of type @boxed_type.  */
void g_boxed_free(GType boxed_type, gpointer boxed)
{
  GTypeValueTable *value_table;
  g_return_if_fail (G_TYPE_IS_BOXED (boxed_type));
  g_return_if_fail (G_TYPE_IS_ABSTRACT (boxed_type) == FALSE);
  g_return_if_fail (boxed != NULL);
  value_table = g_type_value_table_peek (boxed_type);
  if (!value_table)
    g_return_if_fail (G_TYPE_IS_VALUE_TYPE (boxed_type));
  if (value_table->value_free == boxed_proxy_value_free)
    _g_type_boxed_free (boxed_type, boxed);
  else
    {
      GValue value;
      value_meminit (&value, boxed_type);
      value.data[0].v_pointer = boxed;
      value_table->value_free (&value);
    }
}