/* wine.c generated by valac 0.56.19, the Vala compiler
 * generated from wine.vala, do not modify */

#include <glib-object.h>
#include "protonplus_core.h"
#include <glib.h>
#include <glib/gi18n-lib.h>
#include <stdlib.h>
#include <string.h>

#if !defined(VALA_STRICT_C)
#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ >= 14)
#pragma GCC diagnostic warning "-Wincompatible-pointer-types"
#elif defined(__clang__) && (__clang_major__ >= 16)
#pragma clang diagnostic ignored "-Wincompatible-function-pointer-types"
#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
#endif
#endif

#define PROTON_PLUS_MODELS_PROVIDERS_TYPE_WINE_DEFINITIONS (proton_plus_models_providers_wine_definitions_get_type ())
#define PROTON_PLUS_MODELS_PROVIDERS_WINE_DEFINITIONS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PROTON_PLUS_MODELS_PROVIDERS_TYPE_WINE_DEFINITIONS, ProtonPlusModelsProvidersWineDefinitions))
#define PROTON_PLUS_MODELS_PROVIDERS_WINE_DEFINITIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PROTON_PLUS_MODELS_PROVIDERS_TYPE_WINE_DEFINITIONS, ProtonPlusModelsProvidersWineDefinitionsClass))
#define PROTON_PLUS_MODELS_PROVIDERS_IS_WINE_DEFINITIONS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PROTON_PLUS_MODELS_PROVIDERS_TYPE_WINE_DEFINITIONS))
#define PROTON_PLUS_MODELS_PROVIDERS_IS_WINE_DEFINITIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PROTON_PLUS_MODELS_PROVIDERS_TYPE_WINE_DEFINITIONS))
#define PROTON_PLUS_MODELS_PROVIDERS_WINE_DEFINITIONS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PROTON_PLUS_MODELS_PROVIDERS_TYPE_WINE_DEFINITIONS, ProtonPlusModelsProvidersWineDefinitionsClass))

typedef struct _ProtonPlusModelsProvidersWineDefinitions ProtonPlusModelsProvidersWineDefinitions;
typedef struct _ProtonPlusModelsProvidersWineDefinitionsClass ProtonPlusModelsProvidersWineDefinitionsClass;
typedef struct _ProtonPlusModelsProvidersWineDefinitionsPrivate ProtonPlusModelsProvidersWineDefinitionsPrivate;
enum  {
	PROTON_PLUS_MODELS_PROVIDERS_WINE_DEFINITIONS_0_PROPERTY,
	PROTON_PLUS_MODELS_PROVIDERS_WINE_DEFINITIONS_NUM_PROPERTIES
};
static GParamSpec* proton_plus_models_providers_wine_definitions_properties[PROTON_PLUS_MODELS_PROVIDERS_WINE_DEFINITIONS_NUM_PROPERTIES];
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))

struct _ProtonPlusModelsProvidersWineDefinitions {
	GObject parent_instance;
	ProtonPlusModelsProvidersWineDefinitionsPrivate * priv;
};

struct _ProtonPlusModelsProvidersWineDefinitionsClass {
	GObjectClass parent_class;
};

static gpointer proton_plus_models_providers_wine_definitions_parent_class = NULL;

VALA_EXTERN GType proton_plus_models_providers_wine_definitions_get_type (void) G_GNUC_CONST ;
VALA_EXTERN ProtonPlusModelsProvidersProviderDefinition** proton_plus_models_providers_wine_definitions_create (gint* result_length1);
VALA_EXTERN ProtonPlusModelsProvidersWineDefinitions* proton_plus_models_providers_wine_definitions_new (void);
VALA_EXTERN ProtonPlusModelsProvidersWineDefinitions* proton_plus_models_providers_wine_definitions_construct (GType object_type);
static GType proton_plus_models_providers_wine_definitions_get_type_once (void);
static void _vala_array_destroy (gpointer array,
                          gssize array_length,
                          GDestroyNotify destroy_func);
static void _vala_array_free (gpointer array,
                       gssize array_length,
                       GDestroyNotify destroy_func);
static inline gpointer _vala_memdup2 (gconstpointer mem,
                        gsize byte_size);

ProtonPlusModelsProvidersProviderDefinition**
proton_plus_models_providers_wine_definitions_create (gint* result_length1)
{
	ProtonPlusModelsVariantCompatibility* _tmp0_;
	ProtonPlusModelsVariantCompatibility* _tmp1_;
	ProtonPlusModelsProvidersVariantDefinition* _tmp2_;
	ProtonPlusModelsVariantCompatibility* _tmp3_;
	ProtonPlusModelsVariantCompatibility* _tmp4_;
	ProtonPlusModelsProvidersVariantDefinition* _tmp5_;
	ProtonPlusModelsVariantCompatibility* _tmp6_;
	ProtonPlusModelsVariantCompatibility* _tmp7_;
	ProtonPlusModelsProvidersVariantDefinition* _tmp8_;
	ProtonPlusModelsProvidersVariantDefinition** _tmp9_;
	ProtonPlusModelsProvidersVariantDefinition** _tmp10_;
	gint _tmp10__length1;
	ProtonPlusModelsProvidersInstallLayout* _tmp11_;
	ProtonPlusModelsProvidersInstallLayout* _tmp12_;
	ProtonPlusModelsProvidersInstallLayout** _tmp13_;
	ProtonPlusModelsProvidersInstallLayout** _tmp14_;
	gint _tmp14__length1;
	gchar* _tmp15_;
	gchar** _tmp16_;
	gchar** _tmp17_;
	gint _tmp17__length1;
	ProtonPlusModelsProvidersProviderDefinition* _tmp18_;
	ProtonPlusModelsVariantCompatibility* _tmp19_;
	ProtonPlusModelsVariantCompatibility* _tmp20_;
	ProtonPlusModelsProvidersVariantDefinition* _tmp21_;
	ProtonPlusModelsVariantCompatibility* _tmp22_;
	ProtonPlusModelsVariantCompatibility* _tmp23_;
	ProtonPlusModelsProvidersVariantDefinition* _tmp24_;
	ProtonPlusModelsProvidersVariantDefinition** _tmp25_;
	ProtonPlusModelsProvidersVariantDefinition** _tmp26_;
	gint _tmp26__length1;
	ProtonPlusModelsProvidersInstallLayout* _tmp27_;
	ProtonPlusModelsProvidersInstallLayout* _tmp28_;
	ProtonPlusModelsProvidersInstallLayout** _tmp29_;
	ProtonPlusModelsProvidersInstallLayout** _tmp30_;
	gint _tmp30__length1;
	gchar* _tmp31_;
	gchar* _tmp32_;
	gchar** _tmp33_;
	gchar** _tmp34_;
	gint _tmp34__length1;
	ProtonPlusModelsProvidersProviderDefinition* _tmp35_;
	ProtonPlusModelsVariantCompatibility* _tmp36_;
	ProtonPlusModelsVariantCompatibility* _tmp37_;
	ProtonPlusModelsProvidersVariantDefinition* _tmp38_;
	ProtonPlusModelsVariantCompatibility* _tmp39_;
	ProtonPlusModelsVariantCompatibility* _tmp40_;
	ProtonPlusModelsProvidersVariantDefinition* _tmp41_;
	ProtonPlusModelsProvidersVariantDefinition** _tmp42_;
	ProtonPlusModelsProvidersVariantDefinition** _tmp43_;
	gint _tmp43__length1;
	ProtonPlusModelsProvidersInstallLayout* _tmp44_;
	ProtonPlusModelsProvidersInstallLayout* _tmp45_;
	ProtonPlusModelsProvidersInstallLayout** _tmp46_;
	ProtonPlusModelsProvidersInstallLayout** _tmp47_;
	gint _tmp47__length1;
	gchar* _tmp48_;
	gchar* _tmp49_;
	gchar** _tmp50_;
	gchar** _tmp51_;
	gint _tmp51__length1;
	ProtonPlusModelsProvidersProviderDefinition* _tmp52_;
	ProtonPlusModelsVariantCompatibility* _tmp53_;
	ProtonPlusModelsVariantCompatibility* _tmp54_;
	ProtonPlusModelsProvidersVariantDefinition* _tmp55_;
	ProtonPlusModelsVariantCompatibility* _tmp56_;
	ProtonPlusModelsVariantCompatibility* _tmp57_;
	ProtonPlusModelsProvidersVariantDefinition* _tmp58_;
	ProtonPlusModelsProvidersVariantDefinition** _tmp59_;
	ProtonPlusModelsProvidersVariantDefinition** _tmp60_;
	gint _tmp60__length1;
	ProtonPlusModelsProvidersInstallLayout* _tmp61_;
	ProtonPlusModelsProvidersInstallLayout* _tmp62_;
	ProtonPlusModelsProvidersInstallLayout** _tmp63_;
	ProtonPlusModelsProvidersInstallLayout** _tmp64_;
	gint _tmp64__length1;
	gchar* _tmp65_;
	gchar* _tmp66_;
	gchar** _tmp67_;
	gchar** _tmp68_;
	gint _tmp68__length1;
	ProtonPlusModelsProvidersProviderDefinition* _tmp69_;
	ProtonPlusModelsProvidersProviderDefinition** _tmp70_;
	ProtonPlusModelsProvidersProviderDefinition** _tmp71_;
	gint _tmp71__length1;
	ProtonPlusModelsProvidersProviderDefinition** _tmp72_;
	gint _tmp72__length1;
	ProtonPlusModelsProvidersProviderDefinition** result;
	_tmp0_ = proton_plus_models_variant_compatibility_for_x86_64_level (PROTON_PLUS_MODELS_X86_64LEVEL_BASELINE);
	_tmp1_ = _tmp0_;
	_tmp2_ = proton_plus_models_providers_variant_definition_new ("x86-64", "default", "wine-$tag_name-amd64", TRUE, _tmp1_, NULL, 0);
	_tmp3_ = proton_plus_models_variant_compatibility_for_x86_64_level (PROTON_PLUS_MODELS_X86_64LEVEL_BASELINE);
	_tmp4_ = _tmp3_;
	_tmp5_ = proton_plus_models_providers_variant_definition_new ("wow64", "wow64", "wine-$tag_name-amd64-wow64", FALSE, _tmp4_, NULL, 0);
	_tmp6_ = proton_plus_models_variant_compatibility_for_architecture (PROTON_PLUS_MODELS_CPU_ARCHITECTURE_X86_32);
	_tmp7_ = _tmp6_;
	_tmp8_ = proton_plus_models_providers_variant_definition_new ("x86", "x86", "wine-$tag_name-x86", FALSE, _tmp7_, NULL, 0);
	_tmp9_ = g_new0 (ProtonPlusModelsProvidersVariantDefinition*, 3 + 1);
	_tmp9_[0] = _tmp2_;
	_tmp9_[1] = _tmp5_;
	_tmp9_[2] = _tmp8_;
	_tmp10_ = _tmp9_;
	_tmp10__length1 = 3;
	_tmp11_ = proton_plus_models_providers_install_layout_template ("default", "wine-$release_name-amd64");
	_tmp12_ = proton_plus_models_providers_install_layout_template ("bottles", "kron4ek-wine-$release_name-amd64");
	_tmp13_ = g_new0 (ProtonPlusModelsProvidersInstallLayout*, 2 + 1);
	_tmp13_[0] = _tmp11_;
	_tmp13_[1] = _tmp12_;
	_tmp14_ = _tmp13_;
	_tmp14__length1 = 2;
	_tmp15_ = g_strdup ("proton");
	_tmp16_ = g_new0 (gchar*, 1 + 1);
	_tmp16_[0] = _tmp15_;
	_tmp17_ = _tmp16_;
	_tmp17__length1 = 1;
	_tmp18_ = proton_plus_models_providers_provider_definition_new (PROTON_PLUS_MODELS_PROVIDERS_CATEGORY_WINE, PROTON_PLUS_MODELS_PROVIDERS_SOURCE_TYPE_GITHUB, "wine-proton", "Wine-Proton (Kron4ek)", N_ ("Wine build modified by Valve and other contributors."), "https://api.github.com/repos/Kron4ek/Wine-Builds/releases", "https://github.com/Kron4ek/Wine-Builds", 1, _tmp10_, 3, _tmp14_, 2, _tmp17_, 1, NULL, 0, "", FALSE, "", PROTON_PLUS_MODELS_PROVIDERS_ARCHIVE_INSTALL_REQUIREMENT_STANDARD, FALSE, NULL, 0);
	_tmp19_ = proton_plus_models_variant_compatibility_for_x86_64_level (PROTON_PLUS_MODELS_X86_64LEVEL_BASELINE);
	_tmp20_ = _tmp19_;
	_tmp21_ = proton_plus_models_providers_variant_definition_new ("x86-64", "default", "wine-$tag_name-staging-amd64", TRUE, _tmp20_, NULL, 0);
	_tmp22_ = proton_plus_models_variant_compatibility_for_x86_64_level (PROTON_PLUS_MODELS_X86_64LEVEL_BASELINE);
	_tmp23_ = _tmp22_;
	_tmp24_ = proton_plus_models_providers_variant_definition_new ("wow64", "wow64", "wine-$tag_name-staging-amd64-wow64", FALSE, _tmp23_, NULL, 0);
	_tmp25_ = g_new0 (ProtonPlusModelsProvidersVariantDefinition*, 2 + 1);
	_tmp25_[0] = _tmp21_;
	_tmp25_[1] = _tmp24_;
	_tmp26_ = _tmp25_;
	_tmp26__length1 = 2;
	_tmp27_ = proton_plus_models_providers_install_layout_template ("default", "wine-$release_name-staging-amd64");
	_tmp28_ = proton_plus_models_providers_install_layout_template ("bottles", "kron4ek-wine-$release_name-staging-amd64");
	_tmp29_ = g_new0 (ProtonPlusModelsProvidersInstallLayout*, 2 + 1);
	_tmp29_[0] = _tmp27_;
	_tmp29_[1] = _tmp28_;
	_tmp30_ = _tmp29_;
	_tmp30__length1 = 2;
	_tmp31_ = g_strdup ("proton");
	_tmp32_ = g_strdup (".0.");
	_tmp33_ = g_new0 (gchar*, 2 + 1);
	_tmp33_[0] = _tmp31_;
	_tmp33_[1] = _tmp32_;
	_tmp34_ = _tmp33_;
	_tmp34__length1 = 2;
	_tmp35_ = proton_plus_models_providers_provider_definition_new (PROTON_PLUS_MODELS_PROVIDERS_CATEGORY_WINE, PROTON_PLUS_MODELS_PROVIDERS_SOURCE_TYPE_GITHUB, "wine-staging", "Wine-Staging (Kron4ek)", N_ ("Wine build with the Staging patchset."), "https://api.github.com/repos/Kron4ek/Wine-Builds/releases", "https://github.com/Kron4ek/Wine-Builds", 2, _tmp26_, 2, _tmp30_, 2, NULL, 0, _tmp34_, 2, "", FALSE, "", PROTON_PLUS_MODELS_PROVIDERS_ARCHIVE_INSTALL_REQUIREMENT_STANDARD, FALSE, NULL, 0);
	_tmp36_ = proton_plus_models_variant_compatibility_for_x86_64_level (PROTON_PLUS_MODELS_X86_64LEVEL_BASELINE);
	_tmp37_ = _tmp36_;
	_tmp38_ = proton_plus_models_providers_variant_definition_new ("x86-64", "default", "wine-$tag_name-staging-tkg-amd64", TRUE, _tmp37_, NULL, 0);
	_tmp39_ = proton_plus_models_variant_compatibility_for_x86_64_level (PROTON_PLUS_MODELS_X86_64LEVEL_BASELINE);
	_tmp40_ = _tmp39_;
	_tmp41_ = proton_plus_models_providers_variant_definition_new ("wow64", "wow64", "wine-$tag_name-staging-tkg-amd64-wow64", FALSE, _tmp40_, NULL, 0);
	_tmp42_ = g_new0 (ProtonPlusModelsProvidersVariantDefinition*, 2 + 1);
	_tmp42_[0] = _tmp38_;
	_tmp42_[1] = _tmp41_;
	_tmp43_ = _tmp42_;
	_tmp43__length1 = 2;
	_tmp44_ = proton_plus_models_providers_install_layout_template ("default", "wine-$release_name-staging-tkg-amd64");
	_tmp45_ = proton_plus_models_providers_install_layout_template ("bottles", "kron4ek-wine-$release_name-staging-tkg-amd64");
	_tmp46_ = g_new0 (ProtonPlusModelsProvidersInstallLayout*, 2 + 1);
	_tmp46_[0] = _tmp44_;
	_tmp46_[1] = _tmp45_;
	_tmp47_ = _tmp46_;
	_tmp47__length1 = 2;
	_tmp48_ = g_strdup ("proton");
	_tmp49_ = g_strdup (".0.");
	_tmp50_ = g_new0 (gchar*, 2 + 1);
	_tmp50_[0] = _tmp48_;
	_tmp50_[1] = _tmp49_;
	_tmp51_ = _tmp50_;
	_tmp51__length1 = 2;
	_tmp52_ = proton_plus_models_providers_provider_definition_new (PROTON_PLUS_MODELS_PROVIDERS_CATEGORY_WINE, PROTON_PLUS_MODELS_PROVIDERS_SOURCE_TYPE_GITHUB, "wine-staging-tkg", "Wine-Staging-Tkg (Kron4ek)", N_ ("Wine build with the Staging patchset and many other useful patches."), "https://api.github.com/repos/Kron4ek/Wine-Builds/releases", "https://github.com/Kron4ek/Wine-Builds", 3, _tmp43_, 2, _tmp47_, 2, NULL, 0, _tmp51_, 2, "", FALSE, "", PROTON_PLUS_MODELS_PROVIDERS_ARCHIVE_INSTALL_REQUIREMENT_STANDARD, FALSE, NULL, 0);
	_tmp53_ = proton_plus_models_variant_compatibility_for_x86_64_level (PROTON_PLUS_MODELS_X86_64LEVEL_BASELINE);
	_tmp54_ = _tmp53_;
	_tmp55_ = proton_plus_models_providers_variant_definition_new ("x86-64", "default", "wine-$tag_name-amd64", TRUE, _tmp54_, NULL, 0);
	_tmp56_ = proton_plus_models_variant_compatibility_for_x86_64_level (PROTON_PLUS_MODELS_X86_64LEVEL_BASELINE);
	_tmp57_ = _tmp56_;
	_tmp58_ = proton_plus_models_providers_variant_definition_new ("wow64", "wow64", "wine-$tag_name-amd64-wow64", FALSE, _tmp57_, NULL, 0);
	_tmp59_ = g_new0 (ProtonPlusModelsProvidersVariantDefinition*, 2 + 1);
	_tmp59_[0] = _tmp55_;
	_tmp59_[1] = _tmp58_;
	_tmp60_ = _tmp59_;
	_tmp60__length1 = 2;
	_tmp61_ = proton_plus_models_providers_install_layout_template ("default", "wine-$release_name-amd64");
	_tmp62_ = proton_plus_models_providers_install_layout_template ("bottles", "kron4ek-wine-$release_name-amd64");
	_tmp63_ = g_new0 (ProtonPlusModelsProvidersInstallLayout*, 2 + 1);
	_tmp63_[0] = _tmp61_;
	_tmp63_[1] = _tmp62_;
	_tmp64_ = _tmp63_;
	_tmp64__length1 = 2;
	_tmp65_ = g_strdup ("proton");
	_tmp66_ = g_strdup (".0.");
	_tmp67_ = g_new0 (gchar*, 2 + 1);
	_tmp67_[0] = _tmp65_;
	_tmp67_[1] = _tmp66_;
	_tmp68_ = _tmp67_;
	_tmp68__length1 = 2;
	_tmp69_ = proton_plus_models_providers_provider_definition_new (PROTON_PLUS_MODELS_PROVIDERS_CATEGORY_WINE, PROTON_PLUS_MODELS_PROVIDERS_SOURCE_TYPE_GITHUB, "wine-vanilla", "Wine-Vanilla (Kron4ek)", N_ ("Wine build compiled from the official WineHQ sources."), "https://api.github.com/repos/Kron4ek/Wine-Builds/releases", "https://github.com/Kron4ek/Wine-Builds", 4, _tmp60_, 2, _tmp64_, 2, NULL, 0, _tmp68_, 2, "", FALSE, "", PROTON_PLUS_MODELS_PROVIDERS_ARCHIVE_INSTALL_REQUIREMENT_STANDARD, FALSE, NULL, 0);
	_tmp70_ = g_new0 (ProtonPlusModelsProvidersProviderDefinition*, 4 + 1);
	_tmp70_[0] = _tmp18_;
	_tmp70_[1] = _tmp35_;
	_tmp70_[2] = _tmp52_;
	_tmp70_[3] = _tmp69_;
	_tmp71_ = _tmp70_;
	_tmp71__length1 = 4;
	_tmp68_ = (_vala_array_free (_tmp68_, _tmp68__length1, (GDestroyNotify) g_free), NULL);
	_tmp64_ = (_vala_array_free (_tmp64_, _tmp64__length1, (GDestroyNotify) g_object_unref), NULL);
	_tmp60_ = (_vala_array_free (_tmp60_, _tmp60__length1, (GDestroyNotify) g_object_unref), NULL);
	_g_object_unref0 (_tmp57_);
	_g_object_unref0 (_tmp54_);
	_tmp51_ = (_vala_array_free (_tmp51_, _tmp51__length1, (GDestroyNotify) g_free), NULL);
	_tmp47_ = (_vala_array_free (_tmp47_, _tmp47__length1, (GDestroyNotify) g_object_unref), NULL);
	_tmp43_ = (_vala_array_free (_tmp43_, _tmp43__length1, (GDestroyNotify) g_object_unref), NULL);
	_g_object_unref0 (_tmp40_);
	_g_object_unref0 (_tmp37_);
	_tmp34_ = (_vala_array_free (_tmp34_, _tmp34__length1, (GDestroyNotify) g_free), NULL);
	_tmp30_ = (_vala_array_free (_tmp30_, _tmp30__length1, (GDestroyNotify) g_object_unref), NULL);
	_tmp26_ = (_vala_array_free (_tmp26_, _tmp26__length1, (GDestroyNotify) g_object_unref), NULL);
	_g_object_unref0 (_tmp23_);
	_g_object_unref0 (_tmp20_);
	_tmp17_ = (_vala_array_free (_tmp17_, _tmp17__length1, (GDestroyNotify) g_free), NULL);
	_tmp14_ = (_vala_array_free (_tmp14_, _tmp14__length1, (GDestroyNotify) g_object_unref), NULL);
	_tmp10_ = (_vala_array_free (_tmp10_, _tmp10__length1, (GDestroyNotify) g_object_unref), NULL);
	_g_object_unref0 (_tmp7_);
	_g_object_unref0 (_tmp4_);
	_g_object_unref0 (_tmp1_);
	_tmp72_ = _tmp71_;
	_tmp72__length1 = _tmp71__length1;
	if (result_length1) {
		*result_length1 = _tmp72__length1;
	}
	result = _tmp72_;
	return result;
}

ProtonPlusModelsProvidersWineDefinitions*
proton_plus_models_providers_wine_definitions_construct (GType object_type)
{
	ProtonPlusModelsProvidersWineDefinitions * self = NULL;
	self = (ProtonPlusModelsProvidersWineDefinitions*) g_object_new (object_type, NULL);
	return self;
}

ProtonPlusModelsProvidersWineDefinitions*
proton_plus_models_providers_wine_definitions_new (void)
{
	return proton_plus_models_providers_wine_definitions_construct (PROTON_PLUS_MODELS_PROVIDERS_TYPE_WINE_DEFINITIONS);
}

static void
proton_plus_models_providers_wine_definitions_class_init (ProtonPlusModelsProvidersWineDefinitionsClass * klass,
                                                          gpointer klass_data)
{
	proton_plus_models_providers_wine_definitions_parent_class = g_type_class_peek_parent (klass);
}

static void
proton_plus_models_providers_wine_definitions_instance_init (ProtonPlusModelsProvidersWineDefinitions * self,
                                                             gpointer klass)
{
}

static GType
proton_plus_models_providers_wine_definitions_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (ProtonPlusModelsProvidersWineDefinitionsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) proton_plus_models_providers_wine_definitions_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ProtonPlusModelsProvidersWineDefinitions), 0, (GInstanceInitFunc) proton_plus_models_providers_wine_definitions_instance_init, NULL };
	GType proton_plus_models_providers_wine_definitions_type_id;
	proton_plus_models_providers_wine_definitions_type_id = g_type_register_static (G_TYPE_OBJECT, "ProtonPlusModelsProvidersWineDefinitions", &g_define_type_info, 0);
	return proton_plus_models_providers_wine_definitions_type_id;
}

GType
proton_plus_models_providers_wine_definitions_get_type (void)
{
	static volatile gsize proton_plus_models_providers_wine_definitions_type_id__once = 0;
	if (g_once_init_enter (&proton_plus_models_providers_wine_definitions_type_id__once)) {
		GType proton_plus_models_providers_wine_definitions_type_id;
		proton_plus_models_providers_wine_definitions_type_id = proton_plus_models_providers_wine_definitions_get_type_once ();
		g_once_init_leave (&proton_plus_models_providers_wine_definitions_type_id__once, proton_plus_models_providers_wine_definitions_type_id);
	}
	return proton_plus_models_providers_wine_definitions_type_id__once;
}

static void
_vala_array_destroy (gpointer array,
                     gssize array_length,
                     GDestroyNotify destroy_func)
{
	if ((array != NULL) && (destroy_func != NULL)) {
		gssize i;
		for (i = 0; i < array_length; i = i + 1) {
			if (((gpointer*) array)[i] != NULL) {
				destroy_func (((gpointer*) array)[i]);
			}
		}
	}
}

static void
_vala_array_free (gpointer array,
                  gssize array_length,
                  GDestroyNotify destroy_func)
{
	_vala_array_destroy (array, array_length, destroy_func);
	g_free (array);
}

static inline gpointer
_vala_memdup2 (gconstpointer mem,
               gsize byte_size)
{
	gpointer new_mem;
	if (mem && byte_size != 0) {
		new_mem = g_malloc (byte_size);
		memcpy (new_mem, mem, byte_size);
	} else {
		new_mem = NULL;
	}
	return new_mem;
}

