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

/* Copyright 2016 Software Freedom Conservancy Inc.
 *
 * This software is licensed under the GNU Lesser General Public License
 * (version 2.1 or later).  See the COPYING file in this distribution.
 */

#include <glib.h>
#include <glib-object.h>
#include <gee.h>
#include <stdlib.h>
#include <string.h>


#define UTILS_TYPE_VERSION_NUMBER (utils_version_number_get_type ())
#define UTILS_VERSION_NUMBER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), UTILS_TYPE_VERSION_NUMBER, UtilsVersionNumber))
#define UTILS_VERSION_NUMBER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), UTILS_TYPE_VERSION_NUMBER, UtilsVersionNumberClass))
#define UTILS_IS_VERSION_NUMBER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), UTILS_TYPE_VERSION_NUMBER))
#define UTILS_IS_VERSION_NUMBER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), UTILS_TYPE_VERSION_NUMBER))
#define UTILS_VERSION_NUMBER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), UTILS_TYPE_VERSION_NUMBER, UtilsVersionNumberClass))

typedef struct _UtilsVersionNumber UtilsVersionNumber;
typedef struct _UtilsVersionNumberClass UtilsVersionNumberClass;
typedef struct _UtilsVersionNumberPrivate UtilsVersionNumberPrivate;
#define _g_free0(var) (var = (g_free (var), NULL))

struct _UtilsVersionNumber {
	GObject parent_instance;
	UtilsVersionNumberPrivate * priv;
};

struct _UtilsVersionNumberClass {
	GObjectClass parent_class;
};

struct _UtilsVersionNumberPrivate {
	gint* version;
	gint version_length1;
	gint _version_size_;
};


static gpointer utils_version_number_parent_class = NULL;
static GeeComparableIface * utils_version_number_gee_comparable_parent_iface = NULL;

GType utils_version_number_get_type (void) G_GNUC_CONST;
#define UTILS_VERSION_NUMBER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), UTILS_TYPE_VERSION_NUMBER, UtilsVersionNumberPrivate))
enum  {
	UTILS_VERSION_NUMBER_DUMMY_PROPERTY
};
UtilsVersionNumber* utils_version_number_new (gint* version, int version_length1);
UtilsVersionNumber* utils_version_number_construct (GType object_type, gint* version, int version_length1);
static gint* _vala_array_dup3 (gint* self, int length);
UtilsVersionNumber* utils_version_number_new_from_string (const gchar* str_version, const gchar* separator);
UtilsVersionNumber* utils_version_number_construct_from_string (GType object_type, const gchar* str_version, const gchar* separator);
gchar* utils_version_number_to_string (UtilsVersionNumber* self);
static gint utils_version_number_real_compare_to (GeeComparable* base, UtilsVersionNumber* other);
static void utils_version_number_finalize (GObject * obj);
static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
static gint _vala_array_length (gpointer array);


static gint* _vala_array_dup3 (gint* self, int length) {
#line 17 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	return g_memdup (self, length * sizeof (gint));
#line 70 "VersionNumber.c"
}


UtilsVersionNumber* utils_version_number_construct (GType object_type, gint* version, int version_length1) {
	UtilsVersionNumber * self = NULL;
	gint* _tmp0_;
	gint _tmp0__length1;
	gint* _tmp1_;
	gint _tmp1__length1;
#line 16 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	self = (UtilsVersionNumber*) g_object_new (object_type, NULL);
#line 17 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	_tmp0_ = version;
#line 17 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	_tmp0__length1 = version_length1;
#line 17 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	_tmp1_ = (_tmp0_ != NULL) ? _vala_array_dup3 (_tmp0_, _tmp0__length1) : ((gpointer) _tmp0_);
#line 17 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	_tmp1__length1 = _tmp0__length1;
#line 17 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	self->priv->version = (g_free (self->priv->version), NULL);
#line 17 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	self->priv->version = _tmp1_;
#line 17 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	self->priv->version_length1 = _tmp1__length1;
#line 17 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	self->priv->_version_size_ = self->priv->version_length1;
#line 16 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	return self;
#line 100 "VersionNumber.c"
}


UtilsVersionNumber* utils_version_number_new (gint* version, int version_length1) {
#line 16 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	return utils_version_number_construct (UTILS_TYPE_VERSION_NUMBER, version, version_length1);
#line 107 "VersionNumber.c"
}


UtilsVersionNumber* utils_version_number_construct_from_string (GType object_type, const gchar* str_version, const gchar* separator) {
	UtilsVersionNumber * self = NULL;
	gchar** version_items = NULL;
	const gchar* _tmp0_;
	const gchar* _tmp1_;
	gchar** _tmp2_;
	gchar** _tmp3_;
	gint version_items_length1;
	gint _version_items_size_;
	gchar** _tmp4_;
	gint _tmp4__length1;
	gint* _tmp5_;
#line 20 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	g_return_val_if_fail (str_version != NULL, NULL);
#line 20 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	g_return_val_if_fail (separator != NULL, NULL);
#line 20 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	self = (UtilsVersionNumber*) g_object_new (object_type, NULL);
#line 21 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	_tmp0_ = str_version;
#line 21 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	_tmp1_ = separator;
#line 21 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	_tmp3_ = _tmp2_ = g_strsplit (_tmp0_, _tmp1_, 0);
#line 21 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	version_items = _tmp3_;
#line 21 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	version_items_length1 = _vala_array_length (_tmp2_);
#line 21 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	_version_items_size_ = version_items_length1;
#line 22 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	_tmp4_ = version_items;
#line 22 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	_tmp4__length1 = version_items_length1;
#line 22 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	_tmp5_ = g_new0 (gint, _tmp4__length1);
#line 22 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	self->priv->version = (g_free (self->priv->version), NULL);
#line 22 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	self->priv->version = _tmp5_;
#line 22 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	self->priv->version_length1 = _tmp4__length1;
#line 22 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	self->priv->_version_size_ = self->priv->version_length1;
#line 155 "VersionNumber.c"
	{
		gint i = 0;
#line 23 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
		i = 0;
#line 160 "VersionNumber.c"
		{
			gboolean _tmp6_ = FALSE;
#line 23 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
			_tmp6_ = TRUE;
#line 23 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
			while (TRUE) {
#line 167 "VersionNumber.c"
				gint _tmp8_;
				gchar** _tmp9_;
				gint _tmp9__length1;
				gint* _tmp10_;
				gint _tmp10__length1;
				gint _tmp11_;
				gchar** _tmp12_;
				gint _tmp12__length1;
				gint _tmp13_;
				const gchar* _tmp14_;
				gint _tmp15_;
				gint _tmp16_;
#line 23 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				if (!_tmp6_) {
#line 182 "VersionNumber.c"
					gint _tmp7_;
#line 23 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
					_tmp7_ = i;
#line 23 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
					i = _tmp7_ + 1;
#line 188 "VersionNumber.c"
				}
#line 23 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				_tmp6_ = FALSE;
#line 23 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				_tmp8_ = i;
#line 23 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				_tmp9_ = version_items;
#line 23 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				_tmp9__length1 = version_items_length1;
#line 23 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				if (!(_tmp8_ < _tmp9__length1)) {
#line 23 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
					break;
#line 202 "VersionNumber.c"
				}
#line 24 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				_tmp10_ = self->priv->version;
#line 24 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				_tmp10__length1 = self->priv->version_length1;
#line 24 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				_tmp11_ = i;
#line 24 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				_tmp12_ = version_items;
#line 24 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				_tmp12__length1 = version_items_length1;
#line 24 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				_tmp13_ = i;
#line 24 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				_tmp14_ = _tmp12_[_tmp13_];
#line 24 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				_tmp15_ = atoi (_tmp14_);
#line 24 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				_tmp10_[_tmp11_] = _tmp15_;
#line 24 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				_tmp16_ = _tmp10_[_tmp11_];
#line 224 "VersionNumber.c"
			}
		}
	}
#line 20 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	version_items = (_vala_array_free (version_items, version_items_length1, (GDestroyNotify) g_free), NULL);
#line 20 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	return self;
#line 232 "VersionNumber.c"
}


UtilsVersionNumber* utils_version_number_new_from_string (const gchar* str_version, const gchar* separator) {
#line 20 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	return utils_version_number_construct_from_string (UTILS_TYPE_VERSION_NUMBER, str_version, separator);
#line 239 "VersionNumber.c"
}


static gchar* _vala_g_strjoinv (const gchar* separator, gchar** str_array, int str_array_length1) {
	gchar* result = NULL;
	const gchar* _tmp0_;
	gboolean _tmp1_ = FALSE;
	gboolean _tmp2_ = FALSE;
	gchar** _tmp3_;
	gint _tmp3__length1;
#line 1078 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
	_tmp0_ = separator;
#line 1078 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
	if (_tmp0_ == NULL) {
#line 1079 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
		separator = "";
#line 256 "VersionNumber.c"
	}
#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
	_tmp3_ = str_array;
#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
	_tmp3__length1 = str_array_length1;
#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
	if (_tmp3_ != NULL) {
#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
		_tmp2_ = TRUE;
#line 266 "VersionNumber.c"
	} else {
		gchar** _tmp4_;
		gint _tmp4__length1;
#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
		_tmp4_ = str_array;
#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
		_tmp4__length1 = str_array_length1;
#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
		_tmp2_ = _tmp4__length1 > 0;
#line 276 "VersionNumber.c"
	}
#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
	if (_tmp2_) {
#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
		_tmp1_ = TRUE;
#line 282 "VersionNumber.c"
	} else {
		gboolean _tmp5_ = FALSE;
		gchar** _tmp6_;
		gint _tmp6__length1;
#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
		_tmp6_ = str_array;
#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
		_tmp6__length1 = str_array_length1;
#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
		if (_tmp6__length1 == -1) {
#line 293 "VersionNumber.c"
			gchar** _tmp7_;
			gint _tmp7__length1;
			const gchar* _tmp8_;
#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
			_tmp7_ = str_array;
#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
			_tmp7__length1 = str_array_length1;
#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
			_tmp8_ = _tmp7_[0];
#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
			_tmp5_ = _tmp8_ != NULL;
#line 305 "VersionNumber.c"
		} else {
#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
			_tmp5_ = FALSE;
#line 309 "VersionNumber.c"
		}
#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
		_tmp1_ = _tmp5_;
#line 313 "VersionNumber.c"
	}
#line 1081 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
	if (_tmp1_) {
#line 317 "VersionNumber.c"
		gint i = 0;
		gsize len = 0UL;
		gint _tmp31_;
		gint _tmp33_;
		gint _tmp34_;
		gsize _tmp35_;
		const gchar* _tmp36_;
		gint _tmp37_;
		gint _tmp38_;
		gint _tmp39_;
		const gchar* res = NULL;
		gsize _tmp40_;
		void* _tmp41_;
		void* ptr = NULL;
		const gchar* _tmp42_;
		gchar** _tmp43_;
		gint _tmp43__length1;
		const gchar* _tmp44_;
		void* _tmp45_;
		const gchar* _tmp62_;
#line 1083 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
		len = (gsize) 1;
#line 340 "VersionNumber.c"
		{
			gboolean _tmp9_ = FALSE;
#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
			i = 0;
#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
			_tmp9_ = TRUE;
#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
			while (TRUE) {
#line 349 "VersionNumber.c"
				gboolean _tmp11_ = FALSE;
				gboolean _tmp12_ = FALSE;
				gchar** _tmp13_;
				gint _tmp13__length1;
				gint _tmp21_ = 0;
				gchar** _tmp22_;
				gint _tmp22__length1;
				gint _tmp23_;
				const gchar* _tmp24_;
				gsize _tmp30_;
#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
				if (!_tmp9_) {
#line 362 "VersionNumber.c"
					gint _tmp10_;
#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
					_tmp10_ = i;
#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
					i = _tmp10_ + 1;
#line 368 "VersionNumber.c"
				}
#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
				_tmp9_ = FALSE;
#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
				_tmp13_ = str_array;
#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
				_tmp13__length1 = str_array_length1;
#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
				if (_tmp13__length1 != -1) {
#line 378 "VersionNumber.c"
					gint _tmp14_;
					gchar** _tmp15_;
					gint _tmp15__length1;
#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
					_tmp14_ = i;
#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
					_tmp15_ = str_array;
#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
					_tmp15__length1 = str_array_length1;
#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
					_tmp12_ = _tmp14_ < _tmp15__length1;
#line 390 "VersionNumber.c"
				} else {
#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
					_tmp12_ = FALSE;
#line 394 "VersionNumber.c"
				}
#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
				if (_tmp12_) {
#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
					_tmp11_ = TRUE;
#line 400 "VersionNumber.c"
				} else {
					gboolean _tmp16_ = FALSE;
					gchar** _tmp17_;
					gint _tmp17__length1;
#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
					_tmp17_ = str_array;
#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
					_tmp17__length1 = str_array_length1;
#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
					if (_tmp17__length1 == -1) {
#line 411 "VersionNumber.c"
						gchar** _tmp18_;
						gint _tmp18__length1;
						gint _tmp19_;
						const gchar* _tmp20_;
#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
						_tmp18_ = str_array;
#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
						_tmp18__length1 = str_array_length1;
#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
						_tmp19_ = i;
#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
						_tmp20_ = _tmp18_[_tmp19_];
#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
						_tmp16_ = _tmp20_ != NULL;
#line 426 "VersionNumber.c"
					} else {
#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
						_tmp16_ = FALSE;
#line 430 "VersionNumber.c"
					}
#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
					_tmp11_ = _tmp16_;
#line 434 "VersionNumber.c"
				}
#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
				if (!_tmp11_) {
#line 1084 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
					break;
#line 440 "VersionNumber.c"
				}
#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
				_tmp22_ = str_array;
#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
				_tmp22__length1 = str_array_length1;
#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
				_tmp23_ = i;
#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
				_tmp24_ = _tmp22_[_tmp23_];
#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
				if (_tmp24_ != NULL) {
#line 452 "VersionNumber.c"
					gchar** _tmp25_;
					gint _tmp25__length1;
					gint _tmp26_;
					const gchar* _tmp27_;
					gint _tmp28_;
					gint _tmp29_;
#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
					_tmp25_ = str_array;
#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
					_tmp25__length1 = str_array_length1;
#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
					_tmp26_ = i;
#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
					_tmp27_ = _tmp25_[_tmp26_];
#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
					_tmp28_ = strlen ((const gchar*) _tmp27_);
#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
					_tmp29_ = _tmp28_;
#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
					_tmp21_ = _tmp29_;
#line 473 "VersionNumber.c"
				} else {
#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
					_tmp21_ = 0;
#line 477 "VersionNumber.c"
				}
#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
				_tmp30_ = len;
#line 1085 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
				len = _tmp30_ + _tmp21_;
#line 483 "VersionNumber.c"
			}
		}
#line 1087 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
		_tmp31_ = i;
#line 1087 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
		if (_tmp31_ == 0) {
#line 490 "VersionNumber.c"
			gchar* _tmp32_;
#line 1088 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
			_tmp32_ = g_strdup ("");
#line 1088 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
			result = _tmp32_;
#line 1088 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
			return result;
#line 498 "VersionNumber.c"
		}
#line 1090 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
		_tmp33_ = i;
#line 1090 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
		str_array_length1 = _tmp33_;
#line 1090 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
		_tmp34_ = str_array_length1;
#line 1091 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
		_tmp35_ = len;
#line 1091 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
		_tmp36_ = separator;
#line 1091 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
		_tmp37_ = strlen ((const gchar*) _tmp36_);
#line 1091 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
		_tmp38_ = _tmp37_;
#line 1091 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
		_tmp39_ = i;
#line 1091 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
		len = _tmp35_ + (_tmp38_ * (_tmp39_ - 1));
#line 1093 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
		_tmp40_ = len;
#line 1093 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
		_tmp41_ = g_malloc (_tmp40_);
#line 1093 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
		res = _tmp41_;
#line 1094 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
		_tmp42_ = res;
#line 1094 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
		_tmp43_ = str_array;
#line 1094 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
		_tmp43__length1 = str_array_length1;
#line 1094 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
		_tmp44_ = _tmp43_[0];
#line 1094 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
		_tmp45_ = g_stpcpy ((void*) _tmp42_, (const gchar*) _tmp44_);
#line 1094 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
		ptr = _tmp45_;
#line 536 "VersionNumber.c"
		{
			gboolean _tmp46_ = FALSE;
#line 1095 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
			i = 1;
#line 1095 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
			_tmp46_ = TRUE;
#line 1095 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
			while (TRUE) {
#line 545 "VersionNumber.c"
				gint _tmp48_;
				gchar** _tmp49_;
				gint _tmp49__length1;
				void* _tmp50_;
				const gchar* _tmp51_;
				void* _tmp52_;
				const gchar* _tmp53_ = NULL;
				gchar** _tmp54_;
				gint _tmp54__length1;
				gint _tmp55_;
				const gchar* _tmp56_;
				void* _tmp60_;
				void* _tmp61_;
#line 1095 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
				if (!_tmp46_) {
#line 561 "VersionNumber.c"
					gint _tmp47_;
#line 1095 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
					_tmp47_ = i;
#line 1095 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
					i = _tmp47_ + 1;
#line 567 "VersionNumber.c"
				}
#line 1095 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
				_tmp46_ = FALSE;
#line 1095 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
				_tmp48_ = i;
#line 1095 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
				_tmp49_ = str_array;
#line 1095 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
				_tmp49__length1 = str_array_length1;
#line 1095 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
				if (!(_tmp48_ < _tmp49__length1)) {
#line 1095 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
					break;
#line 581 "VersionNumber.c"
				}
#line 1096 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
				_tmp50_ = ptr;
#line 1096 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
				_tmp51_ = separator;
#line 1096 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
				_tmp52_ = g_stpcpy (_tmp50_, (const gchar*) _tmp51_);
#line 1096 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
				ptr = _tmp52_;
#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
				_tmp54_ = str_array;
#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
				_tmp54__length1 = str_array_length1;
#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
				_tmp55_ = i;
#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
				_tmp56_ = _tmp54_[_tmp55_];
#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
				if (_tmp56_ != NULL) {
#line 601 "VersionNumber.c"
					gchar** _tmp57_;
					gint _tmp57__length1;
					gint _tmp58_;
					const gchar* _tmp59_;
#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
					_tmp57_ = str_array;
#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
					_tmp57__length1 = str_array_length1;
#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
					_tmp58_ = i;
#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
					_tmp59_ = _tmp57_[_tmp58_];
#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
					_tmp53_ = (const gchar*) _tmp59_;
#line 616 "VersionNumber.c"
				} else {
#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
					_tmp53_ = "";
#line 620 "VersionNumber.c"
				}
#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
				_tmp60_ = ptr;
#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
				_tmp61_ = g_stpcpy (_tmp60_, _tmp53_);
#line 1097 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
				ptr = _tmp61_;
#line 628 "VersionNumber.c"
			}
		}
#line 1100 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
		_tmp62_ = res;
#line 1100 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
		res = NULL;
#line 1100 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
		result = (gchar*) _tmp62_;
#line 1100 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
		return result;
#line 639 "VersionNumber.c"
	} else {
		gchar* _tmp63_;
#line 1102 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
		_tmp63_ = g_strdup ("");
#line 1102 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
		result = _tmp63_;
#line 1102 "/usr/share/vala-0.36/vapi/glib-2.0.vapi"
		return result;
#line 648 "VersionNumber.c"
	}
}


gchar* utils_version_number_to_string (UtilsVersionNumber* self) {
	gchar* result = NULL;
	gchar** version_items = NULL;
	gint* _tmp0_;
	gint _tmp0__length1;
	gchar** _tmp1_;
	gint version_items_length1;
	gint _version_items_size_;
	gchar** _tmp13_;
	gint _tmp13__length1;
	gchar* _tmp14_;
#line 27 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	g_return_val_if_fail (UTILS_IS_VERSION_NUMBER (self), NULL);
#line 28 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	_tmp0_ = self->priv->version;
#line 28 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	_tmp0__length1 = self->priv->version_length1;
#line 28 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	_tmp1_ = g_new0 (gchar*, _tmp0__length1 + 1);
#line 28 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	version_items = _tmp1_;
#line 28 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	version_items_length1 = _tmp0__length1;
#line 28 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	_version_items_size_ = version_items_length1;
#line 678 "VersionNumber.c"
	{
		gint i = 0;
#line 29 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
		i = 0;
#line 683 "VersionNumber.c"
		{
			gboolean _tmp2_ = FALSE;
#line 29 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
			_tmp2_ = TRUE;
#line 29 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
			while (TRUE) {
#line 690 "VersionNumber.c"
				gint _tmp4_;
				gint* _tmp5_;
				gint _tmp5__length1;
				gchar** _tmp6_;
				gint _tmp6__length1;
				gint _tmp7_;
				gint* _tmp8_;
				gint _tmp8__length1;
				gint _tmp9_;
				gint _tmp10_;
				gchar* _tmp11_;
				gchar* _tmp12_;
#line 29 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				if (!_tmp2_) {
#line 705 "VersionNumber.c"
					gint _tmp3_;
#line 29 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
					_tmp3_ = i;
#line 29 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
					i = _tmp3_ + 1;
#line 711 "VersionNumber.c"
				}
#line 29 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				_tmp2_ = FALSE;
#line 29 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				_tmp4_ = i;
#line 29 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				_tmp5_ = self->priv->version;
#line 29 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				_tmp5__length1 = self->priv->version_length1;
#line 29 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				if (!(_tmp4_ < _tmp5__length1)) {
#line 29 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
					break;
#line 725 "VersionNumber.c"
				}
#line 30 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				_tmp6_ = version_items;
#line 30 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				_tmp6__length1 = version_items_length1;
#line 30 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				_tmp7_ = i;
#line 30 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				_tmp8_ = self->priv->version;
#line 30 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				_tmp8__length1 = self->priv->version_length1;
#line 30 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				_tmp9_ = i;
#line 30 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				_tmp10_ = _tmp8_[_tmp9_];
#line 30 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				_tmp11_ = g_strdup_printf ("%i", _tmp10_);
#line 30 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				_g_free0 (_tmp6_[_tmp7_]);
#line 30 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				_tmp6_[_tmp7_] = _tmp11_;
#line 30 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				_tmp12_ = _tmp6_[_tmp7_];
#line 749 "VersionNumber.c"
			}
		}
	}
#line 31 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	_tmp13_ = version_items;
#line 31 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	_tmp13__length1 = version_items_length1;
#line 31 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	_tmp14_ = _vala_g_strjoinv (".", _tmp13_, _tmp13__length1);
#line 31 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	result = _tmp14_;
#line 31 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	version_items = (_vala_array_free (version_items, version_items_length1, (GDestroyNotify) g_free), NULL);
#line 31 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	return result;
#line 765 "VersionNumber.c"
}


static gint utils_version_number_real_compare_to (GeeComparable* base, UtilsVersionNumber* other) {
	UtilsVersionNumber * self;
	gint result = 0;
	gint _tmp0_ = 0;
	gint* _tmp1_;
	gint _tmp1__length1;
	UtilsVersionNumber* _tmp2_;
	gint* _tmp3_;
	gint _tmp3__length1;
	gint max_len = 0;
	gint res = 0;
#line 34 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (base, UTILS_TYPE_VERSION_NUMBER, UtilsVersionNumber);
#line 34 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	g_return_val_if_fail (UTILS_IS_VERSION_NUMBER (other), 0);
#line 35 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	_tmp1_ = self->priv->version;
#line 35 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	_tmp1__length1 = self->priv->version_length1;
#line 35 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	_tmp2_ = other;
#line 35 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	_tmp3_ = _tmp2_->priv->version;
#line 35 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	_tmp3__length1 = _tmp2_->priv->version_length1;
#line 35 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	if (_tmp1__length1 > _tmp3__length1) {
#line 796 "VersionNumber.c"
		gint* _tmp4_;
		gint _tmp4__length1;
#line 36 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
		_tmp4_ = self->priv->version;
#line 36 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
		_tmp4__length1 = self->priv->version_length1;
#line 36 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
		_tmp0_ = _tmp4__length1;
#line 805 "VersionNumber.c"
	} else {
		UtilsVersionNumber* _tmp5_;
		gint* _tmp6_;
		gint _tmp6__length1;
#line 36 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
		_tmp5_ = other;
#line 36 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
		_tmp6_ = _tmp5_->priv->version;
#line 36 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
		_tmp6__length1 = _tmp5_->priv->version_length1;
#line 36 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
		_tmp0_ = _tmp6__length1;
#line 818 "VersionNumber.c"
	}
#line 35 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	max_len = _tmp0_;
#line 37 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	res = 0;
#line 824 "VersionNumber.c"
	{
		gint i = 0;
#line 38 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
		i = 0;
#line 829 "VersionNumber.c"
		{
			gboolean _tmp7_ = FALSE;
#line 38 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
			_tmp7_ = TRUE;
#line 38 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
			while (TRUE) {
#line 836 "VersionNumber.c"
				gint _tmp9_;
				gint _tmp10_;
				gint _tmp11_ = 0;
				gint _tmp12_;
				gint* _tmp13_;
				gint _tmp13__length1;
				gint this_v = 0;
				gint _tmp17_ = 0;
				gint _tmp18_;
				UtilsVersionNumber* _tmp19_;
				gint* _tmp20_;
				gint _tmp20__length1;
				gint other_v = 0;
				gint _tmp25_;
				gint _tmp26_;
				gint _tmp27_;
#line 38 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				if (!_tmp7_) {
#line 855 "VersionNumber.c"
					gint _tmp8_;
#line 38 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
					_tmp8_ = i;
#line 38 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
					i = _tmp8_ + 1;
#line 861 "VersionNumber.c"
				}
#line 38 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				_tmp7_ = FALSE;
#line 38 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				_tmp9_ = i;
#line 38 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				_tmp10_ = max_len;
#line 38 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				if (!(_tmp9_ < _tmp10_)) {
#line 38 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
					break;
#line 873 "VersionNumber.c"
				}
#line 39 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				_tmp12_ = i;
#line 39 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				_tmp13_ = self->priv->version;
#line 39 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				_tmp13__length1 = self->priv->version_length1;
#line 39 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				if (_tmp12_ < _tmp13__length1) {
#line 883 "VersionNumber.c"
					gint* _tmp14_;
					gint _tmp14__length1;
					gint _tmp15_;
					gint _tmp16_;
#line 39 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
					_tmp14_ = self->priv->version;
#line 39 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
					_tmp14__length1 = self->priv->version_length1;
#line 39 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
					_tmp15_ = i;
#line 39 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
					_tmp16_ = _tmp14_[_tmp15_];
#line 39 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
					_tmp11_ = _tmp16_;
#line 898 "VersionNumber.c"
				} else {
#line 39 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
					_tmp11_ = 0;
#line 902 "VersionNumber.c"
				}
#line 39 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				this_v = _tmp11_;
#line 40 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				_tmp18_ = i;
#line 40 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				_tmp19_ = other;
#line 40 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				_tmp20_ = _tmp19_->priv->version;
#line 40 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				_tmp20__length1 = _tmp19_->priv->version_length1;
#line 40 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				if (_tmp18_ < _tmp20__length1) {
#line 916 "VersionNumber.c"
					UtilsVersionNumber* _tmp21_;
					gint* _tmp22_;
					gint _tmp22__length1;
					gint _tmp23_;
					gint _tmp24_;
#line 40 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
					_tmp21_ = other;
#line 40 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
					_tmp22_ = _tmp21_->priv->version;
#line 40 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
					_tmp22__length1 = _tmp21_->priv->version_length1;
#line 40 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
					_tmp23_ = i;
#line 40 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
					_tmp24_ = _tmp22_[_tmp23_];
#line 40 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
					_tmp17_ = _tmp24_;
#line 934 "VersionNumber.c"
				} else {
#line 40 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
					_tmp17_ = 0;
#line 938 "VersionNumber.c"
				}
#line 40 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				other_v = _tmp17_;
#line 41 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				_tmp25_ = this_v;
#line 41 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				_tmp26_ = other_v;
#line 41 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				res = _tmp25_ - _tmp26_;
#line 42 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				_tmp27_ = res;
#line 42 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
				if (_tmp27_ != 0) {
#line 43 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
					break;
#line 954 "VersionNumber.c"
				}
			}
		}
	}
#line 45 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	result = res;
#line 45 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	return result;
#line 963 "VersionNumber.c"
}


static void utils_version_number_class_init (UtilsVersionNumberClass * klass) {
#line 13 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	utils_version_number_parent_class = g_type_class_peek_parent (klass);
#line 13 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	g_type_class_add_private (klass, sizeof (UtilsVersionNumberPrivate));
#line 13 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	G_OBJECT_CLASS (klass)->finalize = utils_version_number_finalize;
#line 974 "VersionNumber.c"
}


static void utils_version_number_gee_comparable_interface_init (GeeComparableIface * iface) {
#line 13 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	utils_version_number_gee_comparable_parent_iface = g_type_interface_peek_parent (iface);
#line 13 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	iface->compare_to = (gint (*) (GeeComparable *, gconstpointer)) utils_version_number_real_compare_to;
#line 983 "VersionNumber.c"
}


static void utils_version_number_instance_init (UtilsVersionNumber * self) {
#line 13 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	self->priv = UTILS_VERSION_NUMBER_GET_PRIVATE (self);
#line 990 "VersionNumber.c"
}


static void utils_version_number_finalize (GObject * obj) {
	UtilsVersionNumber * self;
#line 13 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, UTILS_TYPE_VERSION_NUMBER, UtilsVersionNumber);
#line 14 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	self->priv->version = (g_free (self->priv->version), NULL);
#line 13 "/home/jens/Source/shotwell/plugins/shotwell-data-imports/VersionNumber.vala"
	G_OBJECT_CLASS (utils_version_number_parent_class)->finalize (obj);
#line 1002 "VersionNumber.c"
}


/**
 * A class that represents a version number in the form x.y.z and is able to compare
 * different versions.
 */
GType utils_version_number_get_type (void) {
	static volatile gsize utils_version_number_type_id__volatile = 0;
	if (g_once_init_enter (&utils_version_number_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (UtilsVersionNumberClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) utils_version_number_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (UtilsVersionNumber), 0, (GInstanceInitFunc) utils_version_number_instance_init, NULL };
		static const GInterfaceInfo gee_comparable_info = { (GInterfaceInitFunc) utils_version_number_gee_comparable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
		GType utils_version_number_type_id;
		utils_version_number_type_id = g_type_register_static (G_TYPE_OBJECT, "UtilsVersionNumber", &g_define_type_info, 0);
		g_type_add_interface_static (utils_version_number_type_id, GEE_TYPE_COMPARABLE, &gee_comparable_info);
		g_once_init_leave (&utils_version_number_type_id__volatile, utils_version_number_type_id);
	}
	return utils_version_number_type_id__volatile;
}


static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
	if ((array != NULL) && (destroy_func != NULL)) {
		int 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, gint array_length, GDestroyNotify destroy_func) {
	_vala_array_destroy (array, array_length, destroy_func);
	g_free (array);
}


static gint _vala_array_length (gpointer array) {
	int length;
	length = 0;
	if (array) {
		while (((gpointer*) array)[length]) {
			length++;
		}
	}
	return length;
}



