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

#include "protonplus_core.h"
#include <glib.h>
#include <glib-object.h>
#include <gee.h>
#include <stdlib.h>
#include <string.h>
#include <appstream.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

enum  {
	PROTON_PLUS_MODELS_INTERNAL_META_INFO_0_PROPERTY,
	PROTON_PLUS_MODELS_INTERNAL_META_INFO_NUM_PROPERTIES
};
static GParamSpec* proton_plus_models_internal_meta_info_properties[PROTON_PLUS_MODELS_INTERNAL_META_INFO_NUM_PROPERTIES];
#define _g_free0(var) (var = (g_free (var), NULL))
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
enum  {
	PROTON_PLUS_MODELS_INTERNAL_META_INFO_DEVELOPER_0_PROPERTY,
	PROTON_PLUS_MODELS_INTERNAL_META_INFO_DEVELOPER_NUM_PROPERTIES
};
static GParamSpec* proton_plus_models_internal_meta_info_developer_properties[PROTON_PLUS_MODELS_INTERNAL_META_INFO_DEVELOPER_NUM_PROPERTIES];
enum  {
	PROTON_PLUS_MODELS_INTERNAL_META_INFO_SCREENSHOT_0_PROPERTY,
	PROTON_PLUS_MODELS_INTERNAL_META_INFO_SCREENSHOT_NUM_PROPERTIES
};
static GParamSpec* proton_plus_models_internal_meta_info_screenshot_properties[PROTON_PLUS_MODELS_INTERNAL_META_INFO_SCREENSHOT_NUM_PROPERTIES];
enum  {
	PROTON_PLUS_MODELS_INTERNAL_META_INFO_RELEASE_0_PROPERTY,
	PROTON_PLUS_MODELS_INTERNAL_META_INFO_RELEASE_NUM_PROPERTIES
};
static GParamSpec* proton_plus_models_internal_meta_info_release_properties[PROTON_PLUS_MODELS_INTERNAL_META_INFO_RELEASE_NUM_PROPERTIES];

static gpointer proton_plus_models_internal_meta_info_parent_class = NULL;
static gpointer proton_plus_models_internal_meta_info_developer_parent_class = NULL;
static gpointer proton_plus_models_internal_meta_info_screenshot_parent_class = NULL;
static gpointer proton_plus_models_internal_meta_info_release_parent_class = NULL;

static void proton_plus_models_internal_meta_info_finalize (GObject * obj);
static GType proton_plus_models_internal_meta_info_get_type_once (void);
static void proton_plus_models_internal_meta_info_developer_finalize (GObject * obj);
static GType proton_plus_models_internal_meta_info_developer_get_type_once (void);
static void proton_plus_models_internal_meta_info_screenshot_finalize (GObject * obj);
static GType proton_plus_models_internal_meta_info_screenshot_get_type_once (void);
static void proton_plus_models_internal_meta_info_release_finalize (GObject * obj);
static GType proton_plus_models_internal_meta_info_release_get_type_once (void);
static inline gpointer _vala_memdup2 (gconstpointer mem,
                        gsize byte_size);

ProtonPlusModelsInternalMetaInfo*
proton_plus_models_internal_meta_info_construct (GType object_type)
{
	ProtonPlusModelsInternalMetaInfo * self = NULL;
	GeeArrayList* _tmp0_;
	GeeArrayList* _tmp1_;
	GeeArrayList* _tmp2_;
	GeeArrayList* _tmp3_;
	GeeArrayList* _tmp4_;
	self = (ProtonPlusModelsInternalMetaInfo*) g_object_new (object_type, NULL);
	_tmp0_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
	_g_object_unref0 (self->keywords);
	self->keywords = (GeeList*) _tmp0_;
	_tmp1_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
	_g_object_unref0 (self->categories);
	self->categories = (GeeList*) _tmp1_;
	_tmp2_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL);
	_g_object_unref0 (self->urls);
	self->urls = (GeeList*) _tmp2_;
	_tmp3_ = gee_array_list_new (as_screenshot_get_type (), (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
	_g_object_unref0 (self->screenshots);
	self->screenshots = (GeeList*) _tmp3_;
	_tmp4_ = gee_array_list_new (PROTON_PLUS_MODELS_INTERNAL_TYPE_META_INFO_RELEASE, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
	_g_object_unref0 (self->releases);
	self->releases = (GeeList*) _tmp4_;
	return self;
}

ProtonPlusModelsInternalMetaInfo*
proton_plus_models_internal_meta_info_new (void)
{
	return proton_plus_models_internal_meta_info_construct (PROTON_PLUS_MODELS_INTERNAL_TYPE_META_INFO);
}

void
proton_plus_models_internal_meta_info_add_release (ProtonPlusModelsInternalMetaInfo* self,
                                                   const gchar* version,
                                                   const gchar* date,
                                                   const gchar* description)
{
	GeeList* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	ProtonPlusModelsInternalMetaInfoRelease* _tmp4_ = NULL;
	ProtonPlusModelsInternalMetaInfoRelease* _tmp5_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->releases;
	_tmp1_ = g_strdup (version);
	_tmp2_ = g_strdup (date);
	_tmp3_ = g_strdup (description);
	_tmp4_ = proton_plus_models_internal_meta_info_release_new ();
	_g_free0 (_tmp4_->version);
	_tmp4_->version = _tmp1_;
	_g_free0 (_tmp4_->date);
	_tmp4_->date = _tmp2_;
	_g_free0 (_tmp4_->description);
	_tmp4_->description = _tmp3_;
	_tmp5_ = _tmp4_;
	gee_collection_add ((GeeCollection*) _tmp0_, _tmp5_);
	_g_object_unref0 (_tmp5_);
}

ProtonPlusModelsInternalMetaInfoRelease*
proton_plus_models_internal_meta_info_get_last_release (ProtonPlusModelsInternalMetaInfo* self)
{
	GeeList* _tmp0_;
	gpointer _tmp1_;
	ProtonPlusModelsInternalMetaInfoRelease* result;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->releases;
	_tmp1_ = gee_list_first (_tmp0_);
	result = (ProtonPlusModelsInternalMetaInfoRelease*) _tmp1_;
	return result;
}

gchar*
proton_plus_models_internal_meta_info_get_full_change_log (ProtonPlusModelsInternalMetaInfo* self,
                                                           gint limit)
{
	gchar* _result_ = NULL;
	gchar* _tmp0_;
	ProtonPlusModelsInternalMetaInfoRelease* last_release = NULL;
	ProtonPlusModelsInternalMetaInfoRelease* _tmp1_;
	gchar* result;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = g_strdup ("");
	_result_ = _tmp0_;
	_tmp1_ = proton_plus_models_internal_meta_info_get_last_release (self);
	last_release = _tmp1_;
	{
		GeeList* _item_list = NULL;
		GeeList* _tmp2_;
		GeeList* _tmp3_;
		gint _item_size = 0;
		GeeList* _tmp4_;
		gint _tmp5_;
		gint _tmp6_;
		gint _item_index = 0;
		_tmp2_ = self->releases;
		_tmp3_ = gee_list_slice (_tmp2_, 0, limit);
		_item_list = _tmp3_;
		_tmp4_ = _item_list;
		_tmp5_ = gee_collection_get_size ((GeeCollection*) _tmp4_);
		_tmp6_ = _tmp5_;
		_item_size = _tmp6_;
		_item_index = -1;
		while (TRUE) {
			gint _tmp7_;
			gint _tmp8_;
			ProtonPlusModelsInternalMetaInfoRelease* item = NULL;
			GeeList* _tmp9_;
			gpointer _tmp10_;
			ProtonPlusModelsInternalMetaInfoRelease* _tmp11_;
			const gchar* _tmp12_;
			ProtonPlusModelsInternalMetaInfoRelease* _tmp13_;
			const gchar* _tmp14_;
			_item_index = _item_index + 1;
			_tmp7_ = _item_index;
			_tmp8_ = _item_size;
			if (!(_tmp7_ < _tmp8_)) {
				break;
			}
			_tmp9_ = _item_list;
			_tmp10_ = gee_list_get (_tmp9_, _item_index);
			item = (ProtonPlusModelsInternalMetaInfoRelease*) _tmp10_;
			_tmp11_ = item;
			_tmp12_ = _tmp11_->version;
			_tmp13_ = last_release;
			_tmp14_ = _tmp13_->version;
			if (g_strcmp0 (_tmp12_, _tmp14_) == 0) {
				const gchar* _tmp15_;
				ProtonPlusModelsInternalMetaInfoRelease* _tmp16_;
				const gchar* _tmp17_;
				gchar* _tmp18_;
				gchar* _tmp19_;
				gchar* _tmp20_;
				_tmp15_ = _result_;
				_tmp16_ = item;
				_tmp17_ = _tmp16_->description;
				_tmp18_ = g_strconcat (_tmp17_, "\n", NULL);
				_tmp19_ = _tmp18_;
				_tmp20_ = g_strconcat (_tmp15_, _tmp19_, NULL);
				_g_free0 (_result_);
				_result_ = _tmp20_;
				_g_free0 (_tmp19_);
			} else {
				const gchar* _tmp21_;
				ProtonPlusModelsInternalMetaInfoRelease* _tmp22_;
				const gchar* _tmp23_;
				gchar* _tmp24_;
				gchar* _tmp25_;
				gchar* _tmp26_;
				gchar* _tmp27_;
				gchar* _tmp28_;
				const gchar* _tmp29_;
				ProtonPlusModelsInternalMetaInfoRelease* _tmp30_;
				const gchar* _tmp31_;
				gchar* _tmp32_;
				gchar* _tmp33_;
				gchar* _tmp34_;
				_tmp21_ = _result_;
				_tmp22_ = item;
				_tmp23_ = _tmp22_->version;
				_tmp24_ = g_strconcat ("<p>Version: ", _tmp23_, NULL);
				_tmp25_ = _tmp24_;
				_tmp26_ = g_strconcat (_tmp25_, "</p>\n", NULL);
				_tmp27_ = _tmp26_;
				_tmp28_ = g_strconcat (_tmp21_, _tmp27_, NULL);
				_g_free0 (_result_);
				_result_ = _tmp28_;
				_g_free0 (_tmp27_);
				_g_free0 (_tmp25_);
				_tmp29_ = _result_;
				_tmp30_ = item;
				_tmp31_ = _tmp30_->description;
				_tmp32_ = g_strconcat (_tmp31_, "\n", NULL);
				_tmp33_ = _tmp32_;
				_tmp34_ = g_strconcat (_tmp29_, _tmp33_, NULL);
				_g_free0 (_result_);
				_result_ = _tmp34_;
				_g_free0 (_tmp33_);
			}
			_g_object_unref0 (item);
		}
		_g_object_unref0 (_item_list);
	}
	result = _result_;
	_g_object_unref0 (last_release);
	return result;
}

static void
proton_plus_models_internal_meta_info_class_init (ProtonPlusModelsInternalMetaInfoClass * klass,
                                                  gpointer klass_data)
{
	proton_plus_models_internal_meta_info_parent_class = g_type_class_peek_parent (klass);
	G_OBJECT_CLASS (klass)->finalize = proton_plus_models_internal_meta_info_finalize;
}

static void
proton_plus_models_internal_meta_info_instance_init (ProtonPlusModelsInternalMetaInfo * self,
                                                     gpointer klass)
{
	self->id = NULL;
	self->metadata_license = NULL;
	self->project_license = NULL;
	self->name = NULL;
	self->summary = NULL;
	self->description = NULL;
}

static void
proton_plus_models_internal_meta_info_finalize (GObject * obj)
{
	ProtonPlusModelsInternalMetaInfo * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, PROTON_PLUS_MODELS_INTERNAL_TYPE_META_INFO, ProtonPlusModelsInternalMetaInfo);
	_g_free0 (self->id);
	_g_free0 (self->metadata_license);
	_g_free0 (self->project_license);
	_g_free0 (self->name);
	_g_free0 (self->summary);
	_g_free0 (self->description);
	_g_object_unref0 (self->keywords);
	_g_object_unref0 (self->releases);
	_g_object_unref0 (self->screenshots);
	_g_object_unref0 (self->categories);
	_g_object_unref0 (self->urls);
	G_OBJECT_CLASS (proton_plus_models_internal_meta_info_parent_class)->finalize (obj);
}

static GType
proton_plus_models_internal_meta_info_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (ProtonPlusModelsInternalMetaInfoClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) proton_plus_models_internal_meta_info_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ProtonPlusModelsInternalMetaInfo), 0, (GInstanceInitFunc) proton_plus_models_internal_meta_info_instance_init, NULL };
	GType proton_plus_models_internal_meta_info_type_id;
	proton_plus_models_internal_meta_info_type_id = g_type_register_static (G_TYPE_OBJECT, "ProtonPlusModelsInternalMetaInfo", &g_define_type_info, 0);
	return proton_plus_models_internal_meta_info_type_id;
}

GType
proton_plus_models_internal_meta_info_get_type (void)
{
	static volatile gsize proton_plus_models_internal_meta_info_type_id__once = 0;
	if (g_once_init_enter (&proton_plus_models_internal_meta_info_type_id__once)) {
		GType proton_plus_models_internal_meta_info_type_id;
		proton_plus_models_internal_meta_info_type_id = proton_plus_models_internal_meta_info_get_type_once ();
		g_once_init_leave (&proton_plus_models_internal_meta_info_type_id__once, proton_plus_models_internal_meta_info_type_id);
	}
	return proton_plus_models_internal_meta_info_type_id__once;
}

ProtonPlusModelsInternalMetaInfoDeveloper*
proton_plus_models_internal_meta_info_developer_construct (GType object_type)
{
	ProtonPlusModelsInternalMetaInfoDeveloper * self = NULL;
	self = (ProtonPlusModelsInternalMetaInfoDeveloper*) g_object_new (object_type, NULL);
	return self;
}

ProtonPlusModelsInternalMetaInfoDeveloper*
proton_plus_models_internal_meta_info_developer_new (void)
{
	return proton_plus_models_internal_meta_info_developer_construct (PROTON_PLUS_MODELS_INTERNAL_TYPE_META_INFO_DEVELOPER);
}

static void
proton_plus_models_internal_meta_info_developer_class_init (ProtonPlusModelsInternalMetaInfoDeveloperClass * klass,
                                                            gpointer klass_data)
{
	proton_plus_models_internal_meta_info_developer_parent_class = g_type_class_peek_parent (klass);
	G_OBJECT_CLASS (klass)->finalize = proton_plus_models_internal_meta_info_developer_finalize;
}

static void
proton_plus_models_internal_meta_info_developer_instance_init (ProtonPlusModelsInternalMetaInfoDeveloper * self,
                                                               gpointer klass)
{
	self->name = NULL;
}

static void
proton_plus_models_internal_meta_info_developer_finalize (GObject * obj)
{
	ProtonPlusModelsInternalMetaInfoDeveloper * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, PROTON_PLUS_MODELS_INTERNAL_TYPE_META_INFO_DEVELOPER, ProtonPlusModelsInternalMetaInfoDeveloper);
	_g_free0 (self->name);
	G_OBJECT_CLASS (proton_plus_models_internal_meta_info_developer_parent_class)->finalize (obj);
}

static GType
proton_plus_models_internal_meta_info_developer_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (ProtonPlusModelsInternalMetaInfoDeveloperClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) proton_plus_models_internal_meta_info_developer_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ProtonPlusModelsInternalMetaInfoDeveloper), 0, (GInstanceInitFunc) proton_plus_models_internal_meta_info_developer_instance_init, NULL };
	GType proton_plus_models_internal_meta_info_developer_type_id;
	proton_plus_models_internal_meta_info_developer_type_id = g_type_register_static (G_TYPE_OBJECT, "ProtonPlusModelsInternalMetaInfoDeveloper", &g_define_type_info, 0);
	return proton_plus_models_internal_meta_info_developer_type_id;
}

GType
proton_plus_models_internal_meta_info_developer_get_type (void)
{
	static volatile gsize proton_plus_models_internal_meta_info_developer_type_id__once = 0;
	if (g_once_init_enter (&proton_plus_models_internal_meta_info_developer_type_id__once)) {
		GType proton_plus_models_internal_meta_info_developer_type_id;
		proton_plus_models_internal_meta_info_developer_type_id = proton_plus_models_internal_meta_info_developer_get_type_once ();
		g_once_init_leave (&proton_plus_models_internal_meta_info_developer_type_id__once, proton_plus_models_internal_meta_info_developer_type_id);
	}
	return proton_plus_models_internal_meta_info_developer_type_id__once;
}

ProtonPlusModelsInternalMetaInfoScreenshot*
proton_plus_models_internal_meta_info_screenshot_construct (GType object_type)
{
	ProtonPlusModelsInternalMetaInfoScreenshot * self = NULL;
	self = (ProtonPlusModelsInternalMetaInfoScreenshot*) g_object_new (object_type, NULL);
	return self;
}

ProtonPlusModelsInternalMetaInfoScreenshot*
proton_plus_models_internal_meta_info_screenshot_new (void)
{
	return proton_plus_models_internal_meta_info_screenshot_construct (PROTON_PLUS_MODELS_INTERNAL_TYPE_META_INFO_SCREENSHOT);
}

static void
proton_plus_models_internal_meta_info_screenshot_class_init (ProtonPlusModelsInternalMetaInfoScreenshotClass * klass,
                                                             gpointer klass_data)
{
	proton_plus_models_internal_meta_info_screenshot_parent_class = g_type_class_peek_parent (klass);
	G_OBJECT_CLASS (klass)->finalize = proton_plus_models_internal_meta_info_screenshot_finalize;
}

static void
proton_plus_models_internal_meta_info_screenshot_instance_init (ProtonPlusModelsInternalMetaInfoScreenshot * self,
                                                                gpointer klass)
{
	self->type = NULL;
	self->image = NULL;
	self->caption = NULL;
}

static void
proton_plus_models_internal_meta_info_screenshot_finalize (GObject * obj)
{
	ProtonPlusModelsInternalMetaInfoScreenshot * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, PROTON_PLUS_MODELS_INTERNAL_TYPE_META_INFO_SCREENSHOT, ProtonPlusModelsInternalMetaInfoScreenshot);
	_g_free0 (self->type);
	_g_free0 (self->image);
	_g_free0 (self->caption);
	G_OBJECT_CLASS (proton_plus_models_internal_meta_info_screenshot_parent_class)->finalize (obj);
}

static GType
proton_plus_models_internal_meta_info_screenshot_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (ProtonPlusModelsInternalMetaInfoScreenshotClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) proton_plus_models_internal_meta_info_screenshot_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ProtonPlusModelsInternalMetaInfoScreenshot), 0, (GInstanceInitFunc) proton_plus_models_internal_meta_info_screenshot_instance_init, NULL };
	GType proton_plus_models_internal_meta_info_screenshot_type_id;
	proton_plus_models_internal_meta_info_screenshot_type_id = g_type_register_static (G_TYPE_OBJECT, "ProtonPlusModelsInternalMetaInfoScreenshot", &g_define_type_info, 0);
	return proton_plus_models_internal_meta_info_screenshot_type_id;
}

GType
proton_plus_models_internal_meta_info_screenshot_get_type (void)
{
	static volatile gsize proton_plus_models_internal_meta_info_screenshot_type_id__once = 0;
	if (g_once_init_enter (&proton_plus_models_internal_meta_info_screenshot_type_id__once)) {
		GType proton_plus_models_internal_meta_info_screenshot_type_id;
		proton_plus_models_internal_meta_info_screenshot_type_id = proton_plus_models_internal_meta_info_screenshot_get_type_once ();
		g_once_init_leave (&proton_plus_models_internal_meta_info_screenshot_type_id__once, proton_plus_models_internal_meta_info_screenshot_type_id);
	}
	return proton_plus_models_internal_meta_info_screenshot_type_id__once;
}

ProtonPlusModelsInternalMetaInfoRelease*
proton_plus_models_internal_meta_info_release_construct (GType object_type)
{
	ProtonPlusModelsInternalMetaInfoRelease * self = NULL;
	self = (ProtonPlusModelsInternalMetaInfoRelease*) g_object_new (object_type, NULL);
	return self;
}

ProtonPlusModelsInternalMetaInfoRelease*
proton_plus_models_internal_meta_info_release_new (void)
{
	return proton_plus_models_internal_meta_info_release_construct (PROTON_PLUS_MODELS_INTERNAL_TYPE_META_INFO_RELEASE);
}

static void
proton_plus_models_internal_meta_info_release_class_init (ProtonPlusModelsInternalMetaInfoReleaseClass * klass,
                                                          gpointer klass_data)
{
	proton_plus_models_internal_meta_info_release_parent_class = g_type_class_peek_parent (klass);
	G_OBJECT_CLASS (klass)->finalize = proton_plus_models_internal_meta_info_release_finalize;
}

static void
proton_plus_models_internal_meta_info_release_instance_init (ProtonPlusModelsInternalMetaInfoRelease * self,
                                                             gpointer klass)
{
	self->version = NULL;
	self->date = NULL;
	self->description = NULL;
}

static void
proton_plus_models_internal_meta_info_release_finalize (GObject * obj)
{
	ProtonPlusModelsInternalMetaInfoRelease * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, PROTON_PLUS_MODELS_INTERNAL_TYPE_META_INFO_RELEASE, ProtonPlusModelsInternalMetaInfoRelease);
	_g_free0 (self->version);
	_g_free0 (self->date);
	_g_free0 (self->description);
	G_OBJECT_CLASS (proton_plus_models_internal_meta_info_release_parent_class)->finalize (obj);
}

static GType
proton_plus_models_internal_meta_info_release_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (ProtonPlusModelsInternalMetaInfoReleaseClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) proton_plus_models_internal_meta_info_release_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ProtonPlusModelsInternalMetaInfoRelease), 0, (GInstanceInitFunc) proton_plus_models_internal_meta_info_release_instance_init, NULL };
	GType proton_plus_models_internal_meta_info_release_type_id;
	proton_plus_models_internal_meta_info_release_type_id = g_type_register_static (G_TYPE_OBJECT, "ProtonPlusModelsInternalMetaInfoRelease", &g_define_type_info, 0);
	return proton_plus_models_internal_meta_info_release_type_id;
}

GType
proton_plus_models_internal_meta_info_release_get_type (void)
{
	static volatile gsize proton_plus_models_internal_meta_info_release_type_id__once = 0;
	if (g_once_init_enter (&proton_plus_models_internal_meta_info_release_type_id__once)) {
		GType proton_plus_models_internal_meta_info_release_type_id;
		proton_plus_models_internal_meta_info_release_type_id = proton_plus_models_internal_meta_info_release_get_type_once ();
		g_once_init_leave (&proton_plus_models_internal_meta_info_release_type_id__once, proton_plus_models_internal_meta_info_release_type_id);
	}
	return proton_plus_models_internal_meta_info_release_type_id__once;
}

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;
}

