diff options
Diffstat (limited to 'src/core/Alteration.c')
-rw-r--r-- | src/core/Alteration.c | 2918 |
1 files changed, 2918 insertions, 0 deletions
diff --git a/src/core/Alteration.c b/src/core/Alteration.c new file mode 100644 index 0000000..2bb624a --- /dev/null +++ b/src/core/Alteration.c @@ -0,0 +1,2918 @@ +/* Alteration.c generated by valac 0.32.1, the Vala compiler + * generated from Alteration.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. + */ +/**/ +/* Alteration represents a description of what has changed in the DataObject (reported via the*/ +/* "altered" signal). Since the descriptions can vary wildly depending on the semantics of each*/ +/* DataObject, no assumptions or requirements are placed on Alteration other than it must have*/ +/* one or more "subjects", each with a "detail". Subscribers to the "altered" signal can query*/ +/* the Alteration object to determine if the change is important to them.*/ +/**/ +/* Alteration is an immutable type. This means it's possible to store const Alterations of oft-used*/ +/* values for reuse.*/ +/**/ +/* Alterations may be compressed, merging their subjects and details into a new aggregated*/ +/* Alteration. Generally this is handled automatically by DataObject and DataCollection, when*/ +/* necessary.*/ +/**/ +/* NOTE: subjects and details should be ASCII labels (as in, plain-old ASCII, no code pages).*/ +/* They are treated as case-sensitive strings.*/ +/**/ +/* Recommended subjects include: image, thumbnail, metadata.*/ +/**/ + +#include <glib.h> +#include <glib-object.h> +#include <stdlib.h> +#include <string.h> +#include <gee.h> +#include <gobject/gvaluecollector.h> + + +#define TYPE_ALTERATION (alteration_get_type ()) +#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration)) +#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass)) +#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION)) +#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION)) +#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass)) + +typedef struct _Alteration Alteration; +typedef struct _AlterationClass AlterationClass; +typedef struct _AlterationPrivate AlterationPrivate; +#define _g_free0(var) (var = (g_free (var), NULL)) +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) +typedef struct _ParamSpecAlteration ParamSpecAlteration; +#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg); +#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; } +#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; } +#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg); + +struct _Alteration { + GTypeInstance parent_instance; + volatile int ref_count; + AlterationPrivate * priv; +}; + +struct _AlterationClass { + GTypeClass parent_class; + void (*finalize) (Alteration *self); +}; + +struct _AlterationPrivate { + gchar* subject; + gchar* detail; + GeeMultiMap* map; +}; + +struct _ParamSpecAlteration { + GParamSpec parent_instance; +}; + + +static gpointer alteration_parent_class = NULL; + +gpointer alteration_ref (gpointer instance); +void alteration_unref (gpointer instance); +GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); +void value_set_alteration (GValue* value, gpointer v_object); +void value_take_alteration (GValue* value, gpointer v_object); +gpointer value_get_alteration (const GValue* value); +GType alteration_get_type (void) G_GNUC_CONST; +#define ALTERATION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ALTERATION, AlterationPrivate)) +enum { + ALTERATION_DUMMY_PROPERTY +}; +Alteration* alteration_new (const gchar* subject, const gchar* detail); +Alteration* alteration_construct (GType object_type, const gchar* subject, const gchar* detail); +static void alteration_add_detail (Alteration* self, const gchar* sub, const gchar* det); +Alteration* alteration_new_from_list (const gchar* list); +Alteration* alteration_construct_from_list (GType object_type, const gchar* list); +Alteration* alteration_new_from_array (gchar** array, int array_length1); +Alteration* alteration_construct_from_array (GType object_type, gchar** array, int array_length1); +static Alteration* alteration_new_from_map (GeeMultiMap* map); +static Alteration* alteration_construct_from_map (GType object_type, GeeMultiMap* map); +static GeeMultiMap* alteration_create_map (Alteration* self); +static guint alteration_case_hash (const gchar* a); +static guint _alteration_case_hash_gee_hash_data_func (gconstpointer v, gpointer self); +static gboolean alteration_case_equal (const gchar* a, const gchar* b); +static gboolean _alteration_case_equal_gee_equal_data_func (gconstpointer a, gconstpointer b, gpointer self); +static inline gboolean alteration_equal_values (const gchar* str1, const gchar* str2); +static inline guint alteration_hash_value (const gchar* str); +gboolean alteration_has_subject (Alteration* self, const gchar* subject); +gboolean alteration_has_detail (Alteration* self, const gchar* subject, const gchar* detail); +GeeCollection* alteration_get_details (Alteration* self, const gchar* subject); +gchar* alteration_to_string (Alteration* self); +gboolean alteration_contains_any (Alteration* self, Alteration* other); +gboolean alteration_equals (Alteration* self, Alteration* other); +static void alteration_multimap_add_all (GeeMultiMap* dest, GeeMultiMap* src); +Alteration* alteration_compress (Alteration* self, Alteration* other); +static void alteration_finalize (Alteration* 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); + + +Alteration* alteration_construct (GType object_type, const gchar* subject, const gchar* detail) { + Alteration* self = NULL; + const gchar* _tmp0_ = NULL; + const gchar* _tmp1_ = NULL; +#line 32 "/home/jens/Source/shotwell/src/core/Alteration.vala" + g_return_val_if_fail (subject != NULL, NULL); +#line 32 "/home/jens/Source/shotwell/src/core/Alteration.vala" + g_return_val_if_fail (detail != NULL, NULL); +#line 32 "/home/jens/Source/shotwell/src/core/Alteration.vala" + self = (Alteration*) g_type_create_instance (object_type); +#line 33 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp0_ = subject; +#line 33 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp1_ = detail; +#line 33 "/home/jens/Source/shotwell/src/core/Alteration.vala" + alteration_add_detail (self, _tmp0_, _tmp1_); +#line 32 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return self; +#line 139 "Alteration.c" +} + + +Alteration* alteration_new (const gchar* subject, const gchar* detail) { +#line 32 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return alteration_construct (TYPE_ALTERATION, subject, detail); +#line 146 "Alteration.c" +} + + +Alteration* alteration_construct_from_list (GType object_type, const gchar* list) { + Alteration* self = NULL; + const gchar* _tmp0_ = NULL; + gint _tmp1_ = 0; + gint _tmp2_ = 0; + gchar** pairs = NULL; + const gchar* _tmp3_ = NULL; + gchar** _tmp4_ = NULL; + gchar** _tmp5_ = NULL; + gint pairs_length1 = 0; + gint _pairs_size_ = 0; + gchar** _tmp6_ = NULL; + gint _tmp6__length1 = 0; + gchar** _tmp7_ = NULL; + gint _tmp7__length1 = 0; +#line 38 "/home/jens/Source/shotwell/src/core/Alteration.vala" + g_return_val_if_fail (list != NULL, NULL); +#line 38 "/home/jens/Source/shotwell/src/core/Alteration.vala" + self = (Alteration*) g_type_create_instance (object_type); +#line 38 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp0_ = list; +#line 38 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp1_ = strlen (_tmp0_); +#line 38 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp2_ = _tmp1_; +#line 38 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _vala_return_val_if_fail (_tmp2_ > 0, "list.length > 0", NULL); +#line 39 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp3_ = list; +#line 39 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp5_ = _tmp4_ = g_strsplit (_tmp3_, ",", 0); +#line 39 "/home/jens/Source/shotwell/src/core/Alteration.vala" + pairs = _tmp5_; +#line 39 "/home/jens/Source/shotwell/src/core/Alteration.vala" + pairs_length1 = _vala_array_length (_tmp4_); +#line 39 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _pairs_size_ = pairs_length1; +#line 40 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp6_ = pairs; +#line 40 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp6__length1 = pairs_length1; +#line 40 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _vala_assert (_tmp6__length1 >= 1, "pairs.length >= 1"); +#line 42 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp7_ = pairs; +#line 42 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp7__length1 = pairs_length1; +#line 197 "Alteration.c" + { + gchar** pair_collection = NULL; + gint pair_collection_length1 = 0; + gint _pair_collection_size_ = 0; + gint pair_it = 0; +#line 42 "/home/jens/Source/shotwell/src/core/Alteration.vala" + pair_collection = _tmp7_; +#line 42 "/home/jens/Source/shotwell/src/core/Alteration.vala" + pair_collection_length1 = _tmp7__length1; +#line 42 "/home/jens/Source/shotwell/src/core/Alteration.vala" + for (pair_it = 0; pair_it < _tmp7__length1; pair_it = pair_it + 1) { +#line 209 "Alteration.c" + gchar* _tmp8_ = NULL; + gchar* pair = NULL; +#line 42 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp8_ = g_strdup (pair_collection[pair_it]); +#line 42 "/home/jens/Source/shotwell/src/core/Alteration.vala" + pair = _tmp8_; +#line 216 "Alteration.c" + { + gchar** subject_detail = NULL; + const gchar* _tmp9_ = NULL; + gchar** _tmp10_ = NULL; + gchar** _tmp11_ = NULL; + gint subject_detail_length1 = 0; + gint _subject_detail_size_ = 0; + gchar** _tmp12_ = NULL; + gint _tmp12__length1 = 0; + gchar** _tmp13_ = NULL; + gint _tmp13__length1 = 0; + const gchar* _tmp14_ = NULL; + gchar** _tmp15_ = NULL; + gint _tmp15__length1 = 0; + const gchar* _tmp16_ = NULL; +#line 43 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp9_ = pair; +#line 43 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp11_ = _tmp10_ = g_strsplit (_tmp9_, ":", 2); +#line 43 "/home/jens/Source/shotwell/src/core/Alteration.vala" + subject_detail = _tmp11_; +#line 43 "/home/jens/Source/shotwell/src/core/Alteration.vala" + subject_detail_length1 = _vala_array_length (_tmp10_); +#line 43 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _subject_detail_size_ = subject_detail_length1; +#line 44 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp12_ = subject_detail; +#line 44 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp12__length1 = subject_detail_length1; +#line 44 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _vala_assert (_tmp12__length1 == 2, "subject_detail.length == 2"); +#line 46 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp13_ = subject_detail; +#line 46 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp13__length1 = subject_detail_length1; +#line 46 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp14_ = _tmp13_[0]; +#line 46 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp15_ = subject_detail; +#line 46 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp15__length1 = subject_detail_length1; +#line 46 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp16_ = _tmp15_[1]; +#line 46 "/home/jens/Source/shotwell/src/core/Alteration.vala" + alteration_add_detail (self, _tmp14_, _tmp16_); +#line 42 "/home/jens/Source/shotwell/src/core/Alteration.vala" + subject_detail = (_vala_array_free (subject_detail, subject_detail_length1, (GDestroyNotify) g_free), NULL); +#line 42 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_free0 (pair); +#line 266 "Alteration.c" + } + } + } +#line 38 "/home/jens/Source/shotwell/src/core/Alteration.vala" + pairs = (_vala_array_free (pairs, pairs_length1, (GDestroyNotify) g_free), NULL); +#line 38 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return self; +#line 274 "Alteration.c" +} + + +Alteration* alteration_new_from_list (const gchar* list) { +#line 38 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return alteration_construct_from_list (TYPE_ALTERATION, list); +#line 281 "Alteration.c" +} + + +Alteration* alteration_construct_from_array (GType object_type, gchar** array, int array_length1) { + Alteration* self = NULL; + gchar** _tmp0_ = NULL; + gint _tmp0__length1 = 0; + gchar** _tmp1_ = NULL; + gint _tmp1__length1 = 0; +#line 52 "/home/jens/Source/shotwell/src/core/Alteration.vala" + self = (Alteration*) g_type_create_instance (object_type); +#line 52 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp0_ = array; +#line 52 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp0__length1 = array_length1; +#line 52 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _vala_return_val_if_fail (_tmp0__length1 > 0, "array.length > 0", NULL); +#line 53 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp1_ = array; +#line 53 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp1__length1 = array_length1; +#line 303 "Alteration.c" + { + gchar** pair_collection = NULL; + gint pair_collection_length1 = 0; + gint _pair_collection_size_ = 0; + gint pair_it = 0; +#line 53 "/home/jens/Source/shotwell/src/core/Alteration.vala" + pair_collection = _tmp1_; +#line 53 "/home/jens/Source/shotwell/src/core/Alteration.vala" + pair_collection_length1 = _tmp1__length1; +#line 53 "/home/jens/Source/shotwell/src/core/Alteration.vala" + for (pair_it = 0; pair_it < _tmp1__length1; pair_it = pair_it + 1) { +#line 315 "Alteration.c" + gchar* _tmp2_ = NULL; + gchar* pair = NULL; +#line 53 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp2_ = g_strdup (pair_collection[pair_it]); +#line 53 "/home/jens/Source/shotwell/src/core/Alteration.vala" + pair = _tmp2_; +#line 322 "Alteration.c" + { + gchar** subject_detail = NULL; + const gchar* _tmp3_ = NULL; + gchar** _tmp4_ = NULL; + gchar** _tmp5_ = NULL; + gint subject_detail_length1 = 0; + gint _subject_detail_size_ = 0; + gchar** _tmp6_ = NULL; + gint _tmp6__length1 = 0; + gchar** _tmp7_ = NULL; + gint _tmp7__length1 = 0; + const gchar* _tmp8_ = NULL; + gchar** _tmp9_ = NULL; + gint _tmp9__length1 = 0; + const gchar* _tmp10_ = NULL; +#line 54 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp3_ = pair; +#line 54 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp5_ = _tmp4_ = g_strsplit (_tmp3_, ":", 2); +#line 54 "/home/jens/Source/shotwell/src/core/Alteration.vala" + subject_detail = _tmp5_; +#line 54 "/home/jens/Source/shotwell/src/core/Alteration.vala" + subject_detail_length1 = _vala_array_length (_tmp4_); +#line 54 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _subject_detail_size_ = subject_detail_length1; +#line 55 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp6_ = subject_detail; +#line 55 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp6__length1 = subject_detail_length1; +#line 55 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _vala_assert (_tmp6__length1 == 2, "subject_detail.length == 2"); +#line 57 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp7_ = subject_detail; +#line 57 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp7__length1 = subject_detail_length1; +#line 57 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp8_ = _tmp7_[0]; +#line 57 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp9_ = subject_detail; +#line 57 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp9__length1 = subject_detail_length1; +#line 57 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp10_ = _tmp9_[1]; +#line 57 "/home/jens/Source/shotwell/src/core/Alteration.vala" + alteration_add_detail (self, _tmp8_, _tmp10_); +#line 53 "/home/jens/Source/shotwell/src/core/Alteration.vala" + subject_detail = (_vala_array_free (subject_detail, subject_detail_length1, (GDestroyNotify) g_free), NULL); +#line 53 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_free0 (pair); +#line 372 "Alteration.c" + } + } + } +#line 52 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return self; +#line 378 "Alteration.c" +} + + +Alteration* alteration_new_from_array (gchar** array, int array_length1) { +#line 52 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return alteration_construct_from_array (TYPE_ALTERATION, array, array_length1); +#line 385 "Alteration.c" +} + + +static gpointer _g_object_ref0 (gpointer self) { +#line 63 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return self ? g_object_ref (self) : NULL; +#line 392 "Alteration.c" +} + + +static Alteration* alteration_construct_from_map (GType object_type, GeeMultiMap* map) { + Alteration* self = NULL; + GeeMultiMap* _tmp0_ = NULL; + GeeMultiMap* _tmp1_ = NULL; +#line 62 "/home/jens/Source/shotwell/src/core/Alteration.vala" + g_return_val_if_fail (GEE_IS_MULTI_MAP (map), NULL); +#line 62 "/home/jens/Source/shotwell/src/core/Alteration.vala" + self = (Alteration*) g_type_create_instance (object_type); +#line 63 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp0_ = map; +#line 63 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp1_ = _g_object_ref0 (_tmp0_); +#line 63 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (self->priv->map); +#line 63 "/home/jens/Source/shotwell/src/core/Alteration.vala" + self->priv->map = _tmp1_; +#line 62 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return self; +#line 414 "Alteration.c" +} + + +static Alteration* alteration_new_from_map (GeeMultiMap* map) { +#line 62 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return alteration_construct_from_map (TYPE_ALTERATION, map); +#line 421 "Alteration.c" +} + + +static gchar* string_strip (const gchar* self) { + gchar* result = NULL; + gchar* _result_ = NULL; + gchar* _tmp0_ = NULL; + const gchar* _tmp1_ = NULL; +#line 1207 "/usr/share/vala-0.32/vapi/glib-2.0.vapi" + g_return_val_if_fail (self != NULL, NULL); +#line 1208 "/usr/share/vala-0.32/vapi/glib-2.0.vapi" + _tmp0_ = g_strdup (self); +#line 1208 "/usr/share/vala-0.32/vapi/glib-2.0.vapi" + _result_ = _tmp0_; +#line 1209 "/usr/share/vala-0.32/vapi/glib-2.0.vapi" + _tmp1_ = _result_; +#line 1209 "/usr/share/vala-0.32/vapi/glib-2.0.vapi" + g_strstrip (_tmp1_); +#line 1210 "/usr/share/vala-0.32/vapi/glib-2.0.vapi" + result = _result_; +#line 1210 "/usr/share/vala-0.32/vapi/glib-2.0.vapi" + return result; +#line 444 "Alteration.c" +} + + +static void alteration_add_detail (Alteration* self, const gchar* sub, const gchar* det) { + gchar* subject = NULL; + const gchar* _tmp0_ = NULL; + gchar* _tmp1_ = NULL; + const gchar* _tmp2_ = NULL; + gint _tmp3_ = 0; + gint _tmp4_ = 0; + gchar* detail = NULL; + const gchar* _tmp5_ = NULL; + gchar* _tmp6_ = NULL; + const gchar* _tmp7_ = NULL; + gint _tmp8_ = 0; + gint _tmp9_ = 0; + gboolean _tmp10_ = FALSE; + const gchar* _tmp11_ = NULL; + GeeMultiMap* _tmp18_ = NULL; + const gchar* _tmp20_ = NULL; + GeeMultiMap* _tmp25_ = NULL; + const gchar* _tmp26_ = NULL; + const gchar* _tmp27_ = NULL; +#line 66 "/home/jens/Source/shotwell/src/core/Alteration.vala" + g_return_if_fail (IS_ALTERATION (self)); +#line 66 "/home/jens/Source/shotwell/src/core/Alteration.vala" + g_return_if_fail (sub != NULL); +#line 66 "/home/jens/Source/shotwell/src/core/Alteration.vala" + g_return_if_fail (det != NULL); +#line 68 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp0_ = sub; +#line 68 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp1_ = string_strip (_tmp0_); +#line 68 "/home/jens/Source/shotwell/src/core/Alteration.vala" + subject = _tmp1_; +#line 69 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp2_ = subject; +#line 69 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp3_ = strlen (_tmp2_); +#line 69 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp4_ = _tmp3_; +#line 69 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _vala_assert (_tmp4_ > 0, "subject.length > 0"); +#line 71 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp5_ = det; +#line 71 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp6_ = string_strip (_tmp5_); +#line 71 "/home/jens/Source/shotwell/src/core/Alteration.vala" + detail = _tmp6_; +#line 72 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp7_ = detail; +#line 72 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp8_ = strlen (_tmp7_); +#line 72 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp9_ = _tmp8_; +#line 72 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _vala_assert (_tmp9_ > 0, "detail.length > 0"); +#line 75 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp11_ = self->priv->subject; +#line 75 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (_tmp11_ == NULL) { +#line 506 "Alteration.c" + GeeMultiMap* _tmp12_ = NULL; +#line 75 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp12_ = self->priv->map; +#line 75 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp10_ = _tmp12_ == NULL; +#line 512 "Alteration.c" + } else { +#line 75 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp10_ = FALSE; +#line 516 "Alteration.c" + } +#line 75 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (_tmp10_) { +#line 520 "Alteration.c" + const gchar* _tmp13_ = NULL; + const gchar* _tmp14_ = NULL; + gchar* _tmp15_ = NULL; + const gchar* _tmp16_ = NULL; + gchar* _tmp17_ = NULL; +#line 76 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp13_ = self->priv->detail; +#line 76 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _vala_assert (_tmp13_ == NULL, "this.detail == null"); +#line 78 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp14_ = subject; +#line 78 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp15_ = g_strdup (_tmp14_); +#line 78 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_free0 (self->priv->subject); +#line 78 "/home/jens/Source/shotwell/src/core/Alteration.vala" + self->priv->subject = _tmp15_; +#line 79 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp16_ = detail; +#line 79 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp17_ = g_strdup (_tmp16_); +#line 79 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_free0 (self->priv->detail); +#line 79 "/home/jens/Source/shotwell/src/core/Alteration.vala" + self->priv->detail = _tmp17_; +#line 81 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_free0 (detail); +#line 81 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_free0 (subject); +#line 81 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return; +#line 552 "Alteration.c" + } +#line 85 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp18_ = self->priv->map; +#line 85 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (_tmp18_ == NULL) { +#line 558 "Alteration.c" + GeeMultiMap* _tmp19_ = NULL; +#line 86 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp19_ = alteration_create_map (self); +#line 86 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (self->priv->map); +#line 86 "/home/jens/Source/shotwell/src/core/Alteration.vala" + self->priv->map = _tmp19_; +#line 566 "Alteration.c" + } +#line 89 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp20_ = self->priv->subject; +#line 89 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (_tmp20_ != NULL) { +#line 572 "Alteration.c" + const gchar* _tmp21_ = NULL; + GeeMultiMap* _tmp22_ = NULL; + const gchar* _tmp23_ = NULL; + const gchar* _tmp24_ = NULL; +#line 90 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp21_ = self->priv->detail; +#line 90 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _vala_assert (_tmp21_ != NULL, "this.detail != null"); +#line 92 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp22_ = self->priv->map; +#line 92 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp23_ = self->priv->subject; +#line 92 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp24_ = self->priv->detail; +#line 92 "/home/jens/Source/shotwell/src/core/Alteration.vala" + gee_multi_map_set (_tmp22_, _tmp23_, _tmp24_); +#line 93 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_free0 (self->priv->subject); +#line 93 "/home/jens/Source/shotwell/src/core/Alteration.vala" + self->priv->subject = NULL; +#line 94 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_free0 (self->priv->detail); +#line 94 "/home/jens/Source/shotwell/src/core/Alteration.vala" + self->priv->detail = NULL; +#line 597 "Alteration.c" + } +#line 98 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp25_ = self->priv->map; +#line 98 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp26_ = subject; +#line 98 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp27_ = detail; +#line 98 "/home/jens/Source/shotwell/src/core/Alteration.vala" + gee_multi_map_set (_tmp25_, _tmp26_, _tmp27_); +#line 66 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_free0 (detail); +#line 66 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_free0 (subject); +#line 611 "Alteration.c" +} + + +static guint _alteration_case_hash_gee_hash_data_func (gconstpointer v, gpointer self) { + guint result; + result = alteration_case_hash ((const gchar*) v); +#line 102 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return result; +#line 620 "Alteration.c" +} + + +static gboolean _alteration_case_equal_gee_equal_data_func (gconstpointer a, gconstpointer b, gpointer self) { + gboolean result; + result = alteration_case_equal ((const gchar*) a, (const gchar*) b); +#line 102 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return result; +#line 629 "Alteration.c" +} + + +static GeeMultiMap* alteration_create_map (Alteration* self) { + GeeMultiMap* result = NULL; + GeeHashMultiMap* _tmp0_ = NULL; +#line 101 "/home/jens/Source/shotwell/src/core/Alteration.vala" + g_return_val_if_fail (IS_ALTERATION (self), NULL); +#line 102 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp0_ = gee_hash_multi_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, _alteration_case_hash_gee_hash_data_func, NULL, NULL, _alteration_case_equal_gee_equal_data_func, NULL, NULL, _alteration_case_hash_gee_hash_data_func, NULL, NULL, _alteration_case_equal_gee_equal_data_func, NULL, NULL); +#line 102 "/home/jens/Source/shotwell/src/core/Alteration.vala" + result = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_MULTI_MAP, GeeMultiMap); +#line 102 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return result; +#line 644 "Alteration.c" +} + + +static gboolean alteration_case_equal (const gchar* a, const gchar* b) { + gboolean result = FALSE; + const gchar* _tmp0_ = NULL; + const gchar* _tmp1_ = NULL; + gboolean _tmp2_ = FALSE; +#line 106 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp0_ = a; +#line 106 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp1_ = b; +#line 106 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp2_ = alteration_equal_values (_tmp0_, _tmp1_); +#line 106 "/home/jens/Source/shotwell/src/core/Alteration.vala" + result = _tmp2_; +#line 106 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return result; +#line 663 "Alteration.c" +} + + +static guint alteration_case_hash (const gchar* a) { + guint result = 0U; + const gchar* _tmp0_ = NULL; + guint _tmp1_ = 0U; +#line 110 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp0_ = a; +#line 110 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp1_ = alteration_hash_value (_tmp0_); +#line 110 "/home/jens/Source/shotwell/src/core/Alteration.vala" + result = _tmp1_; +#line 110 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return result; +#line 679 "Alteration.c" +} + + +static inline gboolean alteration_equal_values (const gchar* str1, const gchar* str2) { + gboolean result = FALSE; + const gchar* _tmp0_ = NULL; + const gchar* _tmp1_ = NULL; + gint _tmp2_ = 0; +#line 113 "/home/jens/Source/shotwell/src/core/Alteration.vala" + g_return_val_if_fail (str1 != NULL, FALSE); +#line 113 "/home/jens/Source/shotwell/src/core/Alteration.vala" + g_return_val_if_fail (str2 != NULL, FALSE); +#line 114 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp0_ = str1; +#line 114 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp1_ = str2; +#line 114 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp2_ = g_ascii_strcasecmp (_tmp0_, _tmp1_); +#line 114 "/home/jens/Source/shotwell/src/core/Alteration.vala" + result = _tmp2_ == 0; +#line 114 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return result; +#line 702 "Alteration.c" +} + + +static inline guint alteration_hash_value (const gchar* str) { + guint result = 0U; + GHashFunc _tmp0_ = NULL; + const gchar* _tmp1_ = NULL; + guint _tmp2_ = 0U; +#line 117 "/home/jens/Source/shotwell/src/core/Alteration.vala" + g_return_val_if_fail (str != NULL, 0U); +#line 118 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp0_ = g_str_hash; +#line 118 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp1_ = str; +#line 118 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp2_ = _tmp0_ (_tmp1_); +#line 118 "/home/jens/Source/shotwell/src/core/Alteration.vala" + result = _tmp2_; +#line 118 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return result; +#line 723 "Alteration.c" +} + + +gboolean alteration_has_subject (Alteration* self, const gchar* subject) { + gboolean result = FALSE; + const gchar* _tmp0_ = NULL; + GeeMultiMap* _tmp4_ = NULL; + GeeSet* keys = NULL; + GeeMultiMap* _tmp5_ = NULL; + GeeSet* _tmp6_ = NULL; + GeeSet* _tmp7_ = NULL; +#line 121 "/home/jens/Source/shotwell/src/core/Alteration.vala" + g_return_val_if_fail (IS_ALTERATION (self), FALSE); +#line 121 "/home/jens/Source/shotwell/src/core/Alteration.vala" + g_return_val_if_fail (subject != NULL, FALSE); +#line 122 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp0_ = self->priv->subject; +#line 122 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (_tmp0_ != NULL) { +#line 743 "Alteration.c" + const gchar* _tmp1_ = NULL; + const gchar* _tmp2_ = NULL; + gboolean _tmp3_ = FALSE; +#line 123 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp1_ = self->priv->subject; +#line 123 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp2_ = subject; +#line 123 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp3_ = alteration_equal_values (_tmp1_, _tmp2_); +#line 123 "/home/jens/Source/shotwell/src/core/Alteration.vala" + result = _tmp3_; +#line 123 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return result; +#line 757 "Alteration.c" + } +#line 125 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp4_ = self->priv->map; +#line 125 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _vala_assert (_tmp4_ != NULL, "map != null"); +#line 126 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp5_ = self->priv->map; +#line 126 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp6_ = gee_multi_map_get_keys (_tmp5_); +#line 126 "/home/jens/Source/shotwell/src/core/Alteration.vala" + keys = _tmp6_; +#line 127 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp7_ = keys; +#line 127 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (_tmp7_ != NULL) { +#line 773 "Alteration.c" + { + GeeIterator* _key_it = NULL; + GeeSet* _tmp8_ = NULL; + GeeIterator* _tmp9_ = NULL; +#line 128 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp8_ = keys; +#line 128 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp9_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_ITERABLE, GeeIterable)); +#line 128 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _key_it = _tmp9_; +#line 128 "/home/jens/Source/shotwell/src/core/Alteration.vala" + while (TRUE) { +#line 786 "Alteration.c" + GeeIterator* _tmp10_ = NULL; + gboolean _tmp11_ = FALSE; + gchar* key = NULL; + GeeIterator* _tmp12_ = NULL; + gpointer _tmp13_ = NULL; + const gchar* _tmp14_ = NULL; + const gchar* _tmp15_ = NULL; + gboolean _tmp16_ = FALSE; +#line 128 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp10_ = _key_it; +#line 128 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp11_ = gee_iterator_next (_tmp10_); +#line 128 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (!_tmp11_) { +#line 128 "/home/jens/Source/shotwell/src/core/Alteration.vala" + break; +#line 803 "Alteration.c" + } +#line 128 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp12_ = _key_it; +#line 128 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp13_ = gee_iterator_get (_tmp12_); +#line 128 "/home/jens/Source/shotwell/src/core/Alteration.vala" + key = (gchar*) _tmp13_; +#line 129 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp14_ = key; +#line 129 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp15_ = subject; +#line 129 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp16_ = alteration_equal_values (_tmp14_, _tmp15_); +#line 129 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (_tmp16_) { +#line 130 "/home/jens/Source/shotwell/src/core/Alteration.vala" + result = TRUE; +#line 130 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_free0 (key); +#line 130 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (_key_it); +#line 130 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (keys); +#line 130 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return result; +#line 829 "Alteration.c" + } +#line 128 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_free0 (key); +#line 833 "Alteration.c" + } +#line 128 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (_key_it); +#line 837 "Alteration.c" + } + } +#line 134 "/home/jens/Source/shotwell/src/core/Alteration.vala" + result = FALSE; +#line 134 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (keys); +#line 134 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return result; +#line 846 "Alteration.c" +} + + +gboolean alteration_has_detail (Alteration* self, const gchar* subject, const gchar* detail) { + gboolean result = FALSE; + gboolean _tmp0_ = FALSE; + const gchar* _tmp1_ = NULL; + GeeMultiMap* _tmp10_ = NULL; + GeeCollection* values = NULL; + GeeMultiMap* _tmp11_ = NULL; + const gchar* _tmp12_ = NULL; + GeeCollection* _tmp13_ = NULL; + GeeCollection* _tmp14_ = NULL; +#line 137 "/home/jens/Source/shotwell/src/core/Alteration.vala" + g_return_val_if_fail (IS_ALTERATION (self), FALSE); +#line 137 "/home/jens/Source/shotwell/src/core/Alteration.vala" + g_return_val_if_fail (subject != NULL, FALSE); +#line 137 "/home/jens/Source/shotwell/src/core/Alteration.vala" + g_return_val_if_fail (detail != NULL, FALSE); +#line 138 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp1_ = self->priv->subject; +#line 138 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (_tmp1_ != NULL) { +#line 870 "Alteration.c" + const gchar* _tmp2_ = NULL; +#line 138 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp2_ = self->priv->detail; +#line 138 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp0_ = _tmp2_ != NULL; +#line 876 "Alteration.c" + } else { +#line 138 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp0_ = FALSE; +#line 880 "Alteration.c" + } +#line 138 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (_tmp0_) { +#line 884 "Alteration.c" + gboolean _tmp3_ = FALSE; + const gchar* _tmp4_ = NULL; + const gchar* _tmp5_ = NULL; + gboolean _tmp6_ = FALSE; +#line 139 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp4_ = self->priv->subject; +#line 139 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp5_ = subject; +#line 139 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp6_ = alteration_equal_values (_tmp4_, _tmp5_); +#line 139 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (_tmp6_) { +#line 897 "Alteration.c" + const gchar* _tmp7_ = NULL; + const gchar* _tmp8_ = NULL; + gboolean _tmp9_ = FALSE; +#line 139 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp7_ = self->priv->detail; +#line 139 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp8_ = detail; +#line 139 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp9_ = alteration_equal_values (_tmp7_, _tmp8_); +#line 139 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp3_ = _tmp9_; +#line 909 "Alteration.c" + } else { +#line 139 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp3_ = FALSE; +#line 913 "Alteration.c" + } +#line 139 "/home/jens/Source/shotwell/src/core/Alteration.vala" + result = _tmp3_; +#line 139 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return result; +#line 919 "Alteration.c" + } +#line 141 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp10_ = self->priv->map; +#line 141 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _vala_assert (_tmp10_ != NULL, "map != null"); +#line 142 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp11_ = self->priv->map; +#line 142 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp12_ = subject; +#line 142 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp13_ = gee_multi_map_get (_tmp11_, _tmp12_); +#line 142 "/home/jens/Source/shotwell/src/core/Alteration.vala" + values = _tmp13_; +#line 143 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp14_ = values; +#line 143 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (_tmp14_ != NULL) { +#line 937 "Alteration.c" + { + GeeIterator* _value_it = NULL; + GeeCollection* _tmp15_ = NULL; + GeeIterator* _tmp16_ = NULL; +#line 144 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp15_ = values; +#line 144 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp16_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, GEE_TYPE_ITERABLE, GeeIterable)); +#line 144 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _value_it = _tmp16_; +#line 144 "/home/jens/Source/shotwell/src/core/Alteration.vala" + while (TRUE) { +#line 950 "Alteration.c" + GeeIterator* _tmp17_ = NULL; + gboolean _tmp18_ = FALSE; + gchar* value = NULL; + GeeIterator* _tmp19_ = NULL; + gpointer _tmp20_ = NULL; + const gchar* _tmp21_ = NULL; + const gchar* _tmp22_ = NULL; + gboolean _tmp23_ = FALSE; +#line 144 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp17_ = _value_it; +#line 144 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp18_ = gee_iterator_next (_tmp17_); +#line 144 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (!_tmp18_) { +#line 144 "/home/jens/Source/shotwell/src/core/Alteration.vala" + break; +#line 967 "Alteration.c" + } +#line 144 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp19_ = _value_it; +#line 144 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp20_ = gee_iterator_get (_tmp19_); +#line 144 "/home/jens/Source/shotwell/src/core/Alteration.vala" + value = (gchar*) _tmp20_; +#line 145 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp21_ = value; +#line 145 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp22_ = detail; +#line 145 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp23_ = alteration_equal_values (_tmp21_, _tmp22_); +#line 145 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (_tmp23_) { +#line 146 "/home/jens/Source/shotwell/src/core/Alteration.vala" + result = TRUE; +#line 146 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_free0 (value); +#line 146 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (_value_it); +#line 146 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (values); +#line 146 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return result; +#line 993 "Alteration.c" + } +#line 144 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_free0 (value); +#line 997 "Alteration.c" + } +#line 144 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (_value_it); +#line 1001 "Alteration.c" + } + } +#line 150 "/home/jens/Source/shotwell/src/core/Alteration.vala" + result = FALSE; +#line 150 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (values); +#line 150 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return result; +#line 1010 "Alteration.c" +} + + +GeeCollection* alteration_get_details (Alteration* self, const gchar* subject) { + GeeCollection* result = NULL; + gboolean _tmp0_ = FALSE; + gboolean _tmp1_ = FALSE; + const gchar* _tmp2_ = NULL; + GeeCollection* _tmp10_ = NULL; + GeeMultiMap* _tmp11_ = NULL; +#line 153 "/home/jens/Source/shotwell/src/core/Alteration.vala" + g_return_val_if_fail (IS_ALTERATION (self), NULL); +#line 153 "/home/jens/Source/shotwell/src/core/Alteration.vala" + g_return_val_if_fail (subject != NULL, NULL); +#line 154 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp2_ = self->priv->subject; +#line 154 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (_tmp2_ != NULL) { +#line 1029 "Alteration.c" + const gchar* _tmp3_ = NULL; +#line 154 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp3_ = self->priv->detail; +#line 154 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp1_ = _tmp3_ != NULL; +#line 1035 "Alteration.c" + } else { +#line 154 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp1_ = FALSE; +#line 1039 "Alteration.c" + } +#line 154 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (_tmp1_) { +#line 1043 "Alteration.c" + const gchar* _tmp4_ = NULL; + const gchar* _tmp5_ = NULL; + gboolean _tmp6_ = FALSE; +#line 154 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp4_ = self->priv->subject; +#line 154 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp5_ = subject; +#line 154 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp6_ = alteration_equal_values (_tmp4_, _tmp5_); +#line 154 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp0_ = _tmp6_; +#line 1055 "Alteration.c" + } else { +#line 154 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp0_ = FALSE; +#line 1059 "Alteration.c" + } +#line 154 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (_tmp0_) { +#line 1063 "Alteration.c" + GeeArrayList* details = NULL; + GeeArrayList* _tmp7_ = NULL; + GeeArrayList* _tmp8_ = NULL; + const gchar* _tmp9_ = NULL; +#line 155 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp7_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL); +#line 155 "/home/jens/Source/shotwell/src/core/Alteration.vala" + details = _tmp7_; +#line 156 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp8_ = details; +#line 156 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp9_ = self->priv->detail; +#line 156 "/home/jens/Source/shotwell/src/core/Alteration.vala" + gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp9_); +#line 158 "/home/jens/Source/shotwell/src/core/Alteration.vala" + result = G_TYPE_CHECK_INSTANCE_CAST (details, GEE_TYPE_COLLECTION, GeeCollection); +#line 158 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return result; +#line 1082 "Alteration.c" + } +#line 161 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp11_ = self->priv->map; +#line 161 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (_tmp11_ != NULL) { +#line 1088 "Alteration.c" + GeeMultiMap* _tmp12_ = NULL; + const gchar* _tmp13_ = NULL; + GeeCollection* _tmp14_ = NULL; +#line 161 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp12_ = self->priv->map; +#line 161 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp13_ = subject; +#line 161 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp14_ = gee_multi_map_get (_tmp12_, _tmp13_); +#line 161 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (_tmp10_); +#line 161 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp10_ = _tmp14_; +#line 1102 "Alteration.c" + } else { +#line 161 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (_tmp10_); +#line 161 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp10_ = NULL; +#line 1108 "Alteration.c" + } +#line 161 "/home/jens/Source/shotwell/src/core/Alteration.vala" + result = _tmp10_; +#line 161 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return result; +#line 1114 "Alteration.c" +} + + +gchar* alteration_to_string (Alteration* self) { + gchar* result = NULL; + const gchar* _tmp0_ = NULL; + GeeMultiMap* _tmp5_ = NULL; + gchar* str = NULL; + gchar* _tmp6_ = NULL; +#line 164 "/home/jens/Source/shotwell/src/core/Alteration.vala" + g_return_val_if_fail (IS_ALTERATION (self), NULL); +#line 165 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp0_ = self->priv->subject; +#line 165 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (_tmp0_ != NULL) { +#line 1130 "Alteration.c" + const gchar* _tmp1_ = NULL; + const gchar* _tmp2_ = NULL; + const gchar* _tmp3_ = NULL; + gchar* _tmp4_ = NULL; +#line 166 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp1_ = self->priv->detail; +#line 166 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _vala_assert (_tmp1_ != NULL, "detail != null"); +#line 168 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp2_ = self->priv->subject; +#line 168 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp3_ = self->priv->detail; +#line 168 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp4_ = g_strdup_printf ("%s:%s", _tmp2_, _tmp3_); +#line 168 "/home/jens/Source/shotwell/src/core/Alteration.vala" + result = _tmp4_; +#line 168 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return result; +#line 1149 "Alteration.c" + } +#line 171 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp5_ = self->priv->map; +#line 171 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _vala_assert (_tmp5_ != NULL, "map != null"); +#line 173 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp6_ = g_strdup (""); +#line 173 "/home/jens/Source/shotwell/src/core/Alteration.vala" + str = _tmp6_; +#line 1159 "Alteration.c" + { + GeeIterator* _key_it = NULL; + GeeMultiMap* _tmp7_ = NULL; + GeeSet* _tmp8_ = NULL; + GeeSet* _tmp9_ = NULL; + GeeIterator* _tmp10_ = NULL; + GeeIterator* _tmp11_ = NULL; +#line 174 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp7_ = self->priv->map; +#line 174 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp8_ = gee_multi_map_get_keys (_tmp7_); +#line 174 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp9_ = _tmp8_; +#line 174 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp10_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_ITERABLE, GeeIterable)); +#line 174 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp11_ = _tmp10_; +#line 174 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (_tmp9_); +#line 174 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _key_it = _tmp11_; +#line 174 "/home/jens/Source/shotwell/src/core/Alteration.vala" + while (TRUE) { +#line 1183 "Alteration.c" + GeeIterator* _tmp12_ = NULL; + gboolean _tmp13_ = FALSE; + gchar* key = NULL; + GeeIterator* _tmp14_ = NULL; + gpointer _tmp15_ = NULL; +#line 174 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp12_ = _key_it; +#line 174 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp13_ = gee_iterator_next (_tmp12_); +#line 174 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (!_tmp13_) { +#line 174 "/home/jens/Source/shotwell/src/core/Alteration.vala" + break; +#line 1197 "Alteration.c" + } +#line 174 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp14_ = _key_it; +#line 174 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp15_ = gee_iterator_get (_tmp14_); +#line 174 "/home/jens/Source/shotwell/src/core/Alteration.vala" + key = (gchar*) _tmp15_; +#line 1205 "Alteration.c" + { + GeeIterator* _value_it = NULL; + GeeMultiMap* _tmp16_ = NULL; + const gchar* _tmp17_ = NULL; + GeeCollection* _tmp18_ = NULL; + GeeCollection* _tmp19_ = NULL; + GeeIterator* _tmp20_ = NULL; + GeeIterator* _tmp21_ = NULL; +#line 175 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp16_ = self->priv->map; +#line 175 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp17_ = key; +#line 175 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp18_ = gee_multi_map_get (_tmp16_, _tmp17_); +#line 175 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp19_ = _tmp18_; +#line 175 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp20_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, GEE_TYPE_ITERABLE, GeeIterable)); +#line 175 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp21_ = _tmp20_; +#line 175 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (_tmp19_); +#line 175 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _value_it = _tmp21_; +#line 175 "/home/jens/Source/shotwell/src/core/Alteration.vala" + while (TRUE) { +#line 1232 "Alteration.c" + GeeIterator* _tmp22_ = NULL; + gboolean _tmp23_ = FALSE; + gchar* value = NULL; + GeeIterator* _tmp24_ = NULL; + gpointer _tmp25_ = NULL; + const gchar* _tmp26_ = NULL; + gint _tmp27_ = 0; + gint _tmp28_ = 0; + const gchar* _tmp31_ = NULL; + const gchar* _tmp32_ = NULL; + const gchar* _tmp33_ = NULL; + gchar* _tmp34_ = NULL; + gchar* _tmp35_ = NULL; + gchar* _tmp36_ = NULL; +#line 175 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp22_ = _value_it; +#line 175 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp23_ = gee_iterator_next (_tmp22_); +#line 175 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (!_tmp23_) { +#line 175 "/home/jens/Source/shotwell/src/core/Alteration.vala" + break; +#line 1255 "Alteration.c" + } +#line 175 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp24_ = _value_it; +#line 175 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp25_ = gee_iterator_get (_tmp24_); +#line 175 "/home/jens/Source/shotwell/src/core/Alteration.vala" + value = (gchar*) _tmp25_; +#line 176 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp26_ = str; +#line 176 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp27_ = strlen (_tmp26_); +#line 176 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp28_ = _tmp27_; +#line 176 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (_tmp28_ != 0) { +#line 1271 "Alteration.c" + const gchar* _tmp29_ = NULL; + gchar* _tmp30_ = NULL; +#line 177 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp29_ = str; +#line 177 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp30_ = g_strconcat (_tmp29_, ", ", NULL); +#line 177 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_free0 (str); +#line 177 "/home/jens/Source/shotwell/src/core/Alteration.vala" + str = _tmp30_; +#line 1282 "Alteration.c" + } +#line 179 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp31_ = str; +#line 179 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp32_ = key; +#line 179 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp33_ = value; +#line 179 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp34_ = g_strdup_printf ("%s:%s", _tmp32_, _tmp33_); +#line 179 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp35_ = _tmp34_; +#line 179 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp36_ = g_strconcat (_tmp31_, _tmp35_, NULL); +#line 179 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_free0 (str); +#line 179 "/home/jens/Source/shotwell/src/core/Alteration.vala" + str = _tmp36_; +#line 179 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_free0 (_tmp35_); +#line 175 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_free0 (value); +#line 1304 "Alteration.c" + } +#line 175 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (_value_it); +#line 1308 "Alteration.c" + } +#line 174 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_free0 (key); +#line 1312 "Alteration.c" + } +#line 174 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (_key_it); +#line 1316 "Alteration.c" + } +#line 183 "/home/jens/Source/shotwell/src/core/Alteration.vala" + result = str; +#line 183 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return result; +#line 1322 "Alteration.c" +} + + +gboolean alteration_contains_any (Alteration* self, Alteration* other) { + gboolean result = FALSE; + Alteration* _tmp0_ = NULL; + gboolean _tmp1_ = FALSE; + gboolean _tmp2_ = FALSE; + gboolean _tmp3_ = FALSE; + const gchar* _tmp4_ = NULL; + gboolean _tmp19_ = FALSE; + gboolean _tmp20_ = FALSE; + GeeMultiMap* _tmp21_ = NULL; + gboolean _tmp56_ = FALSE; + GeeMultiMap* _tmp57_ = NULL; +#line 187 "/home/jens/Source/shotwell/src/core/Alteration.vala" + g_return_val_if_fail (IS_ALTERATION (self), FALSE); +#line 187 "/home/jens/Source/shotwell/src/core/Alteration.vala" + g_return_val_if_fail (IS_ALTERATION (other), FALSE); +#line 189 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp0_ = other; +#line 189 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (self == _tmp0_) { +#line 190 "/home/jens/Source/shotwell/src/core/Alteration.vala" + result = TRUE; +#line 190 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return result; +#line 1350 "Alteration.c" + } +#line 193 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp4_ = self->priv->subject; +#line 193 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (_tmp4_ != NULL) { +#line 1356 "Alteration.c" + Alteration* _tmp5_ = NULL; + const gchar* _tmp6_ = NULL; +#line 193 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp5_ = other; +#line 193 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp6_ = _tmp5_->priv->subject; +#line 193 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp3_ = _tmp6_ != NULL; +#line 1365 "Alteration.c" + } else { +#line 193 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp3_ = FALSE; +#line 1369 "Alteration.c" + } +#line 193 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (_tmp3_) { +#line 1373 "Alteration.c" + const gchar* _tmp7_ = NULL; +#line 193 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp7_ = self->priv->detail; +#line 193 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp2_ = _tmp7_ != NULL; +#line 1379 "Alteration.c" + } else { +#line 193 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp2_ = FALSE; +#line 1383 "Alteration.c" + } +#line 193 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (_tmp2_) { +#line 1387 "Alteration.c" + Alteration* _tmp8_ = NULL; + const gchar* _tmp9_ = NULL; +#line 193 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp8_ = other; +#line 193 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp9_ = _tmp8_->priv->detail; +#line 193 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp1_ = _tmp9_ != NULL; +#line 1396 "Alteration.c" + } else { +#line 193 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp1_ = FALSE; +#line 1400 "Alteration.c" + } +#line 193 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (_tmp1_) { +#line 1404 "Alteration.c" + gboolean _tmp10_ = FALSE; + const gchar* _tmp11_ = NULL; + Alteration* _tmp12_ = NULL; + const gchar* _tmp13_ = NULL; + gboolean _tmp14_ = FALSE; +#line 194 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp11_ = self->priv->subject; +#line 194 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp12_ = other; +#line 194 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp13_ = _tmp12_->priv->subject; +#line 194 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp14_ = alteration_equal_values (_tmp11_, _tmp13_); +#line 194 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (_tmp14_) { +#line 1420 "Alteration.c" + const gchar* _tmp15_ = NULL; + Alteration* _tmp16_ = NULL; + const gchar* _tmp17_ = NULL; + gboolean _tmp18_ = FALSE; +#line 194 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp15_ = self->priv->detail; +#line 194 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp16_ = other; +#line 194 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp17_ = _tmp16_->priv->detail; +#line 194 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp18_ = alteration_equal_values (_tmp15_, _tmp17_); +#line 194 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp10_ = _tmp18_; +#line 1435 "Alteration.c" + } else { +#line 194 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp10_ = FALSE; +#line 1439 "Alteration.c" + } +#line 194 "/home/jens/Source/shotwell/src/core/Alteration.vala" + result = _tmp10_; +#line 194 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return result; +#line 1445 "Alteration.c" + } +#line 197 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp21_ = self->priv->map; +#line 197 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (_tmp21_ != NULL) { +#line 1451 "Alteration.c" + Alteration* _tmp22_ = NULL; + GeeMultiMap* _tmp23_ = NULL; +#line 197 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp22_ = other; +#line 197 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp23_ = _tmp22_->priv->map; +#line 197 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp20_ = _tmp23_ == NULL; +#line 1460 "Alteration.c" + } else { +#line 197 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp20_ = FALSE; +#line 1464 "Alteration.c" + } +#line 197 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (_tmp20_) { +#line 197 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp19_ = TRUE; +#line 1470 "Alteration.c" + } else { + gboolean _tmp24_ = FALSE; + GeeMultiMap* _tmp25_ = NULL; +#line 197 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp25_ = self->priv->map; +#line 197 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (_tmp25_ == NULL) { +#line 1478 "Alteration.c" + Alteration* _tmp26_ = NULL; + GeeMultiMap* _tmp27_ = NULL; +#line 197 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp26_ = other; +#line 197 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp27_ = _tmp26_->priv->map; +#line 197 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp24_ = _tmp27_ != NULL; +#line 1487 "Alteration.c" + } else { +#line 197 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp24_ = FALSE; +#line 1491 "Alteration.c" + } +#line 197 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp19_ = _tmp24_; +#line 1495 "Alteration.c" + } +#line 197 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (_tmp19_) { +#line 1499 "Alteration.c" + const gchar* _tmp28_ = NULL; + const gchar* _tmp29_ = NULL; + gchar* single_subject = NULL; + gchar* _tmp33_ = NULL; + const gchar* _tmp34_ = NULL; + const gchar* _tmp35_ = NULL; + gchar* single_detail = NULL; + gchar* _tmp39_ = NULL; + GeeMultiMap* _tmp40_ = NULL; + GeeMultiMap* _tmp41_ = NULL; + GeeMultiMap* multimap = NULL; + GeeMultiMap* _tmp45_ = NULL; + gboolean _tmp46_ = FALSE; + GeeMultiMap* _tmp47_ = NULL; + const gchar* _tmp48_ = NULL; + gboolean _tmp49_ = FALSE; +#line 198 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp29_ = self->priv->subject; +#line 198 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (_tmp29_ != NULL) { +#line 1520 "Alteration.c" + const gchar* _tmp30_ = NULL; +#line 198 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp30_ = self->priv->subject; +#line 198 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp28_ = _tmp30_; +#line 1526 "Alteration.c" + } else { + Alteration* _tmp31_ = NULL; + const gchar* _tmp32_ = NULL; +#line 198 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp31_ = other; +#line 198 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp32_ = _tmp31_->priv->subject; +#line 198 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp28_ = _tmp32_; +#line 1536 "Alteration.c" + } +#line 198 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp33_ = g_strdup (_tmp28_); +#line 198 "/home/jens/Source/shotwell/src/core/Alteration.vala" + single_subject = _tmp33_; +#line 199 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp35_ = self->priv->detail; +#line 199 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (_tmp35_ != NULL) { +#line 1546 "Alteration.c" + const gchar* _tmp36_ = NULL; +#line 199 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp36_ = self->priv->detail; +#line 199 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp34_ = _tmp36_; +#line 1552 "Alteration.c" + } else { + Alteration* _tmp37_ = NULL; + const gchar* _tmp38_ = NULL; +#line 199 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp37_ = other; +#line 199 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp38_ = _tmp37_->priv->detail; +#line 199 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp34_ = _tmp38_; +#line 1562 "Alteration.c" + } +#line 199 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp39_ = g_strdup (_tmp34_); +#line 199 "/home/jens/Source/shotwell/src/core/Alteration.vala" + single_detail = _tmp39_; +#line 200 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp41_ = self->priv->map; +#line 200 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (_tmp41_ != NULL) { +#line 1572 "Alteration.c" + GeeMultiMap* _tmp42_ = NULL; +#line 200 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp42_ = self->priv->map; +#line 200 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp40_ = _tmp42_; +#line 1578 "Alteration.c" + } else { + Alteration* _tmp43_ = NULL; + GeeMultiMap* _tmp44_ = NULL; +#line 200 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp43_ = other; +#line 200 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp44_ = _tmp43_->priv->map; +#line 200 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp40_ = _tmp44_; +#line 1588 "Alteration.c" + } +#line 200 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp45_ = _g_object_ref0 (_tmp40_); +#line 200 "/home/jens/Source/shotwell/src/core/Alteration.vala" + multimap = _tmp45_; +#line 202 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp47_ = multimap; +#line 202 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp48_ = single_subject; +#line 202 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp49_ = gee_multi_map_contains (_tmp47_, _tmp48_); +#line 202 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (_tmp49_) { +#line 1602 "Alteration.c" + GeeMultiMap* _tmp50_ = NULL; + const gchar* _tmp51_ = NULL; + GeeCollection* _tmp52_ = NULL; + GeeCollection* _tmp53_ = NULL; + const gchar* _tmp54_ = NULL; + gboolean _tmp55_ = FALSE; +#line 202 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp50_ = self->priv->map; +#line 202 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp51_ = single_subject; +#line 202 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp52_ = gee_multi_map_get (_tmp50_, _tmp51_); +#line 202 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp53_ = _tmp52_; +#line 202 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp54_ = single_detail; +#line 202 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp55_ = gee_collection_contains (_tmp53_, _tmp54_); +#line 202 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp46_ = _tmp55_; +#line 202 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (_tmp53_); +#line 1625 "Alteration.c" + } else { +#line 202 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp46_ = FALSE; +#line 1629 "Alteration.c" + } +#line 202 "/home/jens/Source/shotwell/src/core/Alteration.vala" + result = _tmp46_; +#line 202 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (multimap); +#line 202 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_free0 (single_detail); +#line 202 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_free0 (single_subject); +#line 202 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return result; +#line 1641 "Alteration.c" + } +#line 206 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp57_ = self->priv->map; +#line 206 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (_tmp57_ != NULL) { +#line 1647 "Alteration.c" + Alteration* _tmp58_ = NULL; + GeeMultiMap* _tmp59_ = NULL; +#line 206 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp58_ = other; +#line 206 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp59_ = _tmp58_->priv->map; +#line 206 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp56_ = _tmp59_ != NULL; +#line 1656 "Alteration.c" + } else { +#line 206 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp56_ = FALSE; +#line 1660 "Alteration.c" + } +#line 206 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (_tmp56_) { +#line 1664 "Alteration.c" + GeeSet* keys = NULL; + GeeMultiMap* _tmp60_ = NULL; + GeeSet* _tmp61_ = NULL; + GeeSet* _tmp62_ = NULL; + GeeSet* other_keys = NULL; + Alteration* _tmp63_ = NULL; + GeeMultiMap* _tmp64_ = NULL; + GeeSet* _tmp65_ = NULL; + GeeSet* _tmp66_ = NULL; +#line 207 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp60_ = self->priv->map; +#line 207 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp61_ = gee_multi_map_get_keys (_tmp60_); +#line 207 "/home/jens/Source/shotwell/src/core/Alteration.vala" + keys = _tmp61_; +#line 208 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp62_ = keys; +#line 208 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _vala_assert (_tmp62_ != NULL, "keys != null"); +#line 209 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp63_ = other; +#line 209 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp64_ = _tmp63_->priv->map; +#line 209 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp65_ = gee_multi_map_get_keys (_tmp64_); +#line 209 "/home/jens/Source/shotwell/src/core/Alteration.vala" + other_keys = _tmp65_; +#line 210 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp66_ = other_keys; +#line 210 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _vala_assert (_tmp66_ != NULL, "other_keys != null"); +#line 1696 "Alteration.c" + { + GeeIterator* _subject_it = NULL; + GeeSet* _tmp67_ = NULL; + GeeIterator* _tmp68_ = NULL; +#line 212 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp67_ = other_keys; +#line 212 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp68_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp67_, GEE_TYPE_ITERABLE, GeeIterable)); +#line 212 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _subject_it = _tmp68_; +#line 212 "/home/jens/Source/shotwell/src/core/Alteration.vala" + while (TRUE) { +#line 1709 "Alteration.c" + GeeIterator* _tmp69_ = NULL; + gboolean _tmp70_ = FALSE; + gchar* subject = NULL; + GeeIterator* _tmp71_ = NULL; + gpointer _tmp72_ = NULL; + GeeSet* _tmp73_ = NULL; + const gchar* _tmp74_ = NULL; + gboolean _tmp75_ = FALSE; + GeeCollection* details = NULL; + GeeMultiMap* _tmp76_ = NULL; + const gchar* _tmp77_ = NULL; + GeeCollection* _tmp78_ = NULL; + GeeCollection* other_details = NULL; + Alteration* _tmp79_ = NULL; + GeeMultiMap* _tmp80_ = NULL; + const gchar* _tmp81_ = NULL; + GeeCollection* _tmp82_ = NULL; + gboolean _tmp83_ = FALSE; + GeeCollection* _tmp84_ = NULL; +#line 212 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp69_ = _subject_it; +#line 212 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp70_ = gee_iterator_next (_tmp69_); +#line 212 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (!_tmp70_) { +#line 212 "/home/jens/Source/shotwell/src/core/Alteration.vala" + break; +#line 1737 "Alteration.c" + } +#line 212 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp71_ = _subject_it; +#line 212 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp72_ = gee_iterator_get (_tmp71_); +#line 212 "/home/jens/Source/shotwell/src/core/Alteration.vala" + subject = (gchar*) _tmp72_; +#line 213 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp73_ = keys; +#line 213 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp74_ = subject; +#line 213 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp75_ = gee_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp73_, GEE_TYPE_COLLECTION, GeeCollection), _tmp74_); +#line 213 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (!_tmp75_) { +#line 214 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_free0 (subject); +#line 214 "/home/jens/Source/shotwell/src/core/Alteration.vala" + continue; +#line 1757 "Alteration.c" + } +#line 216 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp76_ = self->priv->map; +#line 216 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp77_ = subject; +#line 216 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp78_ = gee_multi_map_get (_tmp76_, _tmp77_); +#line 216 "/home/jens/Source/shotwell/src/core/Alteration.vala" + details = _tmp78_; +#line 217 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp79_ = other; +#line 217 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp80_ = _tmp79_->priv->map; +#line 217 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp81_ = subject; +#line 217 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp82_ = gee_multi_map_get (_tmp80_, _tmp81_); +#line 217 "/home/jens/Source/shotwell/src/core/Alteration.vala" + other_details = _tmp82_; +#line 219 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp84_ = details; +#line 219 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (_tmp84_ != NULL) { +#line 1781 "Alteration.c" + GeeCollection* _tmp85_ = NULL; +#line 219 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp85_ = other_details; +#line 219 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp83_ = _tmp85_ != NULL; +#line 1787 "Alteration.c" + } else { +#line 219 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp83_ = FALSE; +#line 1791 "Alteration.c" + } +#line 219 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (_tmp83_) { +#line 1795 "Alteration.c" + { + GeeIterator* _detail_it = NULL; + GeeCollection* _tmp86_ = NULL; + GeeIterator* _tmp87_ = NULL; +#line 220 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp86_ = other_details; +#line 220 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp87_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp86_, GEE_TYPE_ITERABLE, GeeIterable)); +#line 220 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _detail_it = _tmp87_; +#line 220 "/home/jens/Source/shotwell/src/core/Alteration.vala" + while (TRUE) { +#line 1808 "Alteration.c" + GeeIterator* _tmp88_ = NULL; + gboolean _tmp89_ = FALSE; + gchar* detail = NULL; + GeeIterator* _tmp90_ = NULL; + gpointer _tmp91_ = NULL; + GeeCollection* _tmp92_ = NULL; + const gchar* _tmp93_ = NULL; + gboolean _tmp94_ = FALSE; +#line 220 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp88_ = _detail_it; +#line 220 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp89_ = gee_iterator_next (_tmp88_); +#line 220 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (!_tmp89_) { +#line 220 "/home/jens/Source/shotwell/src/core/Alteration.vala" + break; +#line 1825 "Alteration.c" + } +#line 220 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp90_ = _detail_it; +#line 220 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp91_ = gee_iterator_get (_tmp90_); +#line 220 "/home/jens/Source/shotwell/src/core/Alteration.vala" + detail = (gchar*) _tmp91_; +#line 221 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp92_ = details; +#line 221 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp93_ = detail; +#line 221 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp94_ = gee_collection_contains (_tmp92_, _tmp93_); +#line 221 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (_tmp94_) { +#line 222 "/home/jens/Source/shotwell/src/core/Alteration.vala" + result = TRUE; +#line 222 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_free0 (detail); +#line 222 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (_detail_it); +#line 222 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (other_details); +#line 222 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (details); +#line 222 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_free0 (subject); +#line 222 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (_subject_it); +#line 222 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (other_keys); +#line 222 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (keys); +#line 222 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return result; +#line 1861 "Alteration.c" + } +#line 220 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_free0 (detail); +#line 1865 "Alteration.c" + } +#line 220 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (_detail_it); +#line 1869 "Alteration.c" + } + } +#line 212 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (other_details); +#line 212 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (details); +#line 212 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_free0 (subject); +#line 1878 "Alteration.c" + } +#line 212 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (_subject_it); +#line 1882 "Alteration.c" + } +#line 206 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (other_keys); +#line 206 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (keys); +#line 1888 "Alteration.c" + } +#line 228 "/home/jens/Source/shotwell/src/core/Alteration.vala" + result = FALSE; +#line 228 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return result; +#line 1894 "Alteration.c" +} + + +gboolean alteration_equals (Alteration* self, Alteration* other) { + gboolean result = FALSE; + Alteration* _tmp0_ = NULL; + gboolean _tmp1_ = FALSE; + gboolean _tmp2_ = FALSE; + gboolean _tmp3_ = FALSE; + const gchar* _tmp4_ = NULL; + gboolean _tmp19_ = FALSE; + GeeMultiMap* _tmp20_ = NULL; +#line 231 "/home/jens/Source/shotwell/src/core/Alteration.vala" + g_return_val_if_fail (IS_ALTERATION (self), FALSE); +#line 231 "/home/jens/Source/shotwell/src/core/Alteration.vala" + g_return_val_if_fail (IS_ALTERATION (other), FALSE); +#line 233 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp0_ = other; +#line 233 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (self == _tmp0_) { +#line 234 "/home/jens/Source/shotwell/src/core/Alteration.vala" + result = TRUE; +#line 234 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return result; +#line 1919 "Alteration.c" + } +#line 237 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp4_ = self->priv->subject; +#line 237 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (_tmp4_ != NULL) { +#line 1925 "Alteration.c" + Alteration* _tmp5_ = NULL; + const gchar* _tmp6_ = NULL; +#line 237 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp5_ = other; +#line 237 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp6_ = _tmp5_->priv->subject; +#line 237 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp3_ = _tmp6_ != NULL; +#line 1934 "Alteration.c" + } else { +#line 237 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp3_ = FALSE; +#line 1938 "Alteration.c" + } +#line 237 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (_tmp3_) { +#line 1942 "Alteration.c" + const gchar* _tmp7_ = NULL; +#line 237 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp7_ = self->priv->detail; +#line 237 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp2_ = _tmp7_ != NULL; +#line 1948 "Alteration.c" + } else { +#line 237 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp2_ = FALSE; +#line 1952 "Alteration.c" + } +#line 237 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (_tmp2_) { +#line 1956 "Alteration.c" + Alteration* _tmp8_ = NULL; + const gchar* _tmp9_ = NULL; +#line 237 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp8_ = other; +#line 237 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp9_ = _tmp8_->priv->detail; +#line 237 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp1_ = _tmp9_ != NULL; +#line 1965 "Alteration.c" + } else { +#line 237 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp1_ = FALSE; +#line 1969 "Alteration.c" + } +#line 237 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (_tmp1_) { +#line 1973 "Alteration.c" + gboolean _tmp10_ = FALSE; + const gchar* _tmp11_ = NULL; + Alteration* _tmp12_ = NULL; + const gchar* _tmp13_ = NULL; + gboolean _tmp14_ = FALSE; +#line 238 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp11_ = self->priv->subject; +#line 238 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp12_ = other; +#line 238 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp13_ = _tmp12_->priv->subject; +#line 238 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp14_ = alteration_equal_values (_tmp11_, _tmp13_); +#line 238 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (_tmp14_) { +#line 1989 "Alteration.c" + const gchar* _tmp15_ = NULL; + Alteration* _tmp16_ = NULL; + const gchar* _tmp17_ = NULL; + gboolean _tmp18_ = FALSE; +#line 238 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp15_ = self->priv->detail; +#line 238 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp16_ = other; +#line 238 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp17_ = _tmp16_->priv->detail; +#line 238 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp18_ = alteration_equal_values (_tmp15_, _tmp17_); +#line 238 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp10_ = _tmp18_; +#line 2004 "Alteration.c" + } else { +#line 238 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp10_ = FALSE; +#line 2008 "Alteration.c" + } +#line 238 "/home/jens/Source/shotwell/src/core/Alteration.vala" + result = _tmp10_; +#line 238 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return result; +#line 2014 "Alteration.c" + } +#line 241 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp20_ = self->priv->map; +#line 241 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (_tmp20_ != NULL) { +#line 2020 "Alteration.c" + Alteration* _tmp21_ = NULL; + GeeMultiMap* _tmp22_ = NULL; +#line 241 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp21_ = other; +#line 241 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp22_ = _tmp21_->priv->map; +#line 241 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp19_ = _tmp22_ != NULL; +#line 2029 "Alteration.c" + } else { +#line 241 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp19_ = FALSE; +#line 2033 "Alteration.c" + } +#line 241 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (_tmp19_) { +#line 2037 "Alteration.c" + GeeSet* keys = NULL; + GeeMultiMap* _tmp23_ = NULL; + GeeSet* _tmp24_ = NULL; + GeeSet* _tmp25_ = NULL; + GeeSet* other_keys = NULL; + Alteration* _tmp26_ = NULL; + GeeMultiMap* _tmp27_ = NULL; + GeeSet* _tmp28_ = NULL; + GeeSet* _tmp29_ = NULL; + GeeSet* _tmp30_ = NULL; + gint _tmp31_ = 0; + gint _tmp32_ = 0; + GeeSet* _tmp33_ = NULL; + gint _tmp34_ = 0; + gint _tmp35_ = 0; + GeeSet* _tmp36_ = NULL; + GeeSet* _tmp37_ = NULL; + gboolean _tmp38_ = FALSE; + GeeSet* _tmp39_ = NULL; + GeeSet* _tmp40_ = NULL; + gboolean _tmp41_ = FALSE; +#line 243 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp23_ = self->priv->map; +#line 243 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp24_ = gee_multi_map_get_keys (_tmp23_); +#line 243 "/home/jens/Source/shotwell/src/core/Alteration.vala" + keys = _tmp24_; +#line 244 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp25_ = keys; +#line 244 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _vala_assert (_tmp25_ != NULL, "keys != null"); +#line 245 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp26_ = other; +#line 245 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp27_ = _tmp26_->priv->map; +#line 245 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp28_ = gee_multi_map_get_keys (_tmp27_); +#line 245 "/home/jens/Source/shotwell/src/core/Alteration.vala" + other_keys = _tmp28_; +#line 246 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp29_ = other_keys; +#line 246 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _vala_assert (_tmp29_ != NULL, "other_keys != null"); +#line 248 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp30_ = keys; +#line 248 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp31_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, GEE_TYPE_COLLECTION, GeeCollection)); +#line 248 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp32_ = _tmp31_; +#line 248 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp33_ = other_keys; +#line 248 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp34_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, GEE_TYPE_COLLECTION, GeeCollection)); +#line 248 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp35_ = _tmp34_; +#line 248 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (_tmp32_ != _tmp35_) { +#line 249 "/home/jens/Source/shotwell/src/core/Alteration.vala" + result = FALSE; +#line 249 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (other_keys); +#line 249 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (keys); +#line 249 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return result; +#line 2103 "Alteration.c" + } +#line 251 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp36_ = keys; +#line 251 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp37_ = other_keys; +#line 251 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp38_ = gee_collection_contains_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp36_, GEE_TYPE_COLLECTION, GeeCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp37_, GEE_TYPE_COLLECTION, GeeCollection)); +#line 251 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (!_tmp38_) { +#line 252 "/home/jens/Source/shotwell/src/core/Alteration.vala" + result = FALSE; +#line 252 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (other_keys); +#line 252 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (keys); +#line 252 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return result; +#line 2121 "Alteration.c" + } +#line 254 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp39_ = other_keys; +#line 254 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp40_ = keys; +#line 254 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp41_ = gee_collection_contains_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp39_, GEE_TYPE_COLLECTION, GeeCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp40_, GEE_TYPE_COLLECTION, GeeCollection)); +#line 254 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (!_tmp41_) { +#line 255 "/home/jens/Source/shotwell/src/core/Alteration.vala" + result = FALSE; +#line 255 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (other_keys); +#line 255 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (keys); +#line 255 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return result; +#line 2139 "Alteration.c" + } + { + GeeIterator* _key_it = NULL; + GeeSet* _tmp42_ = NULL; + GeeIterator* _tmp43_ = NULL; +#line 257 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp42_ = keys; +#line 257 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp43_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp42_, GEE_TYPE_ITERABLE, GeeIterable)); +#line 257 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _key_it = _tmp43_; +#line 257 "/home/jens/Source/shotwell/src/core/Alteration.vala" + while (TRUE) { +#line 2153 "Alteration.c" + GeeIterator* _tmp44_ = NULL; + gboolean _tmp45_ = FALSE; + gchar* key = NULL; + GeeIterator* _tmp46_ = NULL; + gpointer _tmp47_ = NULL; + GeeCollection* values = NULL; + GeeMultiMap* _tmp48_ = NULL; + const gchar* _tmp49_ = NULL; + GeeCollection* _tmp50_ = NULL; + GeeCollection* other_values = NULL; + Alteration* _tmp51_ = NULL; + GeeMultiMap* _tmp52_ = NULL; + const gchar* _tmp53_ = NULL; + GeeCollection* _tmp54_ = NULL; + GeeCollection* _tmp55_ = NULL; + gint _tmp56_ = 0; + gint _tmp57_ = 0; + GeeCollection* _tmp58_ = NULL; + gint _tmp59_ = 0; + gint _tmp60_ = 0; + GeeCollection* _tmp61_ = NULL; + GeeCollection* _tmp62_ = NULL; + gboolean _tmp63_ = FALSE; + GeeCollection* _tmp64_ = NULL; + GeeCollection* _tmp65_ = NULL; + gboolean _tmp66_ = FALSE; +#line 257 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp44_ = _key_it; +#line 257 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp45_ = gee_iterator_next (_tmp44_); +#line 257 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (!_tmp45_) { +#line 257 "/home/jens/Source/shotwell/src/core/Alteration.vala" + break; +#line 2188 "Alteration.c" + } +#line 257 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp46_ = _key_it; +#line 257 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp47_ = gee_iterator_get (_tmp46_); +#line 257 "/home/jens/Source/shotwell/src/core/Alteration.vala" + key = (gchar*) _tmp47_; +#line 258 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp48_ = self->priv->map; +#line 258 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp49_ = key; +#line 258 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp50_ = gee_multi_map_get (_tmp48_, _tmp49_); +#line 258 "/home/jens/Source/shotwell/src/core/Alteration.vala" + values = _tmp50_; +#line 259 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp51_ = other; +#line 259 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp52_ = _tmp51_->priv->map; +#line 259 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp53_ = key; +#line 259 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp54_ = gee_multi_map_get (_tmp52_, _tmp53_); +#line 259 "/home/jens/Source/shotwell/src/core/Alteration.vala" + other_values = _tmp54_; +#line 261 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp55_ = values; +#line 261 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp56_ = gee_collection_get_size (_tmp55_); +#line 261 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp57_ = _tmp56_; +#line 261 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp58_ = other_values; +#line 261 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp59_ = gee_collection_get_size (_tmp58_); +#line 261 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp60_ = _tmp59_; +#line 261 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (_tmp57_ != _tmp60_) { +#line 262 "/home/jens/Source/shotwell/src/core/Alteration.vala" + result = FALSE; +#line 262 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (other_values); +#line 262 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (values); +#line 262 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_free0 (key); +#line 262 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (_key_it); +#line 262 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (other_keys); +#line 262 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (keys); +#line 262 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return result; +#line 2244 "Alteration.c" + } +#line 264 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp61_ = values; +#line 264 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp62_ = other_values; +#line 264 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp63_ = gee_collection_contains_all (_tmp61_, _tmp62_); +#line 264 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (!_tmp63_) { +#line 265 "/home/jens/Source/shotwell/src/core/Alteration.vala" + result = FALSE; +#line 265 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (other_values); +#line 265 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (values); +#line 265 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_free0 (key); +#line 265 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (_key_it); +#line 265 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (other_keys); +#line 265 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (keys); +#line 265 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return result; +#line 2270 "Alteration.c" + } +#line 267 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp64_ = other_values; +#line 267 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp65_ = values; +#line 267 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp66_ = gee_collection_contains_all (_tmp64_, _tmp65_); +#line 267 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (!_tmp66_) { +#line 268 "/home/jens/Source/shotwell/src/core/Alteration.vala" + result = FALSE; +#line 268 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (other_values); +#line 268 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (values); +#line 268 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_free0 (key); +#line 268 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (_key_it); +#line 268 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (other_keys); +#line 268 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (keys); +#line 268 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return result; +#line 2296 "Alteration.c" + } +#line 257 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (other_values); +#line 257 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (values); +#line 257 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_free0 (key); +#line 2304 "Alteration.c" + } +#line 257 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (_key_it); +#line 2308 "Alteration.c" + } +#line 272 "/home/jens/Source/shotwell/src/core/Alteration.vala" + result = TRUE; +#line 272 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (other_keys); +#line 272 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (keys); +#line 272 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return result; +#line 2318 "Alteration.c" + } +#line 276 "/home/jens/Source/shotwell/src/core/Alteration.vala" + result = FALSE; +#line 276 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return result; +#line 2324 "Alteration.c" +} + + +static void alteration_multimap_add_all (GeeMultiMap* dest, GeeMultiMap* src) { + GeeSet* keys = NULL; + GeeMultiMap* _tmp0_ = NULL; + GeeSet* _tmp1_ = NULL; +#line 279 "/home/jens/Source/shotwell/src/core/Alteration.vala" + g_return_if_fail (GEE_IS_MULTI_MAP (dest)); +#line 279 "/home/jens/Source/shotwell/src/core/Alteration.vala" + g_return_if_fail (GEE_IS_MULTI_MAP (src)); +#line 281 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp0_ = src; +#line 281 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp1_ = gee_multi_map_get_keys (_tmp0_); +#line 281 "/home/jens/Source/shotwell/src/core/Alteration.vala" + keys = _tmp1_; +#line 2342 "Alteration.c" + { + GeeIterator* _key_it = NULL; + GeeSet* _tmp2_ = NULL; + GeeIterator* _tmp3_ = NULL; +#line 282 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp2_ = keys; +#line 282 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp3_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_ITERABLE, GeeIterable)); +#line 282 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _key_it = _tmp3_; +#line 282 "/home/jens/Source/shotwell/src/core/Alteration.vala" + while (TRUE) { +#line 2355 "Alteration.c" + GeeIterator* _tmp4_ = NULL; + gboolean _tmp5_ = FALSE; + gchar* key = NULL; + GeeIterator* _tmp6_ = NULL; + gpointer _tmp7_ = NULL; + GeeCollection* values = NULL; + GeeMultiMap* _tmp8_ = NULL; + const gchar* _tmp9_ = NULL; + GeeCollection* _tmp10_ = NULL; +#line 282 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp4_ = _key_it; +#line 282 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp5_ = gee_iterator_next (_tmp4_); +#line 282 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (!_tmp5_) { +#line 282 "/home/jens/Source/shotwell/src/core/Alteration.vala" + break; +#line 2373 "Alteration.c" + } +#line 282 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp6_ = _key_it; +#line 282 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp7_ = gee_iterator_get (_tmp6_); +#line 282 "/home/jens/Source/shotwell/src/core/Alteration.vala" + key = (gchar*) _tmp7_; +#line 283 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp8_ = src; +#line 283 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp9_ = key; +#line 283 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp10_ = gee_multi_map_get (_tmp8_, _tmp9_); +#line 283 "/home/jens/Source/shotwell/src/core/Alteration.vala" + values = _tmp10_; +#line 2389 "Alteration.c" + { + GeeIterator* _value_it = NULL; + GeeCollection* _tmp11_ = NULL; + GeeIterator* _tmp12_ = NULL; +#line 284 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp11_ = values; +#line 284 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp12_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, GEE_TYPE_ITERABLE, GeeIterable)); +#line 284 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _value_it = _tmp12_; +#line 284 "/home/jens/Source/shotwell/src/core/Alteration.vala" + while (TRUE) { +#line 2402 "Alteration.c" + GeeIterator* _tmp13_ = NULL; + gboolean _tmp14_ = FALSE; + gchar* value = NULL; + GeeIterator* _tmp15_ = NULL; + gpointer _tmp16_ = NULL; + GeeMultiMap* _tmp17_ = NULL; + const gchar* _tmp18_ = NULL; + const gchar* _tmp19_ = NULL; +#line 284 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp13_ = _value_it; +#line 284 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp14_ = gee_iterator_next (_tmp13_); +#line 284 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (!_tmp14_) { +#line 284 "/home/jens/Source/shotwell/src/core/Alteration.vala" + break; +#line 2419 "Alteration.c" + } +#line 284 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp15_ = _value_it; +#line 284 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp16_ = gee_iterator_get (_tmp15_); +#line 284 "/home/jens/Source/shotwell/src/core/Alteration.vala" + value = (gchar*) _tmp16_; +#line 285 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp17_ = dest; +#line 285 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp18_ = key; +#line 285 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp19_ = value; +#line 285 "/home/jens/Source/shotwell/src/core/Alteration.vala" + gee_multi_map_set (_tmp17_, _tmp18_, _tmp19_); +#line 284 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_free0 (value); +#line 2437 "Alteration.c" + } +#line 284 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (_value_it); +#line 2441 "Alteration.c" + } +#line 282 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (values); +#line 282 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_free0 (key); +#line 2447 "Alteration.c" + } +#line 282 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (_key_it); +#line 2451 "Alteration.c" + } +#line 279 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (keys); +#line 2455 "Alteration.c" +} + + +static gpointer _alteration_ref0 (gpointer self) { +#line 293 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return self ? alteration_ref (self) : NULL; +#line 2462 "Alteration.c" +} + + +Alteration* alteration_compress (Alteration* self, Alteration* other) { + Alteration* result = NULL; + Alteration* _tmp0_ = NULL; + gboolean _tmp1_ = FALSE; + GeeMultiMap* compressed = NULL; + GeeMultiMap* _tmp3_ = NULL; + gboolean _tmp4_ = FALSE; + const gchar* _tmp5_ = NULL; + gboolean _tmp13_ = FALSE; + Alteration* _tmp14_ = NULL; + const gchar* _tmp15_ = NULL; + GeeMultiMap* _tmp28_ = NULL; + Alteration* _tmp29_ = NULL; +#line 291 "/home/jens/Source/shotwell/src/core/Alteration.vala" + g_return_val_if_fail (IS_ALTERATION (self), NULL); +#line 291 "/home/jens/Source/shotwell/src/core/Alteration.vala" + g_return_val_if_fail (IS_ALTERATION (other), NULL); +#line 292 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp0_ = other; +#line 292 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp1_ = alteration_equals (self, _tmp0_); +#line 292 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (_tmp1_) { +#line 2489 "Alteration.c" + Alteration* _tmp2_ = NULL; +#line 293 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp2_ = _alteration_ref0 (self); +#line 293 "/home/jens/Source/shotwell/src/core/Alteration.vala" + result = _tmp2_; +#line 293 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return result; +#line 2497 "Alteration.c" + } +#line 297 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp3_ = alteration_create_map (self); +#line 297 "/home/jens/Source/shotwell/src/core/Alteration.vala" + compressed = _tmp3_; +#line 299 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp5_ = self->priv->subject; +#line 299 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (_tmp5_ != NULL) { +#line 2507 "Alteration.c" + const gchar* _tmp6_ = NULL; +#line 299 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp6_ = self->priv->detail; +#line 299 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp4_ = _tmp6_ != NULL; +#line 2513 "Alteration.c" + } else { +#line 299 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp4_ = FALSE; +#line 2517 "Alteration.c" + } +#line 299 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (_tmp4_) { +#line 2521 "Alteration.c" + GeeMultiMap* _tmp7_ = NULL; + const gchar* _tmp8_ = NULL; + const gchar* _tmp9_ = NULL; +#line 300 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp7_ = compressed; +#line 300 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp8_ = self->priv->subject; +#line 300 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp9_ = self->priv->detail; +#line 300 "/home/jens/Source/shotwell/src/core/Alteration.vala" + gee_multi_map_set (_tmp7_, _tmp8_, _tmp9_); +#line 2533 "Alteration.c" + } else { + GeeMultiMap* _tmp10_ = NULL; + GeeMultiMap* _tmp11_ = NULL; + GeeMultiMap* _tmp12_ = NULL; +#line 302 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp10_ = self->priv->map; +#line 302 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _vala_assert (_tmp10_ != NULL, "map != null"); +#line 303 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp11_ = compressed; +#line 303 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp12_ = self->priv->map; +#line 303 "/home/jens/Source/shotwell/src/core/Alteration.vala" + alteration_multimap_add_all (_tmp11_, _tmp12_); +#line 2548 "Alteration.c" + } +#line 306 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp14_ = other; +#line 306 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp15_ = _tmp14_->priv->subject; +#line 306 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (_tmp15_ != NULL) { +#line 2556 "Alteration.c" + Alteration* _tmp16_ = NULL; + const gchar* _tmp17_ = NULL; +#line 306 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp16_ = other; +#line 306 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp17_ = _tmp16_->priv->detail; +#line 306 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp13_ = _tmp17_ != NULL; +#line 2565 "Alteration.c" + } else { +#line 306 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp13_ = FALSE; +#line 2569 "Alteration.c" + } +#line 306 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (_tmp13_) { +#line 2573 "Alteration.c" + GeeMultiMap* _tmp18_ = NULL; + Alteration* _tmp19_ = NULL; + const gchar* _tmp20_ = NULL; + Alteration* _tmp21_ = NULL; + const gchar* _tmp22_ = NULL; +#line 307 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp18_ = compressed; +#line 307 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp19_ = other; +#line 307 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp20_ = _tmp19_->priv->subject; +#line 307 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp21_ = other; +#line 307 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp22_ = _tmp21_->priv->detail; +#line 307 "/home/jens/Source/shotwell/src/core/Alteration.vala" + gee_multi_map_set (_tmp18_, _tmp20_, _tmp22_); +#line 2591 "Alteration.c" + } else { + Alteration* _tmp23_ = NULL; + GeeMultiMap* _tmp24_ = NULL; + GeeMultiMap* _tmp25_ = NULL; + Alteration* _tmp26_ = NULL; + GeeMultiMap* _tmp27_ = NULL; +#line 309 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp23_ = other; +#line 309 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp24_ = _tmp23_->priv->map; +#line 309 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _vala_assert (_tmp24_ != NULL, "other.map != null"); +#line 310 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp25_ = compressed; +#line 310 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp26_ = other; +#line 310 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp27_ = _tmp26_->priv->map; +#line 310 "/home/jens/Source/shotwell/src/core/Alteration.vala" + alteration_multimap_add_all (_tmp25_, _tmp27_); +#line 2612 "Alteration.c" + } +#line 313 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp28_ = compressed; +#line 313 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _tmp29_ = alteration_new_from_map (_tmp28_); +#line 313 "/home/jens/Source/shotwell/src/core/Alteration.vala" + result = _tmp29_; +#line 313 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (compressed); +#line 313 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return result; +#line 2624 "Alteration.c" +} + + +static void value_alteration_init (GValue* value) { +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + value->data[0].v_pointer = NULL; +#line 2631 "Alteration.c" +} + + +static void value_alteration_free_value (GValue* value) { +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (value->data[0].v_pointer) { +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + alteration_unref (value->data[0].v_pointer); +#line 2640 "Alteration.c" + } +} + + +static void value_alteration_copy_value (const GValue* src_value, GValue* dest_value) { +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (src_value->data[0].v_pointer) { +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + dest_value->data[0].v_pointer = alteration_ref (src_value->data[0].v_pointer); +#line 2650 "Alteration.c" + } else { +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + dest_value->data[0].v_pointer = NULL; +#line 2654 "Alteration.c" + } +} + + +static gpointer value_alteration_peek_pointer (const GValue* value) { +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return value->data[0].v_pointer; +#line 2662 "Alteration.c" +} + + +static gchar* value_alteration_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) { +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (collect_values[0].v_pointer) { +#line 2669 "Alteration.c" + Alteration* object; + object = collect_values[0].v_pointer; +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (object->parent_instance.g_class == NULL) { +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL); +#line 2676 "Alteration.c" + } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) { +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL); +#line 2680 "Alteration.c" + } +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + value->data[0].v_pointer = alteration_ref (object); +#line 2684 "Alteration.c" + } else { +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + value->data[0].v_pointer = NULL; +#line 2688 "Alteration.c" + } +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return NULL; +#line 2692 "Alteration.c" +} + + +static gchar* value_alteration_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) { + Alteration** object_p; + object_p = collect_values[0].v_pointer; +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (!object_p) { +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value)); +#line 2703 "Alteration.c" + } +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (!value->data[0].v_pointer) { +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + *object_p = NULL; +#line 2709 "Alteration.c" + } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) { +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + *object_p = value->data[0].v_pointer; +#line 2713 "Alteration.c" + } else { +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + *object_p = alteration_ref (value->data[0].v_pointer); +#line 2717 "Alteration.c" + } +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return NULL; +#line 2721 "Alteration.c" +} + + +GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) { + ParamSpecAlteration* spec; +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + g_return_val_if_fail (g_type_is_a (object_type, TYPE_ALTERATION), NULL); +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags); +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + G_PARAM_SPEC (spec)->value_type = object_type; +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return G_PARAM_SPEC (spec); +#line 2735 "Alteration.c" +} + + +gpointer value_get_alteration (const GValue* value) { +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_ALTERATION), NULL); +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return value->data[0].v_pointer; +#line 2744 "Alteration.c" +} + + +void value_set_alteration (GValue* value, gpointer v_object) { + Alteration* old; +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_ALTERATION)); +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + old = value->data[0].v_pointer; +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (v_object) { +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_ALTERATION)); +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value))); +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + value->data[0].v_pointer = v_object; +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + alteration_ref (value->data[0].v_pointer); +#line 2764 "Alteration.c" + } else { +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + value->data[0].v_pointer = NULL; +#line 2768 "Alteration.c" + } +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (old) { +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + alteration_unref (old); +#line 2774 "Alteration.c" + } +} + + +void value_take_alteration (GValue* value, gpointer v_object) { + Alteration* old; +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_ALTERATION)); +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + old = value->data[0].v_pointer; +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (v_object) { +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_ALTERATION)); +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value))); +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + value->data[0].v_pointer = v_object; +#line 2793 "Alteration.c" + } else { +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + value->data[0].v_pointer = NULL; +#line 2797 "Alteration.c" + } +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (old) { +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + alteration_unref (old); +#line 2803 "Alteration.c" + } +} + + +static void alteration_class_init (AlterationClass * klass) { +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + alteration_parent_class = g_type_class_peek_parent (klass); +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + ((AlterationClass *) klass)->finalize = alteration_finalize; +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + g_type_class_add_private (klass, sizeof (AlterationPrivate)); +#line 2815 "Alteration.c" +} + + +static void alteration_instance_init (Alteration * self) { +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + self->priv = ALTERATION_GET_PRIVATE (self); +#line 28 "/home/jens/Source/shotwell/src/core/Alteration.vala" + self->priv->subject = NULL; +#line 29 "/home/jens/Source/shotwell/src/core/Alteration.vala" + self->priv->detail = NULL; +#line 30 "/home/jens/Source/shotwell/src/core/Alteration.vala" + self->priv->map = NULL; +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + self->ref_count = 1; +#line 2830 "Alteration.c" +} + + +static void alteration_finalize (Alteration* obj) { + Alteration * self; +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_ALTERATION, Alteration); +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + g_signal_handlers_destroy (self); +#line 28 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_free0 (self->priv->subject); +#line 29 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_free0 (self->priv->detail); +#line 30 "/home/jens/Source/shotwell/src/core/Alteration.vala" + _g_object_unref0 (self->priv->map); +#line 2846 "Alteration.c" +} + + +GType alteration_get_type (void) { + static volatile gsize alteration_type_id__volatile = 0; + if (g_once_init_enter (&alteration_type_id__volatile)) { + static const GTypeValueTable g_define_type_value_table = { value_alteration_init, value_alteration_free_value, value_alteration_copy_value, value_alteration_peek_pointer, "p", value_alteration_collect_value, "p", value_alteration_lcopy_value }; + static const GTypeInfo g_define_type_info = { sizeof (AlterationClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) alteration_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (Alteration), 0, (GInstanceInitFunc) alteration_instance_init, &g_define_type_value_table }; + static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }; + GType alteration_type_id; + alteration_type_id = g_type_register_fundamental (g_type_fundamental_next (), "Alteration", &g_define_type_info, &g_define_type_fundamental_info, 0); + g_once_init_leave (&alteration_type_id__volatile, alteration_type_id); + } + return alteration_type_id__volatile; +} + + +gpointer alteration_ref (gpointer instance) { + Alteration* self; + self = instance; +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + g_atomic_int_inc (&self->ref_count); +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + return instance; +#line 2871 "Alteration.c" +} + + +void alteration_unref (gpointer instance) { + Alteration* self; + self = instance; +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + if (g_atomic_int_dec_and_test (&self->ref_count)) { +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + ALTERATION_GET_CLASS (self)->finalize (self); +#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala" + g_type_free_instance ((GTypeInstance *) self); +#line 2884 "Alteration.c" + } +} + + +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; +} + + + |