/* Plugins.c generated by valac 0.40.4, the Vala compiler * generated from Plugins.vala, do not modify */ /* Copyright 2016 Software Freedom Conservancy Inc. * * This software is licensed under the GNU Lesser General Public License * (version 2.1 or later). See the COPYING file in this distribution. */ #include #include #include #include #include #include #include "shotwell-plugin-dev-1.0.h" #include #include #define PLUGINS_TYPE_EXTENSION_POINT (plugins_extension_point_get_type ()) #define PLUGINS_EXTENSION_POINT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PLUGINS_TYPE_EXTENSION_POINT, PluginsExtensionPoint)) #define PLUGINS_EXTENSION_POINT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PLUGINS_TYPE_EXTENSION_POINT, PluginsExtensionPointClass)) #define PLUGINS_IS_EXTENSION_POINT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PLUGINS_TYPE_EXTENSION_POINT)) #define PLUGINS_IS_EXTENSION_POINT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PLUGINS_TYPE_EXTENSION_POINT)) #define PLUGINS_EXTENSION_POINT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PLUGINS_TYPE_EXTENSION_POINT, PluginsExtensionPointClass)) typedef struct _PluginsExtensionPoint PluginsExtensionPoint; typedef struct _PluginsExtensionPointClass PluginsExtensionPointClass; typedef struct _PluginsExtensionPointPrivate PluginsExtensionPointPrivate; #define _g_free0(var) (var = (g_free (var), NULL)) typedef struct _PluginsParamSpecExtensionPoint PluginsParamSpecExtensionPoint; #define PLUGINS_TYPE_MODULE_REP (plugins_module_rep_get_type ()) #define PLUGINS_MODULE_REP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PLUGINS_TYPE_MODULE_REP, PluginsModuleRep)) #define PLUGINS_MODULE_REP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PLUGINS_TYPE_MODULE_REP, PluginsModuleRepClass)) #define PLUGINS_IS_MODULE_REP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PLUGINS_TYPE_MODULE_REP)) #define PLUGINS_IS_MODULE_REP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PLUGINS_TYPE_MODULE_REP)) #define PLUGINS_MODULE_REP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PLUGINS_TYPE_MODULE_REP, PluginsModuleRepClass)) typedef struct _PluginsModuleRep PluginsModuleRep; typedef struct _PluginsModuleRepClass PluginsModuleRepClass; typedef struct _PluginsModuleRepPrivate PluginsModuleRepPrivate; #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) #define _g_module_close0(var) ((var == NULL) ? NULL : (var = (g_module_close (var), NULL))) #define _plugins_module_rep_unref0(var) ((var == NULL) ? NULL : (var = (plugins_module_rep_unref (var), NULL))) typedef struct _PluginsParamSpecModuleRep PluginsParamSpecModuleRep; #define PLUGINS_TYPE_PLUGGABLE_REP (plugins_pluggable_rep_get_type ()) #define PLUGINS_PLUGGABLE_REP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PLUGINS_TYPE_PLUGGABLE_REP, PluginsPluggableRep)) #define PLUGINS_PLUGGABLE_REP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PLUGINS_TYPE_PLUGGABLE_REP, PluginsPluggableRepClass)) #define PLUGINS_IS_PLUGGABLE_REP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PLUGINS_TYPE_PLUGGABLE_REP)) #define PLUGINS_IS_PLUGGABLE_REP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PLUGINS_TYPE_PLUGGABLE_REP)) #define PLUGINS_PLUGGABLE_REP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PLUGINS_TYPE_PLUGGABLE_REP, PluginsPluggableRepClass)) typedef struct _PluginsPluggableRep PluginsPluggableRep; typedef struct _PluginsPluggableRepClass PluginsPluggableRepClass; typedef struct _PluginsPluggableRepPrivate PluginsPluggableRepPrivate; #define TYPE_FUZZY_PROPERTY_STATE (fuzzy_property_state_get_type ()) #define TYPE_CONFIGURATION_FACADE (configuration_facade_get_type ()) #define CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacade)) #define CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass)) #define IS_CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIGURATION_FACADE)) #define IS_CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIGURATION_FACADE)) #define CONFIGURATION_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass)) typedef struct _ConfigurationFacade ConfigurationFacade; typedef struct _ConfigurationFacadeClass ConfigurationFacadeClass; #define CONFIG_TYPE_FACADE (config_facade_get_type ()) #define CONFIG_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONFIG_TYPE_FACADE, ConfigFacade)) #define CONFIG_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONFIG_TYPE_FACADE, ConfigFacadeClass)) #define CONFIG_IS_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONFIG_TYPE_FACADE)) #define CONFIG_IS_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONFIG_TYPE_FACADE)) #define CONFIG_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONFIG_TYPE_FACADE, ConfigFacadeClass)) typedef struct _ConfigFacade ConfigFacade; typedef struct _ConfigFacadeClass ConfigFacadeClass; typedef struct _PluginsParamSpecPluggableRep PluginsParamSpecPluggableRep; #define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL))) #define PLUGINS_TYPE_NOTIFIER (plugins_notifier_get_type ()) #define PLUGINS_NOTIFIER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PLUGINS_TYPE_NOTIFIER, PluginsNotifier)) #define PLUGINS_NOTIFIER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PLUGINS_TYPE_NOTIFIER, PluginsNotifierClass)) #define PLUGINS_IS_NOTIFIER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PLUGINS_TYPE_NOTIFIER)) #define PLUGINS_IS_NOTIFIER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PLUGINS_TYPE_NOTIFIER)) #define PLUGINS_NOTIFIER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PLUGINS_TYPE_NOTIFIER, PluginsNotifierClass)) typedef struct _PluginsNotifier PluginsNotifier; typedef struct _PluginsNotifierClass PluginsNotifierClass; typedef struct _PluginsNotifierPrivate PluginsNotifierPrivate; #define _plugins_notifier_unref0(var) ((var == NULL) ? NULL : (var = (plugins_notifier_unref (var), NULL))) typedef struct _PluginsParamSpecNotifier PluginsParamSpecNotifier; enum { PLUGINS_NOTIFIER_PLUGGABLE_ACTIVATION_SIGNAL, PLUGINS_NOTIFIER_NUM_SIGNALS }; static guint plugins_notifier_signals[PLUGINS_NOTIFIER_NUM_SIGNALS] = {0}; #define _plugins_extension_point_unref0(var) ((var == NULL) ? NULL : (var = (plugins_extension_point_unref (var), NULL))) #define _plugins_pluggable_rep_unref0(var) ((var == NULL) ? NULL : (var = (plugins_pluggable_rep_unref (var), NULL))) #define TYPE_PREPARE_INPUT_TEXT_OPTIONS (prepare_input_text_options_get_type ()) #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 _PluginsExtensionPoint { GTypeInstance parent_instance; volatile int ref_count; PluginsExtensionPointPrivate * priv; }; struct _PluginsExtensionPointClass { GTypeClass parent_class; void (*finalize) (PluginsExtensionPoint *self); }; struct _PluginsExtensionPointPrivate { GType _pluggable_type; gchar* _name; gchar* _icon_name; gchar** _core_ids; gint _core_ids_length1; gint __core_ids_size_; }; struct _PluginsParamSpecExtensionPoint { GParamSpec parent_instance; }; struct _PluginsModuleRep { GTypeInstance parent_instance; volatile int ref_count; PluginsModuleRepPrivate * priv; GFile* file; GModule* module; SpitModule* spit_module; gint spit_interface; gchar* id; }; struct _PluginsModuleRepClass { GTypeClass parent_class; void (*finalize) (PluginsModuleRep *self); }; struct _PluginsParamSpecModuleRep { GParamSpec parent_instance; }; struct _PluginsPluggableRep { GTypeInstance parent_instance; volatile int ref_count; PluginsPluggableRepPrivate * priv; }; struct _PluginsPluggableRepClass { GTypeClass parent_class; void (*finalize) (PluginsPluggableRep *self); }; struct _PluginsPluggableRepPrivate { SpitPluggable* _pluggable; gchar* _id; gboolean _is_core; gboolean _activated; gboolean enabled; }; typedef enum { FUZZY_PROPERTY_STATE_ENABLED, FUZZY_PROPERTY_STATE_DISABLED, FUZZY_PROPERTY_STATE_UNKNOWN } FuzzyPropertyState; struct _PluginsParamSpecPluggableRep { GParamSpec parent_instance; }; struct _PluginsNotifier { GTypeInstance parent_instance; volatile int ref_count; PluginsNotifierPrivate * priv; }; struct _PluginsNotifierClass { GTypeClass parent_class; void (*finalize) (PluginsNotifier *self); }; struct _PluginsParamSpecNotifier { GParamSpec parent_instance; }; typedef enum { PREPARE_INPUT_TEXT_OPTIONS_EMPTY_IS_NULL = 1 << 0, PREPARE_INPUT_TEXT_OPTIONS_VALIDATE = 1 << 1, PREPARE_INPUT_TEXT_OPTIONS_INVALID_IS_NULL = 1 << 2, PREPARE_INPUT_TEXT_OPTIONS_STRIP = 1 << 3, PREPARE_INPUT_TEXT_OPTIONS_STRIP_CRLF = 1 << 4, PREPARE_INPUT_TEXT_OPTIONS_NORMALIZE = 1 << 5, PREPARE_INPUT_TEXT_OPTIONS_DEFAULT = ((((PREPARE_INPUT_TEXT_OPTIONS_EMPTY_IS_NULL | PREPARE_INPUT_TEXT_OPTIONS_VALIDATE) | PREPARE_INPUT_TEXT_OPTIONS_INVALID_IS_NULL) | PREPARE_INPUT_TEXT_OPTIONS_STRIP_CRLF) | PREPARE_INPUT_TEXT_OPTIONS_STRIP) | PREPARE_INPUT_TEXT_OPTIONS_NORMALIZE } PrepareInputTextOptions; static gpointer plugins_extension_point_parent_class = NULL; static gpointer plugins_module_rep_parent_class = NULL; static gpointer plugins_pluggable_rep_parent_class = NULL; extern GFile** plugins_search_dirs; extern gint plugins_search_dirs_length1; GFile** plugins_search_dirs = NULL; gint plugins_search_dirs_length1 = 0; static gint _plugins_search_dirs_size_ = 0; extern GeeHashMap* plugins_module_table; GeeHashMap* plugins_module_table = NULL; extern GeeHashMap* plugins_pluggable_table; GeeHashMap* plugins_pluggable_table = NULL; extern GeeHashMap* plugins_extension_points; GeeHashMap* plugins_extension_points = NULL; extern GeeHashSet* plugins_core_ids; GeeHashSet* plugins_core_ids = NULL; static gpointer plugins_notifier_parent_class = NULL; static PluginsNotifier* plugins_notifier_instance; static PluginsNotifier* plugins_notifier_instance = NULL; #define PLUGINS_MIN_SPIT_INTERFACE 0 #define PLUGINS_MAX_SPIT_INTERFACE 0 gpointer plugins_extension_point_ref (gpointer instance); void plugins_extension_point_unref (gpointer instance); GParamSpec* plugins_param_spec_extension_point (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); void plugins_value_set_extension_point (GValue* value, gpointer v_object); void plugins_value_take_extension_point (GValue* value, gpointer v_object); gpointer plugins_value_get_extension_point (const GValue* value); GType plugins_extension_point_get_type (void) G_GNUC_CONST; #define PLUGINS_EXTENSION_POINT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), PLUGINS_TYPE_EXTENSION_POINT, PluginsExtensionPointPrivate)) PluginsExtensionPoint* plugins_extension_point_new (GType pluggable_type, const gchar* name, const gchar* icon_name, gchar** core_ids, int core_ids_length1); PluginsExtensionPoint* plugins_extension_point_construct (GType object_type, GType pluggable_type, const gchar* name, const gchar* icon_name, gchar** core_ids, int core_ids_length1); static void plugins_extension_point_set_pluggable_type (PluginsExtensionPoint* self, GType value); static void plugins_extension_point_set_name (PluginsExtensionPoint* self, const gchar* value); static void plugins_extension_point_set_icon_name (PluginsExtensionPoint* self, const gchar* value); static void plugins_extension_point_set_core_ids (PluginsExtensionPoint* self, gchar** value, int value_length1); GType plugins_extension_point_get_pluggable_type (PluginsExtensionPoint* self); const gchar* plugins_extension_point_get_name (PluginsExtensionPoint* self); const gchar* plugins_extension_point_get_icon_name (PluginsExtensionPoint* self); gchar** plugins_extension_point_get_core_ids (PluginsExtensionPoint* self, int* result_length1); static gchar** _vala_array_dup16 (gchar** self, int length); static void plugins_extension_point_finalize (PluginsExtensionPoint * obj); gpointer plugins_module_rep_ref (gpointer instance); void plugins_module_rep_unref (gpointer instance); GParamSpec* plugins_param_spec_module_rep (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); void plugins_value_set_module_rep (GValue* value, gpointer v_object); void plugins_value_take_module_rep (GValue* value, gpointer v_object); gpointer plugins_value_get_module_rep (const GValue* value); GType plugins_module_rep_get_type (void) G_GNUC_CONST; static PluginsModuleRep* plugins_module_rep_new (GFile* file); static PluginsModuleRep* plugins_module_rep_construct (GType object_type, GFile* file); PluginsModuleRep* plugins_module_rep_open (GFile* file); static void plugins_module_rep_finalize (PluginsModuleRep * obj); gpointer plugins_pluggable_rep_ref (gpointer instance); void plugins_pluggable_rep_unref (gpointer instance); GParamSpec* plugins_param_spec_pluggable_rep (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); void plugins_value_set_pluggable_rep (GValue* value, gpointer v_object); void plugins_value_take_pluggable_rep (GValue* value, gpointer v_object); gpointer plugins_value_get_pluggable_rep (const GValue* value); GType plugins_pluggable_rep_get_type (void) G_GNUC_CONST; #define PLUGINS_PLUGGABLE_REP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), PLUGINS_TYPE_PLUGGABLE_REP, PluginsPluggableRepPrivate)) PluginsPluggableRep* plugins_pluggable_rep_new (SpitPluggable* pluggable); PluginsPluggableRep* plugins_pluggable_rep_construct (GType object_type, SpitPluggable* pluggable); static void plugins_pluggable_rep_set_pluggable (PluginsPluggableRep* self, SpitPluggable* value); static void plugins_pluggable_rep_set_id (PluginsPluggableRep* self, const gchar* value); void plugins_pluggable_rep_activate (PluginsPluggableRep* self); gboolean plugins_is_core_pluggable (SpitPluggable* pluggable); SpitPluggable* plugins_pluggable_rep_get_pluggable (PluginsPluggableRep* self); static void plugins_pluggable_rep_set_is_core (PluginsPluggableRep* self, gboolean value); GType fuzzy_property_state_get_type (void) G_GNUC_CONST; GType configuration_facade_get_type (void) G_GNUC_CONST; GType config_facade_get_type (void) G_GNUC_CONST; ConfigFacade* config_facade_get_instance (void); FuzzyPropertyState configuration_facade_is_plugin_enabled (ConfigurationFacade* self, const gchar* id); const gchar* plugins_pluggable_rep_get_id (PluginsPluggableRep* self); gboolean plugins_pluggable_rep_get_is_core (PluginsPluggableRep* self); static void plugins_pluggable_rep_set_activated (PluginsPluggableRep* self, gboolean value); gboolean plugins_pluggable_rep_is_enabled (PluginsPluggableRep* self); gboolean plugins_pluggable_rep_set_enabled (PluginsPluggableRep* self, gboolean enabled); void configuration_facade_set_plugin_enabled (ConfigurationFacade* self, const gchar* id, gboolean enabled); gboolean plugins_pluggable_rep_get_activated (PluginsPluggableRep* self); static void plugins_pluggable_rep_finalize (PluginsPluggableRep * obj); void plugins_init (GError** error); GFile* app_dirs_get_user_plugins_dir (void); static void _vala_array_add50 (GFile** * array, int* length, int* size, GFile* value); GFile* app_dirs_get_system_plugins_dir (void); static void _vala_array_add51 (GFile** * array, int* length, int* size, GFile* value); void plugins_search_for_plugins (GFile* dir, GError** error); void plugins_terminate (void); gpointer plugins_notifier_ref (gpointer instance); void plugins_notifier_unref (gpointer instance); GParamSpec* plugins_param_spec_notifier (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); void plugins_value_set_notifier (GValue* value, gpointer v_object); void plugins_value_take_notifier (GValue* value, gpointer v_object); gpointer plugins_value_get_notifier (const GValue* value); GType plugins_notifier_get_type (void) G_GNUC_CONST; static PluginsNotifier* plugins_notifier_new (void); static PluginsNotifier* plugins_notifier_construct (GType object_type); PluginsNotifier* plugins_notifier_get_instance (void); static void g_cclosure_user_marshal_VOID__OBJECT_BOOLEAN (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data); static void plugins_notifier_finalize (PluginsNotifier * obj); void plugins_register_extension_point (GType type, const gchar* name, const gchar* icon_name, gchar** core_ids, int core_ids_length1); GeeCollection* plugins_get_pluggables (gboolean include_disabled); PluginsModuleRep* plugins_get_module_for_pluggable (SpitPluggable* needle); static SpitPluggable** _vala_array_dup17 (SpitPluggable** self, int length); gchar* plugins_get_pluggable_module_id (SpitPluggable* needle); GeeCollection* plugins_get_extension_points (GCompareDataFunc compare_func, void* compare_func_target, GDestroyNotify compare_func_target_destroy_notify); GeeCollection* plugins_get_pluggables_for_type (GType type, GCompareDataFunc compare_func, void* compare_func_target, GDestroyNotify compare_func_target_destroy_notify, gboolean include_disabled); gchar* plugins_get_pluggable_name (const gchar* id); gboolean plugins_get_pluggable_info (const gchar* id, SpitPluggableInfo* info); gboolean plugins_get_pluggable_enabled (const gchar* id, gboolean* enabled); void plugins_set_pluggable_enabled (const gchar* id, gboolean enabled); GFile* plugins_get_pluggable_module_file (SpitPluggable* pluggable); gint plugins_compare_pluggable_names (void* a, void* b); gint plugins_compare_extension_point_names (void* a, void* b); gboolean plugins_is_shared_library (GFile* file); void disassemble_filename (const gchar* basename, gchar* * name, gchar* * ext); #define UTIL_FILE_ATTRIBUTES "standard::*,time::*,id::file,id::filesystem,etag::value" void plugins_load_module (GFile* file); GType prepare_input_text_options_get_type (void) G_GNUC_CONST; gchar* prepare_input_text (const gchar* text, PrepareInputTextOptions options, gint dest_length); 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); const gchar* PLUGINS_SHARED_LIB_EXTS[2] = {"so", "la"}; PluginsExtensionPoint* plugins_extension_point_construct (GType object_type, GType pluggable_type, const gchar* name, const gchar* icon_name, gchar** core_ids, int core_ids_length1) { PluginsExtensionPoint* self = NULL; #line 25 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_val_if_fail (name != NULL, NULL); #line 25 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" self = (PluginsExtensionPoint*) g_type_create_instance (object_type); #line 26 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" plugins_extension_point_set_pluggable_type (self, pluggable_type); #line 27 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" plugins_extension_point_set_name (self, name); #line 28 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" plugins_extension_point_set_icon_name (self, icon_name); #line 29 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" plugins_extension_point_set_core_ids (self, core_ids, core_ids_length1); #line 25 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return self; #line 446 "Plugins.c" } PluginsExtensionPoint* plugins_extension_point_new (GType pluggable_type, const gchar* name, const gchar* icon_name, gchar** core_ids, int core_ids_length1) { #line 25 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return plugins_extension_point_construct (PLUGINS_TYPE_EXTENSION_POINT, pluggable_type, name, icon_name, core_ids, core_ids_length1); #line 459 "Plugins.c" } GType plugins_extension_point_get_pluggable_type (PluginsExtensionPoint* self) { GType result; GType _tmp0_; #line 19 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_val_if_fail (PLUGINS_IS_EXTENSION_POINT (self), 0UL); #line 19 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp0_ = self->priv->_pluggable_type; #line 19 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" result = _tmp0_; #line 19 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return result; #line 476 "Plugins.c" } static void plugins_extension_point_set_pluggable_type (PluginsExtensionPoint* self, GType value) { #line 19 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_if_fail (PLUGINS_IS_EXTENSION_POINT (self)); #line 19 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" self->priv->_pluggable_type = value; #line 488 "Plugins.c" } const gchar* plugins_extension_point_get_name (PluginsExtensionPoint* self) { const gchar* result; const gchar* _tmp0_; #line 21 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_val_if_fail (PLUGINS_IS_EXTENSION_POINT (self), NULL); #line 21 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp0_ = self->priv->_name; #line 21 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" result = _tmp0_; #line 21 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return result; #line 505 "Plugins.c" } static void plugins_extension_point_set_name (PluginsExtensionPoint* self, const gchar* value) { gchar* _tmp0_; #line 21 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_if_fail (PLUGINS_IS_EXTENSION_POINT (self)); #line 21 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp0_ = g_strdup (value); #line 21 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_free0 (self->priv->_name); #line 21 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" self->priv->_name = _tmp0_; #line 522 "Plugins.c" } const gchar* plugins_extension_point_get_icon_name (PluginsExtensionPoint* self) { const gchar* result; const gchar* _tmp0_; #line 22 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_val_if_fail (PLUGINS_IS_EXTENSION_POINT (self), NULL); #line 22 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp0_ = self->priv->_icon_name; #line 22 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" result = _tmp0_; #line 22 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return result; #line 539 "Plugins.c" } static void plugins_extension_point_set_icon_name (PluginsExtensionPoint* self, const gchar* value) { gchar* _tmp0_; #line 22 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_if_fail (PLUGINS_IS_EXTENSION_POINT (self)); #line 22 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp0_ = g_strdup (value); #line 22 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_free0 (self->priv->_icon_name); #line 22 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" self->priv->_icon_name = _tmp0_; #line 556 "Plugins.c" } gchar** plugins_extension_point_get_core_ids (PluginsExtensionPoint* self, int* result_length1) { gchar** result; gchar** _tmp0_; gint _tmp0__length1; gchar** _tmp1_; gint _tmp1__length1; #line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_val_if_fail (PLUGINS_IS_EXTENSION_POINT (self), NULL); #line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp0_ = self->priv->_core_ids; #line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp0__length1 = self->priv->_core_ids_length1; #line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp1_ = _tmp0_; #line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp1__length1 = _tmp0__length1; #line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (result_length1) { #line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" *result_length1 = _tmp1__length1; #line 583 "Plugins.c" } #line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" result = _tmp1_; #line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return result; #line 589 "Plugins.c" } static gchar** _vala_array_dup16 (gchar** self, int length) { gchar** result; int i; #line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" result = g_new0 (gchar*, length + 1); #line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" for (i = 0; i < length; i++) { #line 603 "Plugins.c" gchar* _tmp0_; #line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp0_ = g_strdup (self[i]); #line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" result[i] = _tmp0_; #line 609 "Plugins.c" } #line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return result; #line 613 "Plugins.c" } static void plugins_extension_point_set_core_ids (PluginsExtensionPoint* self, gchar** value, int value_length1) { gchar** _tmp0_; gint _tmp0__length1; #line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_if_fail (PLUGINS_IS_EXTENSION_POINT (self)); #line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp0_ = (value != NULL) ? _vala_array_dup16 (value, value_length1) : ((gpointer) value); #line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp0__length1 = value_length1; #line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" self->priv->_core_ids = (_vala_array_free (self->priv->_core_ids, self->priv->_core_ids_length1, (GDestroyNotify) g_free), NULL); #line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" self->priv->_core_ids = _tmp0_; #line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" self->priv->_core_ids_length1 = _tmp0__length1; #line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" self->priv->__core_ids_size_ = self->priv->_core_ids_length1; #line 638 "Plugins.c" } static void plugins_value_extension_point_init (GValue* value) { #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" value->data[0].v_pointer = NULL; #line 647 "Plugins.c" } static void plugins_value_extension_point_free_value (GValue* value) { #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (value->data[0].v_pointer) { #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" plugins_extension_point_unref (value->data[0].v_pointer); #line 658 "Plugins.c" } } static void plugins_value_extension_point_copy_value (const GValue* src_value, GValue* dest_value) { #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (src_value->data[0].v_pointer) { #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" dest_value->data[0].v_pointer = plugins_extension_point_ref (src_value->data[0].v_pointer); #line 671 "Plugins.c" } else { #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" dest_value->data[0].v_pointer = NULL; #line 675 "Plugins.c" } } static gpointer plugins_value_extension_point_peek_pointer (const GValue* value) { #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return value->data[0].v_pointer; #line 685 "Plugins.c" } static gchar* plugins_value_extension_point_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) { #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (collect_values[0].v_pointer) { #line 697 "Plugins.c" PluginsExtensionPoint * object; object = collect_values[0].v_pointer; #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (object->parent_instance.g_class == NULL) { #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL); #line 704 "Plugins.c" } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) { #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.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 708 "Plugins.c" } #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" value->data[0].v_pointer = plugins_extension_point_ref (object); #line 712 "Plugins.c" } else { #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" value->data[0].v_pointer = NULL; #line 716 "Plugins.c" } #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return NULL; #line 720 "Plugins.c" } static gchar* plugins_value_extension_point_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) { PluginsExtensionPoint ** object_p; object_p = collect_values[0].v_pointer; #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (!object_p) { #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value)); #line 736 "Plugins.c" } #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (!value->data[0].v_pointer) { #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" *object_p = NULL; #line 742 "Plugins.c" } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) { #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" *object_p = value->data[0].v_pointer; #line 746 "Plugins.c" } else { #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" *object_p = plugins_extension_point_ref (value->data[0].v_pointer); #line 750 "Plugins.c" } #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return NULL; #line 754 "Plugins.c" } GParamSpec* plugins_param_spec_extension_point (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) { PluginsParamSpecExtensionPoint* spec; #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_val_if_fail (g_type_is_a (object_type, PLUGINS_TYPE_EXTENSION_POINT), NULL); #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags); #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" G_PARAM_SPEC (spec)->value_type = object_type; #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return G_PARAM_SPEC (spec); #line 774 "Plugins.c" } gpointer plugins_value_get_extension_point (const GValue* value) { #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PLUGINS_TYPE_EXTENSION_POINT), NULL); #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return value->data[0].v_pointer; #line 785 "Plugins.c" } void plugins_value_set_extension_point (GValue* value, gpointer v_object) { PluginsExtensionPoint * old; #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PLUGINS_TYPE_EXTENSION_POINT)); #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" old = value->data[0].v_pointer; #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (v_object) { #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PLUGINS_TYPE_EXTENSION_POINT)); #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value))); #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" value->data[0].v_pointer = v_object; #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" plugins_extension_point_ref (value->data[0].v_pointer); #line 808 "Plugins.c" } else { #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" value->data[0].v_pointer = NULL; #line 812 "Plugins.c" } #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (old) { #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" plugins_extension_point_unref (old); #line 818 "Plugins.c" } } void plugins_value_take_extension_point (GValue* value, gpointer v_object) { PluginsExtensionPoint * old; #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PLUGINS_TYPE_EXTENSION_POINT)); #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" old = value->data[0].v_pointer; #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (v_object) { #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PLUGINS_TYPE_EXTENSION_POINT)); #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value))); #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" value->data[0].v_pointer = v_object; #line 840 "Plugins.c" } else { #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" value->data[0].v_pointer = NULL; #line 844 "Plugins.c" } #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (old) { #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" plugins_extension_point_unref (old); #line 850 "Plugins.c" } } static void plugins_extension_point_class_init (PluginsExtensionPointClass * klass) { #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" plugins_extension_point_parent_class = g_type_class_peek_parent (klass); #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" ((PluginsExtensionPointClass *) klass)->finalize = plugins_extension_point_finalize; #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_type_class_add_private (klass, sizeof (PluginsExtensionPointPrivate)); #line 864 "Plugins.c" } static void plugins_extension_point_instance_init (PluginsExtensionPoint * self) { #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" self->priv = PLUGINS_EXTENSION_POINT_GET_PRIVATE (self); #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" self->ref_count = 1; #line 875 "Plugins.c" } static void plugins_extension_point_finalize (PluginsExtensionPoint * obj) { PluginsExtensionPoint * self; #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" self = G_TYPE_CHECK_INSTANCE_CAST (obj, PLUGINS_TYPE_EXTENSION_POINT, PluginsExtensionPoint); #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_signal_handlers_destroy (self); #line 21 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_free0 (self->priv->_name); #line 22 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_free0 (self->priv->_icon_name); #line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" self->priv->_core_ids = (_vala_array_free (self->priv->_core_ids, self->priv->_core_ids_length1, (GDestroyNotify) g_free), NULL); #line 893 "Plugins.c" } GType plugins_extension_point_get_type (void) { static volatile gsize plugins_extension_point_type_id__volatile = 0; if (g_once_init_enter (&plugins_extension_point_type_id__volatile)) { static const GTypeValueTable g_define_type_value_table = { plugins_value_extension_point_init, plugins_value_extension_point_free_value, plugins_value_extension_point_copy_value, plugins_value_extension_point_peek_pointer, "p", plugins_value_extension_point_collect_value, "p", plugins_value_extension_point_lcopy_value }; static const GTypeInfo g_define_type_info = { sizeof (PluginsExtensionPointClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) plugins_extension_point_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PluginsExtensionPoint), 0, (GInstanceInitFunc) plugins_extension_point_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 plugins_extension_point_type_id; plugins_extension_point_type_id = g_type_register_fundamental (g_type_fundamental_next (), "PluginsExtensionPoint", &g_define_type_info, &g_define_type_fundamental_info, 0); g_once_init_leave (&plugins_extension_point_type_id__volatile, plugins_extension_point_type_id); } return plugins_extension_point_type_id__volatile; } gpointer plugins_extension_point_ref (gpointer instance) { PluginsExtensionPoint * self; self = instance; #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_atomic_int_inc (&self->ref_count); #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return instance; #line 922 "Plugins.c" } void plugins_extension_point_unref (gpointer instance) { PluginsExtensionPoint * self; self = instance; #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (g_atomic_int_dec_and_test (&self->ref_count)) { #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" PLUGINS_EXTENSION_POINT_GET_CLASS (self)->finalize (self); #line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_type_free_instance ((GTypeInstance *) self); #line 937 "Plugins.c" } } static gpointer _g_object_ref0 (gpointer self) { #line 41 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return self ? g_object_ref (self) : NULL; #line 947 "Plugins.c" } static PluginsModuleRep* plugins_module_rep_construct (GType object_type, GFile* file) { PluginsModuleRep* self = NULL; GFile* _tmp0_; gchar* _tmp1_; gchar* _tmp2_; GModule* _tmp3_; #line 40 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_val_if_fail (G_IS_FILE (file), NULL); #line 40 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" self = (PluginsModuleRep*) g_type_create_instance (object_type); #line 41 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp0_ = _g_object_ref0 (file); #line 41 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_object_unref0 (self->file); #line 41 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" self->file = _tmp0_; #line 43 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp1_ = g_file_get_path (file); #line 43 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp2_ = _tmp1_; #line 43 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp3_ = g_module_open (_tmp2_, G_MODULE_BIND_LAZY); #line 43 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_module_close0 (self->module); #line 43 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" self->module = _tmp3_; #line 43 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_free0 (_tmp2_); #line 40 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return self; #line 984 "Plugins.c" } static PluginsModuleRep* plugins_module_rep_new (GFile* file) { #line 40 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return plugins_module_rep_construct (PLUGINS_TYPE_MODULE_REP, file); #line 993 "Plugins.c" } static gpointer _plugins_module_rep_ref0 (gpointer self) { #line 57 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return self ? plugins_module_rep_ref (self) : NULL; #line 1002 "Plugins.c" } PluginsModuleRep* plugins_module_rep_open (GFile* file) { PluginsModuleRep* result = NULL; PluginsModuleRep* module_rep = NULL; PluginsModuleRep* _tmp0_; PluginsModuleRep* _tmp1_ = NULL; PluginsModuleRep* _tmp2_; GModule* _tmp3_; PluginsModuleRep* _tmp5_; #line 54 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_val_if_fail (G_IS_FILE (file), NULL); #line 55 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp0_ = plugins_module_rep_new (file); #line 55 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" module_rep = _tmp0_; #line 57 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp2_ = module_rep; #line 57 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp3_ = _tmp2_->module; #line 57 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (_tmp3_ != NULL) { #line 1028 "Plugins.c" PluginsModuleRep* _tmp4_; #line 57 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp4_ = module_rep; #line 57 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp1_ = _tmp4_; #line 1034 "Plugins.c" } else { #line 57 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp1_ = NULL; #line 1038 "Plugins.c" } #line 57 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp5_ = _plugins_module_rep_ref0 (_tmp1_); #line 57 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" result = _tmp5_; #line 57 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _plugins_module_rep_unref0 (module_rep); #line 57 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return result; #line 1048 "Plugins.c" } static void plugins_value_module_rep_init (GValue* value) { #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" value->data[0].v_pointer = NULL; #line 1057 "Plugins.c" } static void plugins_value_module_rep_free_value (GValue* value) { #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (value->data[0].v_pointer) { #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" plugins_module_rep_unref (value->data[0].v_pointer); #line 1068 "Plugins.c" } } static void plugins_value_module_rep_copy_value (const GValue* src_value, GValue* dest_value) { #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (src_value->data[0].v_pointer) { #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" dest_value->data[0].v_pointer = plugins_module_rep_ref (src_value->data[0].v_pointer); #line 1081 "Plugins.c" } else { #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" dest_value->data[0].v_pointer = NULL; #line 1085 "Plugins.c" } } static gpointer plugins_value_module_rep_peek_pointer (const GValue* value) { #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return value->data[0].v_pointer; #line 1095 "Plugins.c" } static gchar* plugins_value_module_rep_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) { #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (collect_values[0].v_pointer) { #line 1107 "Plugins.c" PluginsModuleRep * object; object = collect_values[0].v_pointer; #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (object->parent_instance.g_class == NULL) { #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL); #line 1114 "Plugins.c" } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) { #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.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 1118 "Plugins.c" } #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" value->data[0].v_pointer = plugins_module_rep_ref (object); #line 1122 "Plugins.c" } else { #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" value->data[0].v_pointer = NULL; #line 1126 "Plugins.c" } #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return NULL; #line 1130 "Plugins.c" } static gchar* plugins_value_module_rep_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) { PluginsModuleRep ** object_p; object_p = collect_values[0].v_pointer; #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (!object_p) { #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value)); #line 1146 "Plugins.c" } #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (!value->data[0].v_pointer) { #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" *object_p = NULL; #line 1152 "Plugins.c" } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) { #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" *object_p = value->data[0].v_pointer; #line 1156 "Plugins.c" } else { #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" *object_p = plugins_module_rep_ref (value->data[0].v_pointer); #line 1160 "Plugins.c" } #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return NULL; #line 1164 "Plugins.c" } GParamSpec* plugins_param_spec_module_rep (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) { PluginsParamSpecModuleRep* spec; #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_val_if_fail (g_type_is_a (object_type, PLUGINS_TYPE_MODULE_REP), NULL); #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags); #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" G_PARAM_SPEC (spec)->value_type = object_type; #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return G_PARAM_SPEC (spec); #line 1184 "Plugins.c" } gpointer plugins_value_get_module_rep (const GValue* value) { #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PLUGINS_TYPE_MODULE_REP), NULL); #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return value->data[0].v_pointer; #line 1195 "Plugins.c" } void plugins_value_set_module_rep (GValue* value, gpointer v_object) { PluginsModuleRep * old; #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PLUGINS_TYPE_MODULE_REP)); #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" old = value->data[0].v_pointer; #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (v_object) { #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PLUGINS_TYPE_MODULE_REP)); #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value))); #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" value->data[0].v_pointer = v_object; #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" plugins_module_rep_ref (value->data[0].v_pointer); #line 1218 "Plugins.c" } else { #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" value->data[0].v_pointer = NULL; #line 1222 "Plugins.c" } #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (old) { #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" plugins_module_rep_unref (old); #line 1228 "Plugins.c" } } void plugins_value_take_module_rep (GValue* value, gpointer v_object) { PluginsModuleRep * old; #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PLUGINS_TYPE_MODULE_REP)); #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" old = value->data[0].v_pointer; #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (v_object) { #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PLUGINS_TYPE_MODULE_REP)); #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value))); #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" value->data[0].v_pointer = v_object; #line 1250 "Plugins.c" } else { #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" value->data[0].v_pointer = NULL; #line 1254 "Plugins.c" } #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (old) { #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" plugins_module_rep_unref (old); #line 1260 "Plugins.c" } } static void plugins_module_rep_class_init (PluginsModuleRepClass * klass) { #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" plugins_module_rep_parent_class = g_type_class_peek_parent (klass); #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" ((PluginsModuleRepClass *) klass)->finalize = plugins_module_rep_finalize; #line 1272 "Plugins.c" } static void plugins_module_rep_instance_init (PluginsModuleRep * self) { #line 36 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" self->spit_module = NULL; #line 37 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" self->spit_interface = SPIT_UNSUPPORTED_INTERFACE; #line 38 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" self->id = NULL; #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" self->ref_count = 1; #line 1287 "Plugins.c" } static void plugins_module_rep_finalize (PluginsModuleRep * obj) { PluginsModuleRep * self; #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" self = G_TYPE_CHECK_INSTANCE_CAST (obj, PLUGINS_TYPE_MODULE_REP, PluginsModuleRep); #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_signal_handlers_destroy (self); #line 48 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_object_unref0 (self->spit_module); #line 48 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" self->spit_module = NULL; #line 34 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_object_unref0 (self->file); #line 35 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_module_close0 (self->module); #line 36 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_object_unref0 (self->spit_module); #line 38 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_free0 (self->id); #line 1311 "Plugins.c" } GType plugins_module_rep_get_type (void) { static volatile gsize plugins_module_rep_type_id__volatile = 0; if (g_once_init_enter (&plugins_module_rep_type_id__volatile)) { static const GTypeValueTable g_define_type_value_table = { plugins_value_module_rep_init, plugins_value_module_rep_free_value, plugins_value_module_rep_copy_value, plugins_value_module_rep_peek_pointer, "p", plugins_value_module_rep_collect_value, "p", plugins_value_module_rep_lcopy_value }; static const GTypeInfo g_define_type_info = { sizeof (PluginsModuleRepClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) plugins_module_rep_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PluginsModuleRep), 0, (GInstanceInitFunc) plugins_module_rep_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 plugins_module_rep_type_id; plugins_module_rep_type_id = g_type_register_fundamental (g_type_fundamental_next (), "PluginsModuleRep", &g_define_type_info, &g_define_type_fundamental_info, 0); g_once_init_leave (&plugins_module_rep_type_id__volatile, plugins_module_rep_type_id); } return plugins_module_rep_type_id__volatile; } gpointer plugins_module_rep_ref (gpointer instance) { PluginsModuleRep * self; self = instance; #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_atomic_int_inc (&self->ref_count); #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return instance; #line 1340 "Plugins.c" } void plugins_module_rep_unref (gpointer instance) { PluginsModuleRep * self; self = instance; #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (g_atomic_int_dec_and_test (&self->ref_count)) { #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" PLUGINS_MODULE_REP_GET_CLASS (self)->finalize (self); #line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_type_free_instance ((GTypeInstance *) self); #line 1355 "Plugins.c" } } PluginsPluggableRep* plugins_pluggable_rep_construct (GType object_type, SpitPluggable* pluggable) { PluginsPluggableRep* self = NULL; const gchar* _tmp0_; #line 70 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_val_if_fail (SPIT_IS_PLUGGABLE (pluggable), NULL); #line 70 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" self = (PluginsPluggableRep*) g_type_create_instance (object_type); #line 71 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" plugins_pluggable_rep_set_pluggable (self, pluggable); #line 72 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp0_ = spit_pluggable_get_id (pluggable); #line 72 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" plugins_pluggable_rep_set_id (self, _tmp0_); #line 70 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return self; #line 1378 "Plugins.c" } PluginsPluggableRep* plugins_pluggable_rep_new (SpitPluggable* pluggable) { #line 70 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return plugins_pluggable_rep_construct (PLUGINS_TYPE_PLUGGABLE_REP, pluggable); #line 1387 "Plugins.c" } void plugins_pluggable_rep_activate (PluginsPluggableRep* self) { SpitPluggable* _tmp0_; FuzzyPropertyState saved_state = 0; ConfigFacade* _tmp1_; ConfigFacade* _tmp2_; const gchar* _tmp3_; FuzzyPropertyState _tmp4_; gboolean _tmp5_ = FALSE; gboolean _tmp6_ = FALSE; gboolean _tmp7_; SpitPluggable* _tmp12_; gboolean _tmp13_; #line 75 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_if_fail (PLUGINS_IS_PLUGGABLE_REP (self)); #line 78 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp0_ = self->priv->_pluggable; #line 78 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" plugins_pluggable_rep_set_is_core (self, plugins_is_core_pluggable (_tmp0_)); #line 80 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp1_ = config_facade_get_instance (); #line 80 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp2_ = _tmp1_; #line 80 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp3_ = self->priv->_id; #line 80 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp4_ = configuration_facade_is_plugin_enabled (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp3_); #line 80 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_object_unref0 (_tmp2_); #line 80 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" saved_state = _tmp4_; #line 81 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp7_ = self->priv->_is_core; #line 81 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (_tmp7_) { #line 1427 "Plugins.c" FuzzyPropertyState _tmp8_; #line 81 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp8_ = saved_state; #line 81 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp6_ = _tmp8_ != FUZZY_PROPERTY_STATE_DISABLED; #line 1433 "Plugins.c" } else { #line 81 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp6_ = FALSE; #line 1437 "Plugins.c" } #line 81 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (_tmp6_) { #line 81 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp5_ = TRUE; #line 1443 "Plugins.c" } else { gboolean _tmp9_ = FALSE; gboolean _tmp10_; #line 82 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp10_ = self->priv->_is_core; #line 82 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (!_tmp10_) { #line 1451 "Plugins.c" FuzzyPropertyState _tmp11_; #line 82 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp11_ = saved_state; #line 82 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp9_ = _tmp11_ == FUZZY_PROPERTY_STATE_ENABLED; #line 1457 "Plugins.c" } else { #line 82 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp9_ = FALSE; #line 1461 "Plugins.c" } #line 82 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp5_ = _tmp9_; #line 1465 "Plugins.c" } #line 81 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" self->priv->enabled = _tmp5_; #line 85 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp12_ = self->priv->_pluggable; #line 85 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp13_ = self->priv->enabled; #line 85 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" spit_pluggable_activation (_tmp12_, _tmp13_); #line 87 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" plugins_pluggable_rep_set_activated (self, TRUE); #line 1477 "Plugins.c" } gboolean plugins_pluggable_rep_is_enabled (PluginsPluggableRep* self) { gboolean result = FALSE; gboolean _tmp0_; #line 90 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_val_if_fail (PLUGINS_IS_PLUGGABLE_REP (self), FALSE); #line 91 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp0_ = self->priv->enabled; #line 91 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" result = _tmp0_; #line 91 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return result; #line 1494 "Plugins.c" } gboolean plugins_pluggable_rep_set_enabled (PluginsPluggableRep* self, gboolean enabled) { gboolean result = FALSE; gboolean _tmp0_; ConfigFacade* _tmp1_; ConfigFacade* _tmp2_; const gchar* _tmp3_; SpitPluggable* _tmp4_; #line 95 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_val_if_fail (PLUGINS_IS_PLUGGABLE_REP (self), FALSE); #line 96 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp0_ = self->priv->enabled; #line 96 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (enabled == _tmp0_) { #line 97 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" result = FALSE; #line 97 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return result; #line 1518 "Plugins.c" } #line 99 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" self->priv->enabled = enabled; #line 100 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp1_ = config_facade_get_instance (); #line 100 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp2_ = _tmp1_; #line 100 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp3_ = self->priv->_id; #line 100 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" configuration_facade_set_plugin_enabled (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp3_, enabled); #line 100 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_object_unref0 (_tmp2_); #line 101 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp4_ = self->priv->_pluggable; #line 101 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" spit_pluggable_activation (_tmp4_, enabled); #line 103 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" result = TRUE; #line 103 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return result; #line 1540 "Plugins.c" } SpitPluggable* plugins_pluggable_rep_get_pluggable (PluginsPluggableRep* self) { SpitPluggable* result; SpitPluggable* _tmp0_; #line 62 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_val_if_fail (PLUGINS_IS_PLUGGABLE_REP (self), NULL); #line 62 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp0_ = self->priv->_pluggable; #line 62 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" result = _tmp0_; #line 62 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return result; #line 1557 "Plugins.c" } static void plugins_pluggable_rep_set_pluggable (PluginsPluggableRep* self, SpitPluggable* value) { SpitPluggable* _tmp0_; #line 62 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_if_fail (PLUGINS_IS_PLUGGABLE_REP (self)); #line 62 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp0_ = _g_object_ref0 (value); #line 62 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_object_unref0 (self->priv->_pluggable); #line 62 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" self->priv->_pluggable = _tmp0_; #line 1574 "Plugins.c" } const gchar* plugins_pluggable_rep_get_id (PluginsPluggableRep* self) { const gchar* result; const gchar* _tmp0_; #line 63 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_val_if_fail (PLUGINS_IS_PLUGGABLE_REP (self), NULL); #line 63 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp0_ = self->priv->_id; #line 63 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" result = _tmp0_; #line 63 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return result; #line 1591 "Plugins.c" } static void plugins_pluggable_rep_set_id (PluginsPluggableRep* self, const gchar* value) { gchar* _tmp0_; #line 63 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_if_fail (PLUGINS_IS_PLUGGABLE_REP (self)); #line 63 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp0_ = g_strdup (value); #line 63 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_free0 (self->priv->_id); #line 63 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" self->priv->_id = _tmp0_; #line 1608 "Plugins.c" } gboolean plugins_pluggable_rep_get_is_core (PluginsPluggableRep* self) { gboolean result; gboolean _tmp0_; #line 64 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_val_if_fail (PLUGINS_IS_PLUGGABLE_REP (self), FALSE); #line 64 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp0_ = self->priv->_is_core; #line 64 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" result = _tmp0_; #line 64 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return result; #line 1625 "Plugins.c" } static void plugins_pluggable_rep_set_is_core (PluginsPluggableRep* self, gboolean value) { #line 64 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_if_fail (PLUGINS_IS_PLUGGABLE_REP (self)); #line 64 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" self->priv->_is_core = value; #line 1637 "Plugins.c" } gboolean plugins_pluggable_rep_get_activated (PluginsPluggableRep* self) { gboolean result; gboolean _tmp0_; #line 65 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_val_if_fail (PLUGINS_IS_PLUGGABLE_REP (self), FALSE); #line 65 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp0_ = self->priv->_activated; #line 65 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" result = _tmp0_; #line 65 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return result; #line 1654 "Plugins.c" } static void plugins_pluggable_rep_set_activated (PluginsPluggableRep* self, gboolean value) { #line 65 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_if_fail (PLUGINS_IS_PLUGGABLE_REP (self)); #line 65 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" self->priv->_activated = value; #line 1666 "Plugins.c" } static void plugins_value_pluggable_rep_init (GValue* value) { #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" value->data[0].v_pointer = NULL; #line 1675 "Plugins.c" } static void plugins_value_pluggable_rep_free_value (GValue* value) { #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (value->data[0].v_pointer) { #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" plugins_pluggable_rep_unref (value->data[0].v_pointer); #line 1686 "Plugins.c" } } static void plugins_value_pluggable_rep_copy_value (const GValue* src_value, GValue* dest_value) { #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (src_value->data[0].v_pointer) { #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" dest_value->data[0].v_pointer = plugins_pluggable_rep_ref (src_value->data[0].v_pointer); #line 1699 "Plugins.c" } else { #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" dest_value->data[0].v_pointer = NULL; #line 1703 "Plugins.c" } } static gpointer plugins_value_pluggable_rep_peek_pointer (const GValue* value) { #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return value->data[0].v_pointer; #line 1713 "Plugins.c" } static gchar* plugins_value_pluggable_rep_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) { #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (collect_values[0].v_pointer) { #line 1725 "Plugins.c" PluginsPluggableRep * object; object = collect_values[0].v_pointer; #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (object->parent_instance.g_class == NULL) { #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL); #line 1732 "Plugins.c" } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) { #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.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 1736 "Plugins.c" } #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" value->data[0].v_pointer = plugins_pluggable_rep_ref (object); #line 1740 "Plugins.c" } else { #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" value->data[0].v_pointer = NULL; #line 1744 "Plugins.c" } #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return NULL; #line 1748 "Plugins.c" } static gchar* plugins_value_pluggable_rep_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) { PluginsPluggableRep ** object_p; object_p = collect_values[0].v_pointer; #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (!object_p) { #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value)); #line 1764 "Plugins.c" } #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (!value->data[0].v_pointer) { #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" *object_p = NULL; #line 1770 "Plugins.c" } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) { #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" *object_p = value->data[0].v_pointer; #line 1774 "Plugins.c" } else { #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" *object_p = plugins_pluggable_rep_ref (value->data[0].v_pointer); #line 1778 "Plugins.c" } #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return NULL; #line 1782 "Plugins.c" } GParamSpec* plugins_param_spec_pluggable_rep (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) { PluginsParamSpecPluggableRep* spec; #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_val_if_fail (g_type_is_a (object_type, PLUGINS_TYPE_PLUGGABLE_REP), NULL); #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags); #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" G_PARAM_SPEC (spec)->value_type = object_type; #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return G_PARAM_SPEC (spec); #line 1802 "Plugins.c" } gpointer plugins_value_get_pluggable_rep (const GValue* value) { #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PLUGINS_TYPE_PLUGGABLE_REP), NULL); #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return value->data[0].v_pointer; #line 1813 "Plugins.c" } void plugins_value_set_pluggable_rep (GValue* value, gpointer v_object) { PluginsPluggableRep * old; #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PLUGINS_TYPE_PLUGGABLE_REP)); #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" old = value->data[0].v_pointer; #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (v_object) { #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PLUGINS_TYPE_PLUGGABLE_REP)); #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value))); #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" value->data[0].v_pointer = v_object; #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" plugins_pluggable_rep_ref (value->data[0].v_pointer); #line 1836 "Plugins.c" } else { #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" value->data[0].v_pointer = NULL; #line 1840 "Plugins.c" } #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (old) { #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" plugins_pluggable_rep_unref (old); #line 1846 "Plugins.c" } } void plugins_value_take_pluggable_rep (GValue* value, gpointer v_object) { PluginsPluggableRep * old; #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PLUGINS_TYPE_PLUGGABLE_REP)); #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" old = value->data[0].v_pointer; #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (v_object) { #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PLUGINS_TYPE_PLUGGABLE_REP)); #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value))); #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" value->data[0].v_pointer = v_object; #line 1868 "Plugins.c" } else { #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" value->data[0].v_pointer = NULL; #line 1872 "Plugins.c" } #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (old) { #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" plugins_pluggable_rep_unref (old); #line 1878 "Plugins.c" } } static void plugins_pluggable_rep_class_init (PluginsPluggableRepClass * klass) { #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" plugins_pluggable_rep_parent_class = g_type_class_peek_parent (klass); #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" ((PluginsPluggableRepClass *) klass)->finalize = plugins_pluggable_rep_finalize; #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_type_class_add_private (klass, sizeof (PluginsPluggableRepPrivate)); #line 1892 "Plugins.c" } static void plugins_pluggable_rep_instance_init (PluginsPluggableRep * self) { #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" self->priv = PLUGINS_PLUGGABLE_REP_GET_PRIVATE (self); #line 64 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" self->priv->_is_core = FALSE; #line 65 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" self->priv->_activated = FALSE; #line 67 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" self->priv->enabled = FALSE; #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" self->ref_count = 1; #line 1909 "Plugins.c" } static void plugins_pluggable_rep_finalize (PluginsPluggableRep * obj) { PluginsPluggableRep * self; #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" self = G_TYPE_CHECK_INSTANCE_CAST (obj, PLUGINS_TYPE_PLUGGABLE_REP, PluginsPluggableRep); #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_signal_handlers_destroy (self); #line 62 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_object_unref0 (self->priv->_pluggable); #line 63 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_free0 (self->priv->_id); #line 1925 "Plugins.c" } GType plugins_pluggable_rep_get_type (void) { static volatile gsize plugins_pluggable_rep_type_id__volatile = 0; if (g_once_init_enter (&plugins_pluggable_rep_type_id__volatile)) { static const GTypeValueTable g_define_type_value_table = { plugins_value_pluggable_rep_init, plugins_value_pluggable_rep_free_value, plugins_value_pluggable_rep_copy_value, plugins_value_pluggable_rep_peek_pointer, "p", plugins_value_pluggable_rep_collect_value, "p", plugins_value_pluggable_rep_lcopy_value }; static const GTypeInfo g_define_type_info = { sizeof (PluginsPluggableRepClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) plugins_pluggable_rep_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PluginsPluggableRep), 0, (GInstanceInitFunc) plugins_pluggable_rep_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 plugins_pluggable_rep_type_id; plugins_pluggable_rep_type_id = g_type_register_fundamental (g_type_fundamental_next (), "PluginsPluggableRep", &g_define_type_info, &g_define_type_fundamental_info, 0); g_once_init_leave (&plugins_pluggable_rep_type_id__volatile, plugins_pluggable_rep_type_id); } return plugins_pluggable_rep_type_id__volatile; } gpointer plugins_pluggable_rep_ref (gpointer instance) { PluginsPluggableRep * self; self = instance; #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_atomic_int_inc (&self->ref_count); #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return instance; #line 1954 "Plugins.c" } void plugins_pluggable_rep_unref (gpointer instance) { PluginsPluggableRep * self; self = instance; #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (g_atomic_int_dec_and_test (&self->ref_count)) { #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" PLUGINS_PLUGGABLE_REP_GET_CLASS (self)->finalize (self); #line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_type_free_instance ((GTypeInstance *) self); #line 1969 "Plugins.c" } } static void _vala_array_add50 (GFile** * array, int* length, int* size, GFile* value) { #line 115 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if ((*length) == (*size)) { #line 115 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" *size = (*size) ? (2 * (*size)) : 4; #line 115 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" *array = g_renew (GFile*, *array, (*size) + 1); #line 1986 "Plugins.c" } #line 115 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" (*array)[(*length)++] = value; #line 115 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" (*array)[*length] = NULL; #line 1992 "Plugins.c" } static void _vala_array_add51 (GFile** * array, int* length, int* size, GFile* value) { #line 116 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if ((*length) == (*size)) { #line 116 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" *size = (*size) ? (2 * (*size)) : 4; #line 116 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" *array = g_renew (GFile*, *array, (*size) + 1); #line 2008 "Plugins.c" } #line 116 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" (*array)[(*length)++] = value; #line 116 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" (*array)[*length] = NULL; #line 2014 "Plugins.c" } void plugins_init (GError** error) { GFile** _tmp0_; GFile** _tmp1_; gint _tmp1__length1; GFile* _tmp2_; GFile** _tmp3_; gint _tmp3__length1; GFile* _tmp4_; GeeHashMap* _tmp5_; GeeHashMap* _tmp6_; GeeHashMap* _tmp7_; GeeHashSet* _tmp8_; GFile** _tmp9_; gint _tmp9__length1; GError * _inner_error_ = NULL; #line 114 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp0_ = g_new0 (GFile*, 0 + 1); #line 114 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" plugins_search_dirs = (_vala_array_free (plugins_search_dirs, plugins_search_dirs_length1, (GDestroyNotify) g_object_unref), NULL); #line 114 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" plugins_search_dirs = _tmp0_; #line 114 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" plugins_search_dirs_length1 = 0; #line 114 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _plugins_search_dirs_size_ = plugins_search_dirs_length1; #line 115 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp1_ = plugins_search_dirs; #line 115 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp1__length1 = plugins_search_dirs_length1; #line 115 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp2_ = app_dirs_get_user_plugins_dir (); #line 115 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _vala_array_add50 (&plugins_search_dirs, &plugins_search_dirs_length1, &_plugins_search_dirs_size_, _tmp2_); #line 116 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp3_ = plugins_search_dirs; #line 116 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp3__length1 = plugins_search_dirs_length1; #line 116 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp4_ = app_dirs_get_system_plugins_dir (); #line 116 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _vala_array_add51 (&plugins_search_dirs, &plugins_search_dirs_length1, &_plugins_search_dirs_size_, _tmp4_); #line 118 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp5_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, PLUGINS_TYPE_MODULE_REP, (GBoxedCopyFunc) plugins_module_rep_ref, (GDestroyNotify) plugins_module_rep_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); #line 118 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_object_unref0 (plugins_module_table); #line 118 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" plugins_module_table = _tmp5_; #line 119 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp6_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, PLUGINS_TYPE_PLUGGABLE_REP, (GBoxedCopyFunc) plugins_pluggable_rep_ref, (GDestroyNotify) plugins_pluggable_rep_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); #line 119 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_object_unref0 (plugins_pluggable_table); #line 119 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" plugins_pluggable_table = _tmp6_; #line 120 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp7_ = gee_hash_map_new (G_TYPE_GTYPE, NULL, NULL, PLUGINS_TYPE_EXTENSION_POINT, (GBoxedCopyFunc) plugins_extension_point_ref, (GDestroyNotify) plugins_extension_point_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); #line 120 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_object_unref0 (plugins_extension_points); #line 120 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" plugins_extension_points = _tmp7_; #line 121 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp8_ = gee_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, NULL, NULL, NULL, NULL, NULL, NULL); #line 121 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_object_unref0 (plugins_core_ids); #line 121 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" plugins_core_ids = _tmp8_; #line 125 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (!g_module_supported ()) { #line 126 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_warning ("Plugins.vala:126: Plugins not support: GModule not supported on this p" \ "latform."); #line 128 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return; #line 2091 "Plugins.c" } #line 131 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp9_ = plugins_search_dirs; #line 131 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp9__length1 = plugins_search_dirs_length1; #line 2097 "Plugins.c" { GFile** dir_collection = NULL; gint dir_collection_length1 = 0; gint _dir_collection_size_ = 0; gint dir_it = 0; #line 131 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" dir_collection = _tmp9_; #line 131 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" dir_collection_length1 = _tmp9__length1; #line 131 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" for (dir_it = 0; dir_it < _tmp9__length1; dir_it = dir_it + 1) { #line 2109 "Plugins.c" GFile* _tmp10_; GFile* dir = NULL; #line 131 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp10_ = _g_object_ref0 (dir_collection[dir_it]); #line 131 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" dir = _tmp10_; #line 2116 "Plugins.c" { { GFile* _tmp11_; #line 133 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp11_ = dir; #line 133 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" plugins_search_for_plugins (_tmp11_, &_inner_error_); #line 133 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (G_UNLIKELY (_inner_error_ != NULL)) { #line 2126 "Plugins.c" goto __catch39_g_error; } } goto __finally39; __catch39_g_error: { GError* err = NULL; GFile* _tmp12_; gchar* _tmp13_; gchar* _tmp14_; GError* _tmp15_; const gchar* _tmp16_; #line 132 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" err = _inner_error_; #line 132 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _inner_error_ = NULL; #line 135 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp12_ = dir; #line 135 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp13_ = g_file_get_path (_tmp12_); #line 135 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp14_ = _tmp13_; #line 135 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp15_ = err; #line 135 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp16_ = _tmp15_->message; #line 135 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_debug ("Plugins.vala:135: Unable to search directory %s for plugins: %s", _tmp14_, _tmp16_); #line 135 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_free0 (_tmp14_); #line 132 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_error_free0 (err); #line 2159 "Plugins.c" } __finally39: #line 132 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (G_UNLIKELY (_inner_error_ != NULL)) { #line 132 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_propagate_error (error, _inner_error_); #line 132 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_object_unref0 (dir); #line 132 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return; #line 2170 "Plugins.c" } #line 131 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_object_unref0 (dir); #line 2174 "Plugins.c" } } } } void plugins_terminate (void) { #line 141 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" plugins_search_dirs = (_vala_array_free (plugins_search_dirs, plugins_search_dirs_length1, (GDestroyNotify) g_object_unref), NULL); #line 141 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" plugins_search_dirs = NULL; #line 141 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" plugins_search_dirs_length1 = 0; #line 141 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _plugins_search_dirs_size_ = plugins_search_dirs_length1; #line 142 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_object_unref0 (plugins_pluggable_table); #line 142 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" plugins_pluggable_table = NULL; #line 143 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_object_unref0 (plugins_module_table); #line 143 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" plugins_module_table = NULL; #line 144 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_object_unref0 (plugins_extension_points); #line 144 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" plugins_extension_points = NULL; #line 145 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_object_unref0 (plugins_core_ids); #line 145 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" plugins_core_ids = NULL; #line 2208 "Plugins.c" } static PluginsNotifier* plugins_notifier_construct (GType object_type) { PluginsNotifier* self = NULL; #line 153 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" self = (PluginsNotifier*) g_type_create_instance (object_type); #line 153 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return self; #line 2220 "Plugins.c" } static PluginsNotifier* plugins_notifier_new (void) { #line 153 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return plugins_notifier_construct (PLUGINS_TYPE_NOTIFIER); #line 2229 "Plugins.c" } static gpointer _plugins_notifier_ref0 (gpointer self) { #line 160 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return self ? plugins_notifier_ref (self) : NULL; #line 2238 "Plugins.c" } PluginsNotifier* plugins_notifier_get_instance (void) { PluginsNotifier* result = NULL; PluginsNotifier* _tmp0_; PluginsNotifier* _tmp2_; PluginsNotifier* _tmp3_; #line 157 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp0_ = plugins_notifier_instance; #line 157 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (_tmp0_ == NULL) { #line 2253 "Plugins.c" PluginsNotifier* _tmp1_; #line 158 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp1_ = plugins_notifier_new (); #line 158 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _plugins_notifier_unref0 (plugins_notifier_instance); #line 158 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" plugins_notifier_instance = _tmp1_; #line 2261 "Plugins.c" } #line 160 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp2_ = plugins_notifier_instance; #line 160 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp3_ = _plugins_notifier_ref0 (_tmp2_); #line 160 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" result = _tmp3_; #line 160 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return result; #line 2271 "Plugins.c" } static void g_cclosure_user_marshal_VOID__OBJECT_BOOLEAN (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) { typedef void (*GMarshalFunc_VOID__OBJECT_BOOLEAN) (gpointer data1, gpointer arg_1, gboolean arg_2, gpointer data2); register GMarshalFunc_VOID__OBJECT_BOOLEAN callback; register GCClosure * cc; register gpointer data1; register gpointer data2; cc = (GCClosure *) closure; #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_if_fail (n_param_values == 3); #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (G_CCLOSURE_SWAP_DATA (closure)) { #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" data1 = closure->data; #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" data2 = param_values->data[0].v_pointer; #line 2297 "Plugins.c" } else { #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" data1 = param_values->data[0].v_pointer; #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" data2 = closure->data; #line 2303 "Plugins.c" } #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" callback = (GMarshalFunc_VOID__OBJECT_BOOLEAN) (marshal_data ? marshal_data : cc->callback); #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" callback (data1, g_value_get_object (param_values + 1), g_value_get_boolean (param_values + 2), data2); #line 2309 "Plugins.c" } static void plugins_value_notifier_init (GValue* value) { #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" value->data[0].v_pointer = NULL; #line 2318 "Plugins.c" } static void plugins_value_notifier_free_value (GValue* value) { #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (value->data[0].v_pointer) { #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" plugins_notifier_unref (value->data[0].v_pointer); #line 2329 "Plugins.c" } } static void plugins_value_notifier_copy_value (const GValue* src_value, GValue* dest_value) { #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (src_value->data[0].v_pointer) { #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" dest_value->data[0].v_pointer = plugins_notifier_ref (src_value->data[0].v_pointer); #line 2342 "Plugins.c" } else { #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" dest_value->data[0].v_pointer = NULL; #line 2346 "Plugins.c" } } static gpointer plugins_value_notifier_peek_pointer (const GValue* value) { #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return value->data[0].v_pointer; #line 2356 "Plugins.c" } static gchar* plugins_value_notifier_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) { #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (collect_values[0].v_pointer) { #line 2368 "Plugins.c" PluginsNotifier * object; object = collect_values[0].v_pointer; #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (object->parent_instance.g_class == NULL) { #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL); #line 2375 "Plugins.c" } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) { #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.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 2379 "Plugins.c" } #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" value->data[0].v_pointer = plugins_notifier_ref (object); #line 2383 "Plugins.c" } else { #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" value->data[0].v_pointer = NULL; #line 2387 "Plugins.c" } #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return NULL; #line 2391 "Plugins.c" } static gchar* plugins_value_notifier_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) { PluginsNotifier ** object_p; object_p = collect_values[0].v_pointer; #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (!object_p) { #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value)); #line 2407 "Plugins.c" } #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (!value->data[0].v_pointer) { #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" *object_p = NULL; #line 2413 "Plugins.c" } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) { #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" *object_p = value->data[0].v_pointer; #line 2417 "Plugins.c" } else { #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" *object_p = plugins_notifier_ref (value->data[0].v_pointer); #line 2421 "Plugins.c" } #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return NULL; #line 2425 "Plugins.c" } GParamSpec* plugins_param_spec_notifier (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) { PluginsParamSpecNotifier* spec; #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_val_if_fail (g_type_is_a (object_type, PLUGINS_TYPE_NOTIFIER), NULL); #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags); #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" G_PARAM_SPEC (spec)->value_type = object_type; #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return G_PARAM_SPEC (spec); #line 2445 "Plugins.c" } gpointer plugins_value_get_notifier (const GValue* value) { #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PLUGINS_TYPE_NOTIFIER), NULL); #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return value->data[0].v_pointer; #line 2456 "Plugins.c" } void plugins_value_set_notifier (GValue* value, gpointer v_object) { PluginsNotifier * old; #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PLUGINS_TYPE_NOTIFIER)); #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" old = value->data[0].v_pointer; #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (v_object) { #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PLUGINS_TYPE_NOTIFIER)); #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value))); #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" value->data[0].v_pointer = v_object; #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" plugins_notifier_ref (value->data[0].v_pointer); #line 2479 "Plugins.c" } else { #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" value->data[0].v_pointer = NULL; #line 2483 "Plugins.c" } #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (old) { #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" plugins_notifier_unref (old); #line 2489 "Plugins.c" } } void plugins_value_take_notifier (GValue* value, gpointer v_object) { PluginsNotifier * old; #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PLUGINS_TYPE_NOTIFIER)); #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" old = value->data[0].v_pointer; #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (v_object) { #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PLUGINS_TYPE_NOTIFIER)); #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value))); #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" value->data[0].v_pointer = v_object; #line 2511 "Plugins.c" } else { #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" value->data[0].v_pointer = NULL; #line 2515 "Plugins.c" } #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (old) { #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" plugins_notifier_unref (old); #line 2521 "Plugins.c" } } static void plugins_notifier_class_init (PluginsNotifierClass * klass) { #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" plugins_notifier_parent_class = g_type_class_peek_parent (klass); #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" ((PluginsNotifierClass *) klass)->finalize = plugins_notifier_finalize; #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" plugins_notifier_signals[PLUGINS_NOTIFIER_PLUGGABLE_ACTIVATION_SIGNAL] = g_signal_new ("pluggable-activation", PLUGINS_TYPE_NOTIFIER, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__OBJECT_BOOLEAN, G_TYPE_NONE, 2, SPIT_TYPE_PLUGGABLE, G_TYPE_BOOLEAN); #line 2535 "Plugins.c" } static void plugins_notifier_instance_init (PluginsNotifier * self) { #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" self->ref_count = 1; #line 2544 "Plugins.c" } static void plugins_notifier_finalize (PluginsNotifier * obj) { PluginsNotifier * self; #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" self = G_TYPE_CHECK_INSTANCE_CAST (obj, PLUGINS_TYPE_NOTIFIER, PluginsNotifier); #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_signal_handlers_destroy (self); #line 2556 "Plugins.c" } GType plugins_notifier_get_type (void) { static volatile gsize plugins_notifier_type_id__volatile = 0; if (g_once_init_enter (&plugins_notifier_type_id__volatile)) { static const GTypeValueTable g_define_type_value_table = { plugins_value_notifier_init, plugins_value_notifier_free_value, plugins_value_notifier_copy_value, plugins_value_notifier_peek_pointer, "p", plugins_value_notifier_collect_value, "p", plugins_value_notifier_lcopy_value }; static const GTypeInfo g_define_type_info = { sizeof (PluginsNotifierClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) plugins_notifier_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PluginsNotifier), 0, (GInstanceInitFunc) plugins_notifier_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 plugins_notifier_type_id; plugins_notifier_type_id = g_type_register_fundamental (g_type_fundamental_next (), "PluginsNotifier", &g_define_type_info, &g_define_type_fundamental_info, 0); g_once_init_leave (&plugins_notifier_type_id__volatile, plugins_notifier_type_id); } return plugins_notifier_type_id__volatile; } gpointer plugins_notifier_ref (gpointer instance) { PluginsNotifier * self; self = instance; #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_atomic_int_inc (&self->ref_count); #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return instance; #line 2585 "Plugins.c" } void plugins_notifier_unref (gpointer instance) { PluginsNotifier * self; self = instance; #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (g_atomic_int_dec_and_test (&self->ref_count)) { #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" PLUGINS_NOTIFIER_GET_CLASS (self)->finalize (self); #line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_type_free_instance ((GTypeInstance *) self); #line 2600 "Plugins.c" } } void plugins_register_extension_point (GType type, const gchar* name, const gchar* icon_name, gchar** core_ids, int core_ids_length1) { GeeHashMap* _tmp0_; GeeHashMap* _tmp1_; PluginsExtensionPoint* _tmp2_; PluginsExtensionPoint* _tmp3_; #line 164 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_if_fail (name != NULL); #line 166 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp0_ = plugins_extension_points; #line 166 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _vala_assert (!gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), (gpointer) ((gintptr) type)), "!extension_points.has_key(type)"); #line 168 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp1_ = plugins_extension_points; #line 168 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp2_ = plugins_extension_point_new (type, name, icon_name, core_ids, core_ids_length1); #line 168 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp3_ = _tmp2_; #line 168 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), (gpointer) ((gintptr) type), _tmp3_); #line 168 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _plugins_extension_point_unref0 (_tmp3_); #line 171 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (core_ids != NULL) { #line 2634 "Plugins.c" { gchar** core_id_collection = NULL; gint core_id_collection_length1 = 0; gint _core_id_collection_size_ = 0; gint core_id_it = 0; #line 172 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" core_id_collection = core_ids; #line 172 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" core_id_collection_length1 = core_ids_length1; #line 172 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" for (core_id_it = 0; core_id_it < core_ids_length1; core_id_it = core_id_it + 1) { #line 2646 "Plugins.c" gchar* _tmp4_; gchar* core_id = NULL; #line 172 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp4_ = g_strdup (core_id_collection[core_id_it]); #line 172 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" core_id = _tmp4_; #line 2653 "Plugins.c" { GeeHashSet* _tmp5_; const gchar* _tmp6_; #line 173 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp5_ = plugins_core_ids; #line 173 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp6_ = core_id; #line 173 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp6_); #line 172 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_free0 (core_id); #line 2665 "Plugins.c" } } } } { GeeIterator* _pluggable_rep_it = NULL; GeeHashMap* _tmp7_; GeeCollection* _tmp8_; GeeCollection* _tmp9_; GeeCollection* _tmp10_; GeeIterator* _tmp11_; GeeIterator* _tmp12_; #line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp7_ = plugins_pluggable_table; #line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp8_ = gee_abstract_map_get_values (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap)); #line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp9_ = _tmp8_; #line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp10_ = _tmp9_; #line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp11_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_ITERABLE, GeeIterable)); #line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp12_ = _tmp11_; #line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_object_unref0 (_tmp10_); #line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _pluggable_rep_it = _tmp12_; #line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" while (TRUE) { #line 2696 "Plugins.c" GeeIterator* _tmp13_; PluginsPluggableRep* pluggable_rep = NULL; GeeIterator* _tmp14_; gpointer _tmp15_; PluginsPluggableRep* _tmp16_; SpitPluggable* _tmp17_; SpitPluggable* _tmp18_; PluginsPluggableRep* _tmp19_; PluginsNotifier* _tmp20_; PluginsNotifier* _tmp21_; PluginsPluggableRep* _tmp22_; SpitPluggable* _tmp23_; SpitPluggable* _tmp24_; PluginsPluggableRep* _tmp25_; #line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp13_ = _pluggable_rep_it; #line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (!gee_iterator_next (_tmp13_)) { #line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" break; #line 2717 "Plugins.c" } #line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp14_ = _pluggable_rep_it; #line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp15_ = gee_iterator_get (_tmp14_); #line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" pluggable_rep = (PluginsPluggableRep*) _tmp15_; #line 178 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp16_ = pluggable_rep; #line 178 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp17_ = plugins_pluggable_rep_get_pluggable (_tmp16_); #line 178 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp18_ = _tmp17_; #line 178 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (!g_type_is_a (G_TYPE_FROM_INSTANCE (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, G_TYPE_OBJECT, GObject)), type)) { #line 179 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _plugins_pluggable_rep_unref0 (pluggable_rep); #line 179 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" continue; #line 2737 "Plugins.c" } #line 181 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp19_ = pluggable_rep; #line 181 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" plugins_pluggable_rep_activate (_tmp19_); #line 182 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp20_ = plugins_notifier_get_instance (); #line 182 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp21_ = _tmp20_; #line 182 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp22_ = pluggable_rep; #line 182 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp23_ = plugins_pluggable_rep_get_pluggable (_tmp22_); #line 182 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp24_ = _tmp23_; #line 182 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp25_ = pluggable_rep; #line 182 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_signal_emit (_tmp21_, plugins_notifier_signals[PLUGINS_NOTIFIER_PLUGGABLE_ACTIVATION_SIGNAL], 0, _tmp24_, plugins_pluggable_rep_is_enabled (_tmp25_)); #line 182 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _plugins_notifier_unref0 (_tmp21_); #line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _plugins_pluggable_rep_unref0 (pluggable_rep); #line 2761 "Plugins.c" } #line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_object_unref0 (_pluggable_rep_it); #line 2765 "Plugins.c" } } GeeCollection* plugins_get_pluggables (gboolean include_disabled) { GeeCollection* result = NULL; GeeCollection* all = NULL; GeeHashSet* _tmp0_; #line 187 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp0_ = gee_hash_set_new (SPIT_TYPE_PLUGGABLE, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL); #line 187 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" all = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection); #line 2780 "Plugins.c" { GeeIterator* _pluggable_rep_it = NULL; GeeHashMap* _tmp1_; GeeCollection* _tmp2_; GeeCollection* _tmp3_; GeeCollection* _tmp4_; GeeIterator* _tmp5_; GeeIterator* _tmp6_; #line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp1_ = plugins_pluggable_table; #line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp2_ = gee_abstract_map_get_values (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap)); #line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp3_ = _tmp2_; #line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp4_ = _tmp3_; #line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp5_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_ITERABLE, GeeIterable)); #line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp6_ = _tmp5_; #line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_object_unref0 (_tmp4_); #line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _pluggable_rep_it = _tmp6_; #line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" while (TRUE) { #line 2807 "Plugins.c" GeeIterator* _tmp7_; PluginsPluggableRep* pluggable_rep = NULL; GeeIterator* _tmp8_; gpointer _tmp9_; gboolean _tmp10_ = FALSE; PluginsPluggableRep* _tmp11_; gboolean _tmp12_; gboolean _tmp13_; #line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp7_ = _pluggable_rep_it; #line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (!gee_iterator_next (_tmp7_)) { #line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" break; #line 2822 "Plugins.c" } #line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp8_ = _pluggable_rep_it; #line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp9_ = gee_iterator_get (_tmp8_); #line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" pluggable_rep = (PluginsPluggableRep*) _tmp9_; #line 189 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp11_ = pluggable_rep; #line 189 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp12_ = plugins_pluggable_rep_get_activated (_tmp11_); #line 189 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp13_ = _tmp12_; #line 189 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (_tmp13_) { #line 2838 "Plugins.c" gboolean _tmp14_ = FALSE; #line 189 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (include_disabled) { #line 189 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp14_ = TRUE; #line 2844 "Plugins.c" } else { PluginsPluggableRep* _tmp15_; #line 189 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp15_ = pluggable_rep; #line 189 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp14_ = plugins_pluggable_rep_is_enabled (_tmp15_); #line 2851 "Plugins.c" } #line 189 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp10_ = _tmp14_; #line 2855 "Plugins.c" } else { #line 189 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp10_ = FALSE; #line 2859 "Plugins.c" } #line 189 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (_tmp10_) { #line 2863 "Plugins.c" GeeCollection* _tmp16_; PluginsPluggableRep* _tmp17_; SpitPluggable* _tmp18_; SpitPluggable* _tmp19_; #line 190 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp16_ = all; #line 190 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp17_ = pluggable_rep; #line 190 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp18_ = plugins_pluggable_rep_get_pluggable (_tmp17_); #line 190 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp19_ = _tmp18_; #line 190 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" gee_collection_add (_tmp16_, _tmp19_); #line 2878 "Plugins.c" } #line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _plugins_pluggable_rep_unref0 (pluggable_rep); #line 2882 "Plugins.c" } #line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_object_unref0 (_pluggable_rep_it); #line 2886 "Plugins.c" } #line 193 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" result = all; #line 193 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return result; #line 2892 "Plugins.c" } gboolean plugins_is_core_pluggable (SpitPluggable* pluggable) { gboolean result = FALSE; GeeHashSet* _tmp0_; const gchar* _tmp1_; #line 196 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_val_if_fail (SPIT_IS_PLUGGABLE (pluggable), FALSE); #line 197 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp0_ = plugins_core_ids; #line 197 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp1_ = spit_pluggable_get_id (pluggable); #line 197 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" result = gee_abstract_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp1_); #line 197 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return result; #line 2912 "Plugins.c" } static SpitPluggable** _vala_array_dup17 (SpitPluggable** self, int length) { SpitPluggable** result; int i; #line 202 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" result = g_new0 (SpitPluggable*, length + 1); #line 202 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" for (i = 0; i < length; i++) { #line 2926 "Plugins.c" SpitPluggable* _tmp0_; #line 202 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp0_ = _g_object_ref0 (self[i]); #line 202 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" result[i] = _tmp0_; #line 2932 "Plugins.c" } #line 202 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return result; #line 2936 "Plugins.c" } PluginsModuleRep* plugins_get_module_for_pluggable (SpitPluggable* needle) { PluginsModuleRep* result = NULL; #line 200 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_val_if_fail (SPIT_IS_PLUGGABLE (needle), NULL); #line 2946 "Plugins.c" { GeeIterator* _module_rep_it = NULL; GeeHashMap* _tmp0_; GeeCollection* _tmp1_; GeeCollection* _tmp2_; GeeCollection* _tmp3_; GeeIterator* _tmp4_; GeeIterator* _tmp5_; #line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp0_ = plugins_module_table; #line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp1_ = gee_abstract_map_get_values (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap)); #line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp2_ = _tmp1_; #line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp3_ = _tmp2_; #line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable)); #line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp5_ = _tmp4_; #line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_object_unref0 (_tmp3_); #line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _module_rep_it = _tmp5_; #line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" while (TRUE) { #line 2973 "Plugins.c" GeeIterator* _tmp6_; PluginsModuleRep* module_rep = NULL; GeeIterator* _tmp7_; gpointer _tmp8_; SpitPluggable** pluggables = NULL; PluginsModuleRep* _tmp9_; SpitModule* _tmp10_; gint _tmp11_; SpitPluggable** _tmp12_; SpitPluggable** _tmp13_; gint _tmp13__length1; gint pluggables_length1; gint _pluggables_size_; SpitPluggable** _tmp14_; gint _tmp14__length1; #line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp6_ = _module_rep_it; #line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (!gee_iterator_next (_tmp6_)) { #line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" break; #line 2995 "Plugins.c" } #line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp7_ = _module_rep_it; #line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp8_ = gee_iterator_get (_tmp7_); #line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" module_rep = (PluginsModuleRep*) _tmp8_; #line 202 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp9_ = module_rep; #line 202 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp10_ = _tmp9_->spit_module; #line 202 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp12_ = spit_module_get_pluggables (_tmp10_, &_tmp11_); #line 202 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp13_ = (_tmp12_ != NULL) ? _vala_array_dup17 (_tmp12_, _tmp11_) : ((gpointer) _tmp12_); #line 202 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp13__length1 = _tmp11_; #line 202 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" pluggables = _tmp13_; #line 202 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" pluggables_length1 = _tmp13__length1; #line 202 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _pluggables_size_ = pluggables_length1; #line 203 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp14_ = pluggables; #line 203 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp14__length1 = pluggables_length1; #line 203 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (_tmp14_ != NULL) { #line 3025 "Plugins.c" SpitPluggable** _tmp15_; gint _tmp15__length1; #line 204 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp15_ = pluggables; #line 204 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp15__length1 = pluggables_length1; #line 3032 "Plugins.c" { SpitPluggable** pluggable_collection = NULL; gint pluggable_collection_length1 = 0; gint _pluggable_collection_size_ = 0; gint pluggable_it = 0; #line 204 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" pluggable_collection = _tmp15_; #line 204 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" pluggable_collection_length1 = _tmp15__length1; #line 204 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" for (pluggable_it = 0; pluggable_it < _tmp15__length1; pluggable_it = pluggable_it + 1) { #line 3044 "Plugins.c" SpitPluggable* _tmp16_; SpitPluggable* pluggable = NULL; #line 204 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp16_ = _g_object_ref0 (pluggable_collection[pluggable_it]); #line 204 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" pluggable = _tmp16_; #line 3051 "Plugins.c" { SpitPluggable* _tmp17_; #line 205 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp17_ = pluggable; #line 205 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (_tmp17_ == needle) { #line 206 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" result = module_rep; #line 206 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_object_unref0 (pluggable); #line 206 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" pluggables = (_vala_array_free (pluggables, pluggables_length1, (GDestroyNotify) g_object_unref), NULL); #line 206 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_object_unref0 (_module_rep_it); #line 206 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return result; #line 3068 "Plugins.c" } #line 204 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_object_unref0 (pluggable); #line 3072 "Plugins.c" } } } } #line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" pluggables = (_vala_array_free (pluggables, pluggables_length1, (GDestroyNotify) g_object_unref), NULL); #line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _plugins_module_rep_unref0 (module_rep); #line 3081 "Plugins.c" } #line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_object_unref0 (_module_rep_it); #line 3085 "Plugins.c" } #line 211 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" result = NULL; #line 211 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return result; #line 3091 "Plugins.c" } gchar* plugins_get_pluggable_module_id (SpitPluggable* needle) { gchar* result = NULL; PluginsModuleRep* module_rep = NULL; PluginsModuleRep* _tmp0_; const gchar* _tmp1_ = NULL; PluginsModuleRep* _tmp2_; gchar* _tmp6_; #line 214 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_val_if_fail (SPIT_IS_PLUGGABLE (needle), NULL); #line 215 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp0_ = plugins_get_module_for_pluggable (needle); #line 215 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" module_rep = _tmp0_; #line 217 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp2_ = module_rep; #line 217 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (_tmp2_ != NULL) { #line 3114 "Plugins.c" PluginsModuleRep* _tmp3_; SpitModule* _tmp4_; const gchar* _tmp5_; #line 217 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp3_ = module_rep; #line 217 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp4_ = _tmp3_->spit_module; #line 217 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp5_ = spit_module_get_id (_tmp4_); #line 217 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp1_ = _tmp5_; #line 3126 "Plugins.c" } else { #line 217 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp1_ = NULL; #line 3130 "Plugins.c" } #line 217 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp6_ = g_strdup (_tmp1_); #line 217 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" result = _tmp6_; #line 217 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _plugins_module_rep_unref0 (module_rep); #line 217 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return result; #line 3140 "Plugins.c" } GeeCollection* plugins_get_extension_points (GCompareDataFunc compare_func, void* compare_func_target, GDestroyNotify compare_func_target_destroy_notify) { GeeCollection* result = NULL; GeeCollection* sorted = NULL; GCompareDataFunc _tmp0_; void* _tmp0__target; GDestroyNotify _tmp0__target_destroy_notify; GeeTreeSet* _tmp1_; GeeHashMap* _tmp2_; GeeCollection* _tmp3_; GeeCollection* _tmp4_; GeeCollection* _tmp5_; #line 221 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp0_ = compare_func; #line 221 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp0__target = compare_func_target; #line 221 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp0__target_destroy_notify = compare_func_target_destroy_notify; #line 221 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" compare_func = NULL; #line 221 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" compare_func_target = NULL; #line 221 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" compare_func_target_destroy_notify = NULL; #line 221 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp1_ = gee_tree_set_new (PLUGINS_TYPE_EXTENSION_POINT, (GBoxedCopyFunc) plugins_extension_point_ref, (GDestroyNotify) plugins_extension_point_unref, _tmp0_, _tmp0__target, _tmp0__target_destroy_notify); #line 221 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" sorted = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_COLLECTION, GeeCollection); #line 222 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp2_ = plugins_extension_points; #line 222 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp3_ = gee_abstract_map_get_values (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap)); #line 222 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp4_ = _tmp3_; #line 222 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp5_ = _tmp4_; #line 222 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" gee_collection_add_all (sorted, _tmp5_); #line 222 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_object_unref0 (_tmp5_); #line 224 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" result = sorted; #line 224 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" (compare_func_target_destroy_notify == NULL) ? NULL : (compare_func_target_destroy_notify (compare_func_target), NULL); #line 224 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" compare_func = NULL; #line 224 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" compare_func_target = NULL; #line 224 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" compare_func_target_destroy_notify = NULL; #line 224 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return result; #line 3199 "Plugins.c" } GeeCollection* plugins_get_pluggables_for_type (GType type, GCompareDataFunc compare_func, void* compare_func_target, GDestroyNotify compare_func_target_destroy_notify, gboolean include_disabled) { GeeCollection* result = NULL; GeeHashMap* _tmp0_; GeeCollection* for_type = NULL; GCompareDataFunc _tmp1_; void* _tmp1__target; GDestroyNotify _tmp1__target_destroy_notify; GeeTreeSet* _tmp2_; #line 230 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp0_ = plugins_extension_points; #line 230 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _vala_assert (gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), (gpointer) ((gintptr) type)), "extension_points.has_key(type)"); #line 232 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp1_ = compare_func; #line 232 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp1__target = compare_func_target; #line 232 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp1__target_destroy_notify = compare_func_target_destroy_notify; #line 232 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" compare_func = NULL; #line 232 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" compare_func_target = NULL; #line 232 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" compare_func_target_destroy_notify = NULL; #line 232 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp2_ = gee_tree_set_new (SPIT_TYPE_PLUGGABLE, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, _tmp1_, _tmp1__target, _tmp1__target_destroy_notify); #line 232 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" for_type = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection); #line 3237 "Plugins.c" { GeeIterator* _pluggable_rep_it = NULL; GeeHashMap* _tmp3_; GeeCollection* _tmp4_; GeeCollection* _tmp5_; GeeCollection* _tmp6_; GeeIterator* _tmp7_; GeeIterator* _tmp8_; #line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp3_ = plugins_pluggable_table; #line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp4_ = gee_abstract_map_get_values (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap)); #line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp5_ = _tmp4_; #line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp6_ = _tmp5_; #line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp7_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_ITERABLE, GeeIterable)); #line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp8_ = _tmp7_; #line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_object_unref0 (_tmp6_); #line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _pluggable_rep_it = _tmp8_; #line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" while (TRUE) { #line 3264 "Plugins.c" GeeIterator* _tmp9_; PluginsPluggableRep* pluggable_rep = NULL; GeeIterator* _tmp10_; gpointer _tmp11_; gboolean _tmp12_ = FALSE; gboolean _tmp13_ = FALSE; PluginsPluggableRep* _tmp14_; gboolean _tmp15_; gboolean _tmp16_; #line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp9_ = _pluggable_rep_it; #line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (!gee_iterator_next (_tmp9_)) { #line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" break; #line 3280 "Plugins.c" } #line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp10_ = _pluggable_rep_it; #line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp11_ = gee_iterator_get (_tmp10_); #line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" pluggable_rep = (PluginsPluggableRep*) _tmp11_; #line 234 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp14_ = pluggable_rep; #line 234 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp15_ = plugins_pluggable_rep_get_activated (_tmp14_); #line 234 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp16_ = _tmp15_; #line 234 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (_tmp16_) { #line 3296 "Plugins.c" PluginsPluggableRep* _tmp17_; SpitPluggable* _tmp18_; SpitPluggable* _tmp19_; #line 235 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp17_ = pluggable_rep; #line 235 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp18_ = plugins_pluggable_rep_get_pluggable (_tmp17_); #line 235 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp19_ = _tmp18_; #line 235 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp13_ = g_type_is_a (G_TYPE_FROM_INSTANCE (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, G_TYPE_OBJECT, GObject)), type); #line 3308 "Plugins.c" } else { #line 234 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp13_ = FALSE; #line 3312 "Plugins.c" } #line 234 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (_tmp13_) { #line 3316 "Plugins.c" gboolean _tmp20_ = FALSE; #line 236 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (include_disabled) { #line 236 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp20_ = TRUE; #line 3322 "Plugins.c" } else { PluginsPluggableRep* _tmp21_; #line 236 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp21_ = pluggable_rep; #line 236 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp20_ = plugins_pluggable_rep_is_enabled (_tmp21_); #line 3329 "Plugins.c" } #line 236 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp12_ = _tmp20_; #line 3333 "Plugins.c" } else { #line 234 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp12_ = FALSE; #line 3337 "Plugins.c" } #line 234 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (_tmp12_) { #line 3341 "Plugins.c" GeeCollection* _tmp22_; PluginsPluggableRep* _tmp23_; SpitPluggable* _tmp24_; SpitPluggable* _tmp25_; #line 237 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp22_ = for_type; #line 237 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp23_ = pluggable_rep; #line 237 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp24_ = plugins_pluggable_rep_get_pluggable (_tmp23_); #line 237 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp25_ = _tmp24_; #line 237 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" gee_collection_add (_tmp22_, _tmp25_); #line 3356 "Plugins.c" } #line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _plugins_pluggable_rep_unref0 (pluggable_rep); #line 3360 "Plugins.c" } #line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_object_unref0 (_pluggable_rep_it); #line 3364 "Plugins.c" } #line 241 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" result = for_type; #line 241 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" (compare_func_target_destroy_notify == NULL) ? NULL : (compare_func_target_destroy_notify (compare_func_target), NULL); #line 241 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" compare_func = NULL; #line 241 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" compare_func_target = NULL; #line 241 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" compare_func_target_destroy_notify = NULL; #line 241 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return result; #line 3378 "Plugins.c" } gchar* plugins_get_pluggable_name (const gchar* id) { gchar* result = NULL; PluginsPluggableRep* pluggable_rep = NULL; GeeHashMap* _tmp0_; gpointer _tmp1_; const gchar* _tmp2_ = NULL; gboolean _tmp3_ = FALSE; PluginsPluggableRep* _tmp4_; gchar* _tmp12_; #line 244 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_val_if_fail (id != NULL, NULL); #line 245 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp0_ = plugins_pluggable_table; #line 245 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp1_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), id); #line 245 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" pluggable_rep = (PluginsPluggableRep*) _tmp1_; #line 247 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp4_ = pluggable_rep; #line 247 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (_tmp4_ != NULL) { #line 3405 "Plugins.c" PluginsPluggableRep* _tmp5_; gboolean _tmp6_; gboolean _tmp7_; #line 247 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp5_ = pluggable_rep; #line 247 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp6_ = plugins_pluggable_rep_get_activated (_tmp5_); #line 247 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp7_ = _tmp6_; #line 247 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp3_ = _tmp7_; #line 3417 "Plugins.c" } else { #line 247 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp3_ = FALSE; #line 3421 "Plugins.c" } #line 247 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (_tmp3_) { #line 3425 "Plugins.c" PluginsPluggableRep* _tmp8_; SpitPluggable* _tmp9_; SpitPluggable* _tmp10_; const gchar* _tmp11_; #line 248 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp8_ = pluggable_rep; #line 248 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp9_ = plugins_pluggable_rep_get_pluggable (_tmp8_); #line 248 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp10_ = _tmp9_; #line 248 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp11_ = spit_pluggable_get_pluggable_name (_tmp10_); #line 248 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp2_ = _tmp11_; #line 3440 "Plugins.c" } else { #line 248 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp2_ = NULL; #line 3444 "Plugins.c" } #line 247 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp12_ = g_strdup (_tmp2_); #line 247 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" result = _tmp12_; #line 247 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _plugins_pluggable_rep_unref0 (pluggable_rep); #line 247 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return result; #line 3454 "Plugins.c" } gboolean plugins_get_pluggable_info (const gchar* id, SpitPluggableInfo* info) { gboolean result = FALSE; PluginsPluggableRep* pluggable_rep = NULL; GeeHashMap* _tmp0_; gpointer _tmp1_; gboolean _tmp2_ = FALSE; PluginsPluggableRep* _tmp3_; PluginsPluggableRep* _tmp7_; SpitPluggable* _tmp8_; SpitPluggable* _tmp9_; #line 251 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_val_if_fail (id != NULL, FALSE); #line 251 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_val_if_fail (info != NULL, FALSE); #line 252 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp0_ = plugins_pluggable_table; #line 252 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp1_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), id); #line 252 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" pluggable_rep = (PluginsPluggableRep*) _tmp1_; #line 253 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp3_ = pluggable_rep; #line 253 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (_tmp3_ == NULL) { #line 253 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp2_ = TRUE; #line 3487 "Plugins.c" } else { PluginsPluggableRep* _tmp4_; gboolean _tmp5_; gboolean _tmp6_; #line 253 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp4_ = pluggable_rep; #line 253 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp5_ = plugins_pluggable_rep_get_activated (_tmp4_); #line 253 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp6_ = _tmp5_; #line 253 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp2_ = !_tmp6_; #line 3500 "Plugins.c" } #line 253 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (_tmp2_) { #line 254 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" result = FALSE; #line 254 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _plugins_pluggable_rep_unref0 (pluggable_rep); #line 254 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return result; #line 3510 "Plugins.c" } #line 256 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp7_ = pluggable_rep; #line 256 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp8_ = plugins_pluggable_rep_get_pluggable (_tmp7_); #line 256 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp9_ = _tmp8_; #line 256 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" spit_pluggable_get_info (_tmp9_, info); #line 258 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" result = TRUE; #line 258 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _plugins_pluggable_rep_unref0 (pluggable_rep); #line 258 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return result; #line 3526 "Plugins.c" } gboolean plugins_get_pluggable_enabled (const gchar* id, gboolean* enabled) { gboolean _vala_enabled = FALSE; gboolean result = FALSE; PluginsPluggableRep* pluggable_rep = NULL; GeeHashMap* _tmp0_; gpointer _tmp1_; gboolean _tmp2_ = FALSE; PluginsPluggableRep* _tmp3_; PluginsPluggableRep* _tmp7_; #line 261 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_val_if_fail (id != NULL, FALSE); #line 262 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp0_ = plugins_pluggable_table; #line 262 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp1_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), id); #line 262 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" pluggable_rep = (PluginsPluggableRep*) _tmp1_; #line 263 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp3_ = pluggable_rep; #line 263 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (_tmp3_ == NULL) { #line 263 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp2_ = TRUE; #line 3556 "Plugins.c" } else { PluginsPluggableRep* _tmp4_; gboolean _tmp5_; gboolean _tmp6_; #line 263 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp4_ = pluggable_rep; #line 263 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp5_ = plugins_pluggable_rep_get_activated (_tmp4_); #line 263 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp6_ = _tmp5_; #line 263 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp2_ = !_tmp6_; #line 3569 "Plugins.c" } #line 263 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (_tmp2_) { #line 264 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _vala_enabled = FALSE; #line 266 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" result = FALSE; #line 266 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _plugins_pluggable_rep_unref0 (pluggable_rep); #line 266 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (enabled) { #line 266 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" *enabled = _vala_enabled; #line 3583 "Plugins.c" } #line 266 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return result; #line 3587 "Plugins.c" } #line 269 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp7_ = pluggable_rep; #line 269 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _vala_enabled = plugins_pluggable_rep_is_enabled (_tmp7_); #line 271 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" result = TRUE; #line 271 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _plugins_pluggable_rep_unref0 (pluggable_rep); #line 271 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (enabled) { #line 271 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" *enabled = _vala_enabled; #line 3601 "Plugins.c" } #line 271 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return result; #line 3605 "Plugins.c" } void plugins_set_pluggable_enabled (const gchar* id, gboolean enabled) { PluginsPluggableRep* pluggable_rep = NULL; GeeHashMap* _tmp0_; gpointer _tmp1_; gboolean _tmp2_ = FALSE; PluginsPluggableRep* _tmp3_; PluginsPluggableRep* _tmp7_; #line 274 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_if_fail (id != NULL); #line 275 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp0_ = plugins_pluggable_table; #line 275 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp1_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), id); #line 275 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" pluggable_rep = (PluginsPluggableRep*) _tmp1_; #line 276 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp3_ = pluggable_rep; #line 276 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (_tmp3_ == NULL) { #line 276 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp2_ = TRUE; #line 3633 "Plugins.c" } else { PluginsPluggableRep* _tmp4_; gboolean _tmp5_; gboolean _tmp6_; #line 276 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp4_ = pluggable_rep; #line 276 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp5_ = plugins_pluggable_rep_get_activated (_tmp4_); #line 276 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp6_ = _tmp5_; #line 276 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp2_ = !_tmp6_; #line 3646 "Plugins.c" } #line 276 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (_tmp2_) { #line 277 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _plugins_pluggable_rep_unref0 (pluggable_rep); #line 277 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return; #line 3654 "Plugins.c" } #line 279 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp7_ = pluggable_rep; #line 279 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (plugins_pluggable_rep_set_enabled (_tmp7_, enabled)) { #line 3660 "Plugins.c" PluginsNotifier* _tmp8_; PluginsNotifier* _tmp9_; PluginsPluggableRep* _tmp10_; SpitPluggable* _tmp11_; SpitPluggable* _tmp12_; #line 280 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp8_ = plugins_notifier_get_instance (); #line 280 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp9_ = _tmp8_; #line 280 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp10_ = pluggable_rep; #line 280 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp11_ = plugins_pluggable_rep_get_pluggable (_tmp10_); #line 280 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp12_ = _tmp11_; #line 280 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_signal_emit (_tmp9_, plugins_notifier_signals[PLUGINS_NOTIFIER_PLUGGABLE_ACTIVATION_SIGNAL], 0, _tmp12_, enabled); #line 280 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _plugins_notifier_unref0 (_tmp9_); #line 3680 "Plugins.c" } #line 274 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _plugins_pluggable_rep_unref0 (pluggable_rep); #line 3684 "Plugins.c" } GFile* plugins_get_pluggable_module_file (SpitPluggable* pluggable) { GFile* result = NULL; PluginsModuleRep* module_rep = NULL; PluginsModuleRep* _tmp0_; GFile* _tmp1_ = NULL; PluginsModuleRep* _tmp2_; GFile* _tmp5_; #line 283 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_val_if_fail (SPIT_IS_PLUGGABLE (pluggable), NULL); #line 284 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp0_ = plugins_get_module_for_pluggable (pluggable); #line 284 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" module_rep = _tmp0_; #line 286 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp2_ = module_rep; #line 286 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (_tmp2_ != NULL) { #line 3707 "Plugins.c" PluginsModuleRep* _tmp3_; GFile* _tmp4_; #line 286 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp3_ = module_rep; #line 286 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp4_ = _tmp3_->file; #line 286 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp1_ = _tmp4_; #line 3716 "Plugins.c" } else { #line 286 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp1_ = NULL; #line 3720 "Plugins.c" } #line 286 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp5_ = _g_object_ref0 (_tmp1_); #line 286 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" result = _tmp5_; #line 286 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _plugins_module_rep_unref0 (module_rep); #line 286 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return result; #line 3730 "Plugins.c" } gint plugins_compare_pluggable_names (void* a, void* b) { gint result = 0; SpitPluggable* apluggable = NULL; SpitPluggable* bpluggable = NULL; const gchar* _tmp0_; const gchar* _tmp1_; #line 290 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" apluggable = (SpitPluggable*) a; #line 291 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" bpluggable = (SpitPluggable*) b; #line 293 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp0_ = spit_pluggable_get_pluggable_name (G_TYPE_CHECK_INSTANCE_CAST (apluggable, SPIT_TYPE_PLUGGABLE, SpitPluggable)); #line 293 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp1_ = spit_pluggable_get_pluggable_name (G_TYPE_CHECK_INSTANCE_CAST (bpluggable, SPIT_TYPE_PLUGGABLE, SpitPluggable)); #line 293 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" result = g_utf8_collate (_tmp0_, _tmp1_); #line 293 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return result; #line 3755 "Plugins.c" } gint plugins_compare_extension_point_names (void* a, void* b) { gint result = 0; PluginsExtensionPoint* apoint = NULL; PluginsExtensionPoint* bpoint = NULL; const gchar* _tmp0_; const gchar* _tmp1_; const gchar* _tmp2_; const gchar* _tmp3_; #line 297 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" apoint = (PluginsExtensionPoint*) a; #line 298 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" bpoint = (PluginsExtensionPoint*) b; #line 300 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp0_ = plugins_extension_point_get_name (G_TYPE_CHECK_INSTANCE_CAST (apoint, PLUGINS_TYPE_EXTENSION_POINT, PluginsExtensionPoint)); #line 300 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp1_ = _tmp0_; #line 300 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp2_ = plugins_extension_point_get_name (G_TYPE_CHECK_INSTANCE_CAST (bpoint, PLUGINS_TYPE_EXTENSION_POINT, PluginsExtensionPoint)); #line 300 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp3_ = _tmp2_; #line 300 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" result = g_utf8_collate (_tmp1_, _tmp3_); #line 300 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return result; #line 3786 "Plugins.c" } gboolean plugins_is_shared_library (GFile* file) { gboolean result = FALSE; gchar* name = NULL; gchar* ext = NULL; gchar* _tmp0_; gchar* _tmp1_; gchar* _tmp2_ = NULL; gchar* _tmp3_ = NULL; #line 303 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_val_if_fail (G_IS_FILE (file), FALSE); #line 305 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp0_ = g_file_get_basename (file); #line 305 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp1_ = _tmp0_; #line 305 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" disassemble_filename (_tmp1_, &_tmp2_, &_tmp3_); #line 305 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_free0 (name); #line 305 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" name = _tmp2_; #line 305 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_free0 (ext); #line 305 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" ext = _tmp3_; #line 305 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_free0 (_tmp1_); #line 3818 "Plugins.c" { const gchar** shared_ext_collection = NULL; gint shared_ext_collection_length1 = 0; gint _shared_ext_collection_size_ = 0; gint shared_ext_it = 0; #line 307 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" shared_ext_collection = PLUGINS_SHARED_LIB_EXTS; #line 307 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" shared_ext_collection_length1 = G_N_ELEMENTS (PLUGINS_SHARED_LIB_EXTS); #line 307 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" for (shared_ext_it = 0; shared_ext_it < G_N_ELEMENTS (PLUGINS_SHARED_LIB_EXTS); shared_ext_it = shared_ext_it + 1) { #line 3830 "Plugins.c" gchar* _tmp4_; gchar* shared_ext = NULL; #line 307 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp4_ = g_strdup (shared_ext_collection[shared_ext_it]); #line 307 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" shared_ext = _tmp4_; #line 3837 "Plugins.c" { const gchar* _tmp5_; const gchar* _tmp6_; #line 308 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp5_ = ext; #line 308 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp6_ = shared_ext; #line 308 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (g_strcmp0 (_tmp5_, _tmp6_) == 0) { #line 309 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" result = TRUE; #line 309 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_free0 (shared_ext); #line 309 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_free0 (ext); #line 309 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_free0 (name); #line 309 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return result; #line 3857 "Plugins.c" } #line 307 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_free0 (shared_ext); #line 3861 "Plugins.c" } } } #line 312 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" result = FALSE; #line 312 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_free0 (ext); #line 312 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_free0 (name); #line 312 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return result; #line 3873 "Plugins.c" } void plugins_search_for_plugins (GFile* dir, GError** error) { gchar* _tmp0_; gchar* _tmp1_; GFileEnumerator* enumerator = NULL; GFileEnumerator* _tmp2_; GError * _inner_error_ = NULL; #line 315 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_if_fail (G_IS_FILE (dir)); #line 316 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp0_ = g_file_get_path (dir); #line 316 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp1_ = _tmp0_; #line 316 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_debug ("Plugins.vala:316: Searching %s for plugins…", _tmp1_); #line 316 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_free0 (_tmp1_); #line 320 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp2_ = g_file_enumerate_children (dir, UTIL_FILE_ATTRIBUTES, G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, NULL, &_inner_error_); #line 320 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" enumerator = _tmp2_; #line 320 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (G_UNLIKELY (_inner_error_ != NULL)) { #line 320 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_propagate_error (error, _inner_error_); #line 320 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return; #line 3906 "Plugins.c" } { gboolean _tmp3_ = FALSE; #line 322 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp3_ = TRUE; #line 322 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" while (TRUE) { #line 3914 "Plugins.c" GFileInfo* info = NULL; GFileEnumerator* _tmp4_; GFileInfo* _tmp5_; GFileInfo* _tmp6_; GFileInfo* _tmp7_; GFile* file = NULL; GFileInfo* _tmp8_; const gchar* _tmp9_; GFile* _tmp10_; GFileInfo* _tmp11_; #line 322 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (!_tmp3_) { #line 3927 "Plugins.c" } #line 322 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp3_ = FALSE; #line 323 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp4_ = enumerator; #line 323 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp5_ = g_file_enumerator_next_file (_tmp4_, NULL, &_inner_error_); #line 323 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" info = _tmp5_; #line 323 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (G_UNLIKELY (_inner_error_ != NULL)) { #line 323 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_propagate_error (error, _inner_error_); #line 323 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_object_unref0 (enumerator); #line 323 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return; #line 3945 "Plugins.c" } #line 324 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp6_ = info; #line 324 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (_tmp6_ == NULL) { #line 325 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_object_unref0 (info); #line 325 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" break; #line 3955 "Plugins.c" } #line 327 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp7_ = info; #line 327 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (g_file_info_get_is_hidden (_tmp7_)) { #line 328 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_object_unref0 (info); #line 328 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" continue; #line 3965 "Plugins.c" } #line 330 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp8_ = info; #line 330 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp9_ = g_file_info_get_name (_tmp8_); #line 330 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp10_ = g_file_get_child (dir, _tmp9_); #line 330 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" file = _tmp10_; #line 332 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp11_ = info; #line 332 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" switch (g_file_info_get_file_type (_tmp11_)) { #line 332 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" case G_FILE_TYPE_DIRECTORY: #line 3981 "Plugins.c" { { GFile* _tmp12_; #line 335 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp12_ = file; #line 335 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" plugins_search_for_plugins (_tmp12_, &_inner_error_); #line 335 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (G_UNLIKELY (_inner_error_ != NULL)) { #line 3991 "Plugins.c" goto __catch40_g_error; } } goto __finally40; __catch40_g_error: { GError* err = NULL; GFile* _tmp13_; gchar* _tmp14_; gchar* _tmp15_; GError* _tmp16_; const gchar* _tmp17_; #line 334 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" err = _inner_error_; #line 334 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _inner_error_ = NULL; #line 337 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp13_ = file; #line 337 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp14_ = g_file_get_path (_tmp13_); #line 337 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp15_ = _tmp14_; #line 337 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp16_ = err; #line 337 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp17_ = _tmp16_->message; #line 337 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_warning ("Plugins.vala:337: Unable to search directory %s for plugins: %s", _tmp15_, _tmp17_); #line 337 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_free0 (_tmp15_); #line 334 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_error_free0 (err); #line 4024 "Plugins.c" } __finally40: #line 334 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (G_UNLIKELY (_inner_error_ != NULL)) { #line 334 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_propagate_error (error, _inner_error_); #line 334 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_object_unref0 (file); #line 334 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_object_unref0 (info); #line 334 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_object_unref0 (enumerator); #line 334 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return; #line 4039 "Plugins.c" } #line 339 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" break; #line 4043 "Plugins.c" } #line 332 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" case G_FILE_TYPE_REGULAR: #line 4047 "Plugins.c" { GFile* _tmp18_; #line 342 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp18_ = file; #line 342 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (plugins_is_shared_library (_tmp18_)) { #line 4054 "Plugins.c" GFile* _tmp19_; #line 343 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp19_ = file; #line 343 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" plugins_load_module (_tmp19_); #line 4060 "Plugins.c" } #line 344 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" break; #line 4064 "Plugins.c" } default: { #line 348 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" break; #line 4070 "Plugins.c" } } #line 322 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_object_unref0 (file); #line 322 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_object_unref0 (info); #line 4077 "Plugins.c" } } #line 315 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_object_unref0 (enumerator); #line 4082 "Plugins.c" } void plugins_load_module (GFile* file) { PluginsModuleRep* module_rep = NULL; PluginsModuleRep* _tmp0_; PluginsModuleRep* _tmp1_; void* entry = NULL; PluginsModuleRep* _tmp5_; GModule* _tmp6_; void* _tmp7_ = NULL; gboolean _tmp8_; SpitEntryPoint spit_entry_point = NULL; void* _tmp11_; gboolean _tmp12_ = FALSE; SpitEntryPointParams params = {0}; GFile* _tmp13_; PluginsModuleRep* _tmp14_; SpitEntryPoint _tmp15_; SpitModule* _tmp16_; SpitEntryPointParams _tmp17_; gint _tmp18_; gboolean _tmp21_ = FALSE; SpitEntryPointParams _tmp22_; gint _tmp23_; PluginsModuleRep* _tmp30_; SpitEntryPointParams _tmp31_; gint _tmp32_; PluginsModuleRep* _tmp33_; SpitModule* _tmp34_; PluginsModuleRep* _tmp36_; SpitModule* _tmp37_; PluginsModuleRep* _tmp42_; PluginsModuleRep* _tmp43_; SpitModule* _tmp44_; const gchar* _tmp45_; gchar* _tmp46_; PluginsModuleRep* _tmp47_; const gchar* _tmp48_; GeeHashMap* _tmp53_; PluginsModuleRep* _tmp54_; const gchar* _tmp55_; PluginsModuleRep* _tmp62_; SpitModule* _tmp63_; const gchar* _tmp64_; PluginsModuleRep* _tmp65_; SpitModule* _tmp66_; const gchar* _tmp67_; PluginsModuleRep* _tmp68_; const gchar* _tmp69_; gchar* _tmp70_; gchar* _tmp71_; GeeHashMap* _tmp72_; PluginsModuleRep* _tmp73_; const gchar* _tmp74_; PluginsModuleRep* _tmp75_; PluginsModuleRep* _tmp76_; SpitModule* _tmp77_; gint _tmp78_; SpitPluggable** _tmp79_; #line 353 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_return_if_fail (G_IS_FILE (file)); #line 354 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp0_ = plugins_module_rep_open (file); #line 354 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" module_rep = _tmp0_; #line 355 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp1_ = module_rep; #line 355 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (_tmp1_ == NULL) { #line 4155 "Plugins.c" gchar* _tmp2_; gchar* _tmp3_; const gchar* _tmp4_; #line 356 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp2_ = g_file_get_path (file); #line 356 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp3_ = _tmp2_; #line 356 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp4_ = g_module_error (); #line 356 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_critical ("Plugins.vala:356: Unable to load module %s: %s", _tmp3_, _tmp4_); #line 356 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_free0 (_tmp3_); #line 358 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _plugins_module_rep_unref0 (module_rep); #line 358 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return; #line 4173 "Plugins.c" } #line 363 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp5_ = module_rep; #line 363 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp6_ = _tmp5_->module; #line 363 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp8_ = g_module_symbol (_tmp6_, SPIT_ENTRY_POINT_NAME, &_tmp7_); #line 363 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" entry = _tmp7_; #line 363 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (!_tmp8_) { #line 4185 "Plugins.c" gchar* _tmp9_; gchar* _tmp10_; #line 364 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp9_ = g_file_get_path (file); #line 364 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp10_ = _tmp9_; #line 364 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_critical ("Plugins.vala:364: Unable to load module %s: well-known entry point %s " \ "not found", _tmp10_, SPIT_ENTRY_POINT_NAME); #line 364 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_free0 (_tmp10_); #line 367 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _plugins_module_rep_unref0 (module_rep); #line 367 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return; #line 4200 "Plugins.c" } #line 370 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp11_ = entry; #line 370 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" spit_entry_point = (SpitEntryPoint) _tmp11_; #line 372 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (PLUGINS_MIN_SPIT_INTERFACE <= SPIT_CURRENT_INTERFACE) { #line 372 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp12_ = SPIT_CURRENT_INTERFACE <= PLUGINS_MAX_SPIT_INTERFACE; #line 4210 "Plugins.c" } else { #line 372 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp12_ = FALSE; #line 4214 "Plugins.c" } #line 372 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _vala_assert (_tmp12_, "MIN_SPIT_INTERFACE <= Spit.CURRENT_INTERFACE && Spit.CURRENT_INTERFACE <= MAX_SPIT_INTERFACE"); #line 373 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" memset (¶ms, 0, sizeof (SpitEntryPointParams)); #line 374 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" params.host_min_spit_interface = PLUGINS_MIN_SPIT_INTERFACE; #line 375 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" params.host_max_spit_interface = PLUGINS_MAX_SPIT_INTERFACE; #line 376 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" params.module_spit_interface = SPIT_UNSUPPORTED_INTERFACE; #line 377 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp13_ = _g_object_ref0 (file); #line 377 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_object_unref0 (params.module_file); #line 377 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" params.module_file = _tmp13_; #line 379 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp14_ = module_rep; #line 379 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp15_ = spit_entry_point; #line 379 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp16_ = _tmp15_ (¶ms); #line 379 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_object_unref0 (_tmp14_->spit_module); #line 379 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp14_->spit_module = _tmp16_; #line 380 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp17_ = params; #line 380 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp18_ = _tmp17_.module_spit_interface; #line 380 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (_tmp18_ == SPIT_UNSUPPORTED_INTERFACE) { #line 4248 "Plugins.c" gchar* _tmp19_; gchar* _tmp20_; #line 381 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp19_ = g_file_get_path (file); #line 381 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp20_ = _tmp19_; #line 381 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_critical ("Plugins.vala:381: Unable to load module %s: module reports no support " \ "for SPIT interfaces %d to %d", _tmp20_, PLUGINS_MIN_SPIT_INTERFACE, PLUGINS_MAX_SPIT_INTERFACE); #line 381 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_free0 (_tmp20_); #line 384 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" spit_entry_point_params_destroy (¶ms); #line 384 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _plugins_module_rep_unref0 (module_rep); #line 384 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return; #line 4265 "Plugins.c" } #line 387 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp22_ = params; #line 387 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp23_ = _tmp22_.module_spit_interface; #line 387 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (_tmp23_ < PLUGINS_MIN_SPIT_INTERFACE) { #line 387 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp21_ = TRUE; #line 4275 "Plugins.c" } else { SpitEntryPointParams _tmp24_; gint _tmp25_; #line 387 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp24_ = params; #line 387 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp25_ = _tmp24_.module_spit_interface; #line 387 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp21_ = _tmp25_ > PLUGINS_MAX_SPIT_INTERFACE; #line 4285 "Plugins.c" } #line 387 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (_tmp21_) { #line 4289 "Plugins.c" gchar* _tmp26_; gchar* _tmp27_; PluginsModuleRep* _tmp28_; gint _tmp29_; #line 388 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp26_ = g_file_get_path (file); #line 388 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp27_ = _tmp26_; #line 388 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp28_ = module_rep; #line 388 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp29_ = _tmp28_->spit_interface; #line 388 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_critical ("Plugins.vala:388: Unable to load module %s: module reports unsupported" \ " SPIT version %d (out of range %d to %d)", _tmp27_, _tmp29_, PLUGINS_MIN_SPIT_INTERFACE, PLUGINS_MAX_SPIT_INTERFACE); #line 388 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_free0 (_tmp27_); #line 391 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" spit_entry_point_params_destroy (¶ms); #line 391 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _plugins_module_rep_unref0 (module_rep); #line 391 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return; #line 4312 "Plugins.c" } #line 394 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp30_ = module_rep; #line 394 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp31_ = params; #line 394 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp32_ = _tmp31_.module_spit_interface; #line 394 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp30_->spit_interface = _tmp32_; #line 397 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp33_ = module_rep; #line 397 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp34_ = _tmp33_->spit_module; #line 397 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (!G_TYPE_CHECK_INSTANCE_TYPE (_tmp34_, SPIT_TYPE_MODULE)) { #line 4328 "Plugins.c" PluginsModuleRep* _tmp35_; #line 398 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp35_ = module_rep; #line 398 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_object_unref0 (_tmp35_->spit_module); #line 398 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp35_->spit_module = NULL; #line 4336 "Plugins.c" } #line 400 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp36_ = module_rep; #line 400 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp37_ = _tmp36_->spit_module; #line 400 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (_tmp37_ == NULL) { #line 4344 "Plugins.c" gchar* _tmp38_; gchar* _tmp39_; PluginsModuleRep* _tmp40_; gint _tmp41_; #line 401 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp38_ = g_file_get_path (file); #line 401 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp39_ = _tmp38_; #line 401 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp40_ = module_rep; #line 401 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp41_ = _tmp40_->spit_interface; #line 401 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_critical ("Plugins.vala:401: Unable to load module %s (SPIT %d): no spit module r" \ "eturned", _tmp39_, _tmp41_); #line 401 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_free0 (_tmp39_); #line 404 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" spit_entry_point_params_destroy (¶ms); #line 404 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _plugins_module_rep_unref0 (module_rep); #line 404 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return; #line 4367 "Plugins.c" } #line 409 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp42_ = module_rep; #line 409 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp43_ = module_rep; #line 409 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp44_ = _tmp43_->spit_module; #line 409 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp45_ = spit_module_get_id (_tmp44_); #line 409 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp46_ = prepare_input_text (_tmp45_, PREPARE_INPUT_TEXT_OPTIONS_DEFAULT, -1); #line 409 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_free0 (_tmp42_->id); #line 409 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp42_->id = _tmp46_; #line 410 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp47_ = module_rep; #line 410 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp48_ = _tmp47_->id; #line 410 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (_tmp48_ == NULL) { #line 4389 "Plugins.c" gchar* _tmp49_; gchar* _tmp50_; PluginsModuleRep* _tmp51_; gint _tmp52_; #line 411 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp49_ = g_file_get_path (file); #line 411 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp50_ = _tmp49_; #line 411 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp51_ = module_rep; #line 411 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp52_ = _tmp51_->spit_interface; #line 411 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_critical ("Plugins.vala:411: Unable to load module %s (SPIT %d): invalid or empty" \ " module name", _tmp50_, _tmp52_); #line 411 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_free0 (_tmp50_); #line 414 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" spit_entry_point_params_destroy (¶ms); #line 414 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _plugins_module_rep_unref0 (module_rep); #line 414 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return; #line 4412 "Plugins.c" } #line 417 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp53_ = plugins_module_table; #line 417 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp54_ = module_rep; #line 417 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp55_ = _tmp54_->id; #line 417 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" if (gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp53_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp55_)) { #line 4422 "Plugins.c" gchar* _tmp56_; gchar* _tmp57_; PluginsModuleRep* _tmp58_; gint _tmp59_; PluginsModuleRep* _tmp60_; const gchar* _tmp61_; #line 418 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp56_ = g_file_get_path (file); #line 418 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp57_ = _tmp56_; #line 418 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp58_ = module_rep; #line 418 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp59_ = _tmp58_->spit_interface; #line 418 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp60_ = module_rep; #line 418 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp61_ = _tmp60_->id; #line 418 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_critical ("Plugins.vala:418: Not loading module %s (SPIT %d): module with name \"" \ "%s\" already loaded", _tmp57_, _tmp59_, _tmp61_); #line 418 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_free0 (_tmp57_); #line 421 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" spit_entry_point_params_destroy (¶ms); #line 421 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _plugins_module_rep_unref0 (module_rep); #line 421 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" return; #line 4451 "Plugins.c" } #line 424 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp62_ = module_rep; #line 424 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp63_ = _tmp62_->spit_module; #line 424 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp64_ = spit_module_get_module_name (_tmp63_); #line 424 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp65_ = module_rep; #line 424 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp66_ = _tmp65_->spit_module; #line 424 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp67_ = spit_module_get_version (_tmp66_); #line 424 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp68_ = module_rep; #line 424 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp69_ = _tmp68_->id; #line 424 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp70_ = g_file_get_path (file); #line 424 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp71_ = _tmp70_; #line 424 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" g_debug ("Plugins.vala:424: Loaded SPIT module \"%s %s\" (%s) [%s]", _tmp64_, _tmp67_, _tmp69_, _tmp71_); #line 424 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_free0 (_tmp71_); #line 428 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp72_ = plugins_module_table; #line 428 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp73_ = module_rep; #line 428 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp74_ = _tmp73_->id; #line 428 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp75_ = module_rep; #line 428 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp72_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp74_, _tmp75_); #line 431 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp76_ = module_rep; #line 431 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp77_ = _tmp76_->spit_module; #line 431 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp79_ = spit_module_get_pluggables (_tmp77_, &_tmp78_); #line 4493 "Plugins.c" { SpitPluggable** pluggable_collection = NULL; gint pluggable_collection_length1 = 0; gint _pluggable_collection_size_ = 0; gint pluggable_it = 0; #line 431 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" pluggable_collection = _tmp79_; #line 431 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" pluggable_collection_length1 = _tmp78_; #line 431 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" for (pluggable_it = 0; pluggable_it < _tmp78_; pluggable_it = pluggable_it + 1) { #line 4505 "Plugins.c" SpitPluggable* _tmp80_; SpitPluggable* pluggable = NULL; #line 431 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp80_ = _g_object_ref0 (pluggable_collection[pluggable_it]); #line 431 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" pluggable = _tmp80_; #line 4512 "Plugins.c" { GeeHashMap* _tmp81_; SpitPluggable* _tmp82_; const gchar* _tmp83_; SpitPluggable* _tmp84_; PluginsPluggableRep* _tmp85_; PluginsPluggableRep* _tmp86_; #line 432 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp81_ = plugins_pluggable_table; #line 432 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp82_ = pluggable; #line 432 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp83_ = spit_pluggable_get_id (_tmp82_); #line 432 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp84_ = pluggable; #line 432 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp85_ = plugins_pluggable_rep_new (_tmp84_); #line 432 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _tmp86_ = _tmp85_; #line 432 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp81_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp83_, _tmp86_); #line 432 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _plugins_pluggable_rep_unref0 (_tmp86_); #line 431 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _g_object_unref0 (pluggable); #line 4538 "Plugins.c" } } } #line 353 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" spit_entry_point_params_destroy (¶ms); #line 353 "/home/jens/Source/shotwell/src/plugins/Plugins.vala" _plugins_module_rep_unref0 (module_rep); #line 4546 "Plugins.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); }