/* gitg-recursive-monitor.c generated by valac 0.34.7, the Vala compiler
 * generated from gitg-recursive-monitor.vala, do not modify */

/*
 *
 * Copyright (C) 2015 - Jesse van den Kieboom
 *
 * gitg is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * gitg is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with gitg. If not, see <http://www.gnu.org/licenses/>.
 */

#include <glib.h>
#include <glib-object.h>
#include <gio/gio.h>
#include <gee.h>


#define GITG_TYPE_RECURSIVE_MONITOR (gitg_recursive_monitor_get_type ())
#define GITG_RECURSIVE_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_RECURSIVE_MONITOR, GitgRecursiveMonitor))
#define GITG_RECURSIVE_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_TYPE_RECURSIVE_MONITOR, GitgRecursiveMonitorClass))
#define GITG_IS_RECURSIVE_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_TYPE_RECURSIVE_MONITOR))
#define GITG_IS_RECURSIVE_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_TYPE_RECURSIVE_MONITOR))
#define GITG_RECURSIVE_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_TYPE_RECURSIVE_MONITOR, GitgRecursiveMonitorClass))

typedef struct _GitgRecursiveMonitor GitgRecursiveMonitor;
typedef struct _GitgRecursiveMonitorClass GitgRecursiveMonitorClass;
typedef struct _GitgRecursiveMonitorPrivate GitgRecursiveMonitorPrivate;

#define GITG_RECURSIVE_MONITOR_TYPE_MONITOR (gitg_recursive_monitor_monitor_get_type ())
#define GITG_RECURSIVE_MONITOR_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_RECURSIVE_MONITOR_TYPE_MONITOR, GitgRecursiveMonitorMonitor))
#define GITG_RECURSIVE_MONITOR_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GITG_RECURSIVE_MONITOR_TYPE_MONITOR, GitgRecursiveMonitorMonitorClass))
#define GITG_RECURSIVE_MONITOR_IS_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_RECURSIVE_MONITOR_TYPE_MONITOR))
#define GITG_RECURSIVE_MONITOR_IS_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GITG_RECURSIVE_MONITOR_TYPE_MONITOR))
#define GITG_RECURSIVE_MONITOR_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GITG_RECURSIVE_MONITOR_TYPE_MONITOR, GitgRecursiveMonitorMonitorClass))

typedef struct _GitgRecursiveMonitorMonitor GitgRecursiveMonitorMonitor;
typedef struct _GitgRecursiveMonitorMonitorClass GitgRecursiveMonitorMonitorClass;
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define __g_list_free__g_object_unref0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__g_object_unref0_ (var), NULL)))
typedef struct _GitgRecursiveMonitorEnumerateData GitgRecursiveMonitorEnumerateData;
typedef struct _GitgRecursiveMonitorMonitorPrivate GitgRecursiveMonitorMonitorPrivate;

struct _GitgRecursiveMonitor {
	GObject parent_instance;
	GitgRecursiveMonitorPrivate * priv;
};

struct _GitgRecursiveMonitorClass {
	GObjectClass parent_class;
};

typedef gboolean (*GitgRecursiveMonitorFilterFunc) (GFile* file, void* user_data);
struct _GitgRecursiveMonitorPrivate {
	GFileMonitor* d_monitor;
	GeeList* d_sub_monitors;
	guint d_monitor_changed_timeout_id;
	GitgRecursiveMonitorFilterFunc d_filter_func;
	gpointer d_filter_func_target;
	GDestroyNotify d_filter_func_target_destroy_notify;
	GCancellable* d_cancellable;
	GFile** d_changed_files;
	gint d_changed_files_length1;
	gint _d_changed_files_size_;
};

struct _GitgRecursiveMonitorEnumerateData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	GitgRecursiveMonitor* self;
	GFile* location;
	GFileEnumerator* e;
	GFile* _tmp0_;
	GCancellable* _tmp1_;
	GFileEnumerator* _tmp2_;
	GFile** allfiles;
	GFile** _tmp3_;
	gint allfiles_length1;
	gint _allfiles_size_;
	GList* files;
	GFileEnumerator* _tmp4_;
	GList* _tmp5_;
	GList* _tmp6_;
	GList* _tmp7_;
	GList* f_collection;
	GList* f_it;
	GFileInfo* _tmp8_;
	GFileInfo* f;
	GFileInfo* _tmp9_;
	GFileType _tmp10_;
	GFile** _tmp11_;
	gint _tmp11__length1;
	GFile* _tmp12_;
	GFileInfo* _tmp13_;
	const gchar* _tmp14_;
	GFile* _tmp15_;
	GFileEnumerator* _tmp16_;
	GCancellable* _tmp17_;
	GFile** _tmp18_;
	gint _tmp18__length1;
	GFile** _vala1_f_collection;
	gint _vala1_f_collection_length1;
	gint __vala1_f_collection_size_;
	gint _vala1_f_it;
	GFile* _tmp19_;
	GFile* _vala1_f;
	GFile* _tmp20_;
	GError * _inner_error_;
};

struct _GitgRecursiveMonitorMonitor {
	GObject parent_instance;
	GitgRecursiveMonitorMonitorPrivate * priv;
	GFile* location;
	GitgRecursiveMonitor* monitor;
};

struct _GitgRecursiveMonitorMonitorClass {
	GObjectClass parent_class;
};


static gpointer gitg_recursive_monitor_parent_class = NULL;
static gpointer gitg_recursive_monitor_monitor_parent_class = NULL;

GType gitg_recursive_monitor_get_type (void) G_GNUC_CONST;
static GType gitg_recursive_monitor_monitor_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
#define GITG_RECURSIVE_MONITOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GITG_TYPE_RECURSIVE_MONITOR, GitgRecursiveMonitorPrivate))
enum  {
	GITG_RECURSIVE_MONITOR_DUMMY_PROPERTY
};
GitgRecursiveMonitor* gitg_recursive_monitor_new (GFile* location, GitgRecursiveMonitorFilterFunc filter_func, void* filter_func_target, GDestroyNotify filter_func_target_destroy_notify);
GitgRecursiveMonitor* gitg_recursive_monitor_construct (GType object_type, GFile* location, GitgRecursiveMonitorFilterFunc filter_func, void* filter_func_target, GDestroyNotify filter_func_target_destroy_notify);
static void gitg_recursive_monitor_monitor_changed_timeout (GitgRecursiveMonitor* self, GFile* file, GFile* other_file, GFileMonitorEvent event);
static void _gitg_recursive_monitor_monitor_changed_timeout_g_file_monitor_changed (GFileMonitor* _sender, GFile* file, GFile* other_file, GFileMonitorEvent event_type, gpointer self);
static void gitg_recursive_monitor_enumerate (GitgRecursiveMonitor* self, GFile* location, GAsyncReadyCallback _callback_, gpointer _user_data_);
static void gitg_recursive_monitor_enumerate_finish (GitgRecursiveMonitor* self, GAsyncResult* _res_, GError** error);
static void __lambda91_ (GitgRecursiveMonitor* self, GObject* obj, GAsyncResult* res);
static void ___lambda91__gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self);
static void gitg_recursive_monitor_enumerate_data_free (gpointer _data);
static gboolean gitg_recursive_monitor_enumerate_co (GitgRecursiveMonitorEnumerateData* _data_);
static void gitg_recursive_monitor_enumerate_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
static void _g_object_unref0_ (gpointer var);
static void _g_list_free__g_object_unref0_ (GList* self);
static void _vala_array_add13 (GFile*** array, int* length, int* size, GFile* value);
static void gitg_recursive_monitor_add_submonitor (GitgRecursiveMonitor* self, GFile* location);
static gboolean __lambda88_ (GitgRecursiveMonitor* self, GFile* l);
static gboolean ___lambda88__gitg_recursive_monitor_filter_func (GFile* file, gpointer self);
static GitgRecursiveMonitorMonitor* gitg_recursive_monitor_monitor_new (GFile* location, GitgRecursiveMonitor* monitor);
static GitgRecursiveMonitorMonitor* gitg_recursive_monitor_monitor_construct (GType object_type, GFile* location, GitgRecursiveMonitor* monitor);
static void __lambda89_ (GitgRecursiveMonitor* self, GFile** files, int files_length1);
static void gitg_recursive_monitor_changed_timeout (GitgRecursiveMonitor* self, GFile** files, int files_length1);
static void ___lambda89__gitg_recursive_monitor_changed (GitgRecursiveMonitor* _sender, GFile** files, int files_length1, gpointer self);
static void gitg_recursive_monitor_add_submonitor_if_directory (GitgRecursiveMonitor* self, GFile* location);
static void gitg_recursive_monitor_real_dispose (GObject* base);
void gitg_recursive_monitor_cancel (GitgRecursiveMonitor* self);
static void gitg_recursive_monitor_remove_submonitor (GitgRecursiveMonitor* self, GFile* location);
static void _vala_array_add14 (GFile*** array, int* length, int* size, GFile* value);
static gboolean ___lambda90_ (GitgRecursiveMonitor* self);
static gboolean ____lambda90__gsource_func (gpointer self);
static void g_cclosure_user_marshal_VOID__POINTER_INT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
enum  {
	GITG_RECURSIVE_MONITOR_MONITOR_DUMMY_PROPERTY
};
static void gitg_recursive_monitor_monitor_finalize (GObject* obj);
static void gitg_recursive_monitor_finalize (GObject* obj);
static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);


static void _gitg_recursive_monitor_monitor_changed_timeout_g_file_monitor_changed (GFileMonitor* _sender, GFile* file, GFile* other_file, GFileMonitorEvent event_type, gpointer self) {
#line 60 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	gitg_recursive_monitor_monitor_changed_timeout ((GitgRecursiveMonitor*) self, file, other_file, event_type);
#line 186 "gitg-recursive-monitor.c"
}


static void __lambda91_ (GitgRecursiveMonitor* self, GObject* obj, GAsyncResult* res) {
	GError * _inner_error_ = NULL;
#line 65 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	g_return_if_fail (res != NULL);
#line 194 "gitg-recursive-monitor.c"
	{
		GAsyncResult* _tmp0_ = NULL;
#line 68 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_tmp0_ = res;
#line 68 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		gitg_recursive_monitor_enumerate_finish (self, _tmp0_, &_inner_error_);
#line 68 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 203 "gitg-recursive-monitor.c"
			goto __catch79_g_error;
		}
	}
	goto __finally79;
	__catch79_g_error:
	{
#line 66 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		g_clear_error (&_inner_error_);
#line 66 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_inner_error_ = NULL;
#line 214 "gitg-recursive-monitor.c"
	}
	__finally79:
#line 66 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 66 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
#line 66 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		g_clear_error (&_inner_error_);
#line 66 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		return;
#line 225 "gitg-recursive-monitor.c"
	}
}


static void ___lambda91__gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self) {
#line 65 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	__lambda91_ ((GitgRecursiveMonitor*) self, source_object, res);
#line 65 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	g_object_unref (self);
#line 235 "gitg-recursive-monitor.c"
}


GitgRecursiveMonitor* gitg_recursive_monitor_construct (GType object_type, GFile* location, GitgRecursiveMonitorFilterFunc filter_func, void* filter_func_target, GDestroyNotify filter_func_target_destroy_notify) {
	GitgRecursiveMonitor * self = NULL;
	GitgRecursiveMonitorFilterFunc _tmp0_ = NULL;
	void* _tmp0__target = NULL;
	GDestroyNotify _tmp0__target_destroy_notify = NULL;
	GeeLinkedList* _tmp1_ = NULL;
	GFileMonitor* _tmp6_ = NULL;
	GCancellable* _tmp8_ = NULL;
	GFile* _tmp9_ = NULL;
	GError * _inner_error_ = NULL;
#line 47 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	g_return_val_if_fail (location != NULL, NULL);
#line 47 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	self = (GitgRecursiveMonitor*) g_object_new (object_type, NULL);
#line 49 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp0_ = filter_func;
#line 49 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp0__target = filter_func_target;
#line 49 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp0__target_destroy_notify = filter_func_target_destroy_notify;
#line 49 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	filter_func = NULL;
#line 49 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	filter_func_target = NULL;
#line 49 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	filter_func_target_destroy_notify = NULL;
#line 49 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	(self->priv->d_filter_func_target_destroy_notify == NULL) ? NULL : (self->priv->d_filter_func_target_destroy_notify (self->priv->d_filter_func_target), NULL);
#line 49 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	self->priv->d_filter_func = NULL;
#line 49 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	self->priv->d_filter_func_target = NULL;
#line 49 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	self->priv->d_filter_func_target_destroy_notify = NULL;
#line 49 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	self->priv->d_filter_func = _tmp0_;
#line 49 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	self->priv->d_filter_func_target = _tmp0__target;
#line 49 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	self->priv->d_filter_func_target_destroy_notify = _tmp0__target_destroy_notify;
#line 50 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp1_ = gee_linked_list_new (GITG_RECURSIVE_MONITOR_TYPE_MONITOR, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
#line 50 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_g_object_unref0 (self->priv->d_sub_monitors);
#line 50 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	self->priv->d_sub_monitors = (GeeList*) _tmp1_;
#line 285 "gitg-recursive-monitor.c"
	{
		GFileMonitor* _tmp2_ = NULL;
		GFile* _tmp3_ = NULL;
		GFileMonitor* _tmp4_ = NULL;
		GFileMonitor* _tmp5_ = NULL;
#line 54 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_tmp3_ = location;
#line 54 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_tmp4_ = g_file_monitor_directory (_tmp3_, G_FILE_MONITOR_NONE, NULL, &_inner_error_);
#line 54 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_tmp2_ = _tmp4_;
#line 54 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 299 "gitg-recursive-monitor.c"
			goto __catch78_g_error;
		}
#line 54 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_tmp5_ = _tmp2_;
#line 54 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_tmp2_ = NULL;
#line 54 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_g_object_unref0 (self->priv->d_monitor);
#line 54 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		self->priv->d_monitor = _tmp5_;
#line 52 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_g_object_unref0 (_tmp2_);
#line 312 "gitg-recursive-monitor.c"
	}
	goto __finally78;
	__catch78_g_error:
	{
#line 52 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		g_clear_error (&_inner_error_);
#line 52 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_inner_error_ = NULL;
#line 321 "gitg-recursive-monitor.c"
	}
	__finally78:
#line 52 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 52 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		(filter_func_target_destroy_notify == NULL) ? NULL : (filter_func_target_destroy_notify (filter_func_target), NULL);
#line 52 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		filter_func = NULL;
#line 52 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		filter_func_target = NULL;
#line 52 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		filter_func_target_destroy_notify = NULL;
#line 52 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
#line 52 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		g_clear_error (&_inner_error_);
#line 52 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		return NULL;
#line 340 "gitg-recursive-monitor.c"
	}
#line 58 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp6_ = self->priv->d_monitor;
#line 58 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	if (_tmp6_ != NULL) {
#line 346 "gitg-recursive-monitor.c"
		GFileMonitor* _tmp7_ = NULL;
#line 60 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_tmp7_ = self->priv->d_monitor;
#line 60 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		g_signal_connect_object (_tmp7_, "changed", (GCallback) _gitg_recursive_monitor_monitor_changed_timeout_g_file_monitor_changed, self, 0);
#line 352 "gitg-recursive-monitor.c"
	}
#line 63 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp8_ = g_cancellable_new ();
#line 63 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_g_object_unref0 (self->priv->d_cancellable);
#line 63 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	self->priv->d_cancellable = _tmp8_;
#line 65 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp9_ = location;
#line 65 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	gitg_recursive_monitor_enumerate (self, _tmp9_, ___lambda91__gasync_ready_callback, g_object_ref (self));
#line 47 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	(filter_func_target_destroy_notify == NULL) ? NULL : (filter_func_target_destroy_notify (filter_func_target), NULL);
#line 47 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	filter_func = NULL;
#line 47 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	filter_func_target = NULL;
#line 47 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	filter_func_target_destroy_notify = NULL;
#line 47 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	return self;
#line 374 "gitg-recursive-monitor.c"
}


GitgRecursiveMonitor* gitg_recursive_monitor_new (GFile* location, GitgRecursiveMonitorFilterFunc filter_func, void* filter_func_target, GDestroyNotify filter_func_target_destroy_notify) {
#line 47 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	return gitg_recursive_monitor_construct (GITG_TYPE_RECURSIVE_MONITOR, location, filter_func, filter_func_target, filter_func_target_destroy_notify);
#line 381 "gitg-recursive-monitor.c"
}


static void gitg_recursive_monitor_enumerate_data_free (gpointer _data) {
	GitgRecursiveMonitorEnumerateData* _data_;
	_data_ = _data;
#line 22 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_g_object_unref0 (_data_->location);
#line 22 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_g_object_unref0 (_data_->self);
#line 22 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	g_slice_free (GitgRecursiveMonitorEnumerateData, _data_);
#line 394 "gitg-recursive-monitor.c"
}


static gpointer _g_object_ref0 (gpointer self) {
#line 22 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	return self ? g_object_ref (self) : NULL;
#line 401 "gitg-recursive-monitor.c"
}


static void gitg_recursive_monitor_enumerate (GitgRecursiveMonitor* self, GFile* location, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	GitgRecursiveMonitorEnumerateData* _data_;
	GitgRecursiveMonitor* _tmp0_ = NULL;
	GFile* _tmp1_ = NULL;
	GFile* _tmp2_ = NULL;
#line 22 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_data_ = g_slice_new0 (GitgRecursiveMonitorEnumerateData);
#line 22 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, gitg_recursive_monitor_enumerate);
#line 22 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, gitg_recursive_monitor_enumerate_data_free);
#line 22 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp0_ = _g_object_ref0 (self);
#line 22 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_data_->self = _tmp0_;
#line 22 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp1_ = location;
#line 22 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp2_ = _g_object_ref0 (_tmp1_);
#line 22 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_g_object_unref0 (_data_->location);
#line 22 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_data_->location = _tmp2_;
#line 22 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	gitg_recursive_monitor_enumerate_co (_data_);
#line 430 "gitg-recursive-monitor.c"
}


static void gitg_recursive_monitor_enumerate_finish (GitgRecursiveMonitor* self, GAsyncResult* _res_, GError** error) {
	GitgRecursiveMonitorEnumerateData* _data_;
#line 22 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
#line 22 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		return;
#line 440 "gitg-recursive-monitor.c"
	}
#line 22 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
#line 444 "gitg-recursive-monitor.c"
}


static void gitg_recursive_monitor_enumerate_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	GitgRecursiveMonitorEnumerateData* _data_;
#line 75 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_data_ = _user_data_;
#line 75 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_data_->_source_object_ = source_object;
#line 75 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_data_->_res_ = _res_;
#line 75 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	gitg_recursive_monitor_enumerate_co (_data_);
#line 458 "gitg-recursive-monitor.c"
}


static void _g_object_unref0_ (gpointer var) {
#line 84 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	(var == NULL) ? NULL : (var = (g_object_unref (var), NULL));
#line 465 "gitg-recursive-monitor.c"
}


static void _g_list_free__g_object_unref0_ (GList* self) {
#line 84 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	g_list_foreach (self, (GFunc) _g_object_unref0_, NULL);
#line 84 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	g_list_free (self);
#line 474 "gitg-recursive-monitor.c"
}


static void _vala_array_add13 (GFile*** array, int* length, int* size, GFile* value) {
#line 91 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	if ((*length) == (*size)) {
#line 91 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		*size = (*size) ? (2 * (*size)) : 4;
#line 91 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		*array = g_renew (GFile*, *array, (*size) + 1);
#line 485 "gitg-recursive-monitor.c"
	}
#line 91 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	(*array)[(*length)++] = value;
#line 91 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	(*array)[*length] = NULL;
#line 491 "gitg-recursive-monitor.c"
}


static gboolean gitg_recursive_monitor_enumerate_co (GitgRecursiveMonitorEnumerateData* _data_) {
#line 73 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	switch (_data_->_state_) {
#line 73 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		case 0:
#line 500 "gitg-recursive-monitor.c"
		goto _state_0;
#line 73 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		case 1:
#line 504 "gitg-recursive-monitor.c"
		goto _state_1;
#line 73 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		case 2:
#line 508 "gitg-recursive-monitor.c"
		goto _state_2;
#line 73 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		case 3:
#line 512 "gitg-recursive-monitor.c"
		goto _state_3;
		default:
#line 73 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		g_assert_not_reached ();
#line 517 "gitg-recursive-monitor.c"
	}
	_state_0:
#line 75 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_data_->_tmp0_ = NULL;
#line 75 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_data_->_tmp0_ = _data_->location;
#line 75 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_data_->_tmp1_ = NULL;
#line 75 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_data_->_tmp1_ = _data_->self->priv->d_cancellable;
#line 75 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_data_->_state_ = 1;
#line 75 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	g_file_enumerate_children_async (_data_->_tmp0_, G_FILE_ATTRIBUTE_STANDARD_NAME "," G_FILE_ATTRIBUTE_STANDARD_TYPE, G_FILE_QUERY_INFO_NONE, G_PRIORITY_DEFAULT, _data_->_tmp1_, gitg_recursive_monitor_enumerate_ready, _data_);
#line 75 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	return FALSE;
#line 534 "gitg-recursive-monitor.c"
	_state_1:
#line 75 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_data_->_tmp2_ = NULL;
#line 75 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_data_->_tmp2_ = g_file_enumerate_children_finish (_data_->_tmp0_, _data_->_res_, &_data_->_inner_error_);
#line 75 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_data_->e = _data_->_tmp2_;
#line 75 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
#line 75 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
#line 75 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		g_error_free (_data_->_inner_error_);
#line 75 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		if (_data_->_state_ == 0) {
#line 75 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			g_simple_async_result_complete_in_idle (_data_->_async_result);
#line 552 "gitg-recursive-monitor.c"
		} else {
#line 75 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			g_simple_async_result_complete (_data_->_async_result);
#line 556 "gitg-recursive-monitor.c"
		}
#line 75 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		g_object_unref (_data_->_async_result);
#line 75 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		return FALSE;
#line 562 "gitg-recursive-monitor.c"
	}
#line 76 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_data_->_tmp3_ = NULL;
#line 76 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_data_->_tmp3_ = g_new0 (GFile*, 0 + 1);
#line 76 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_data_->allfiles_length1 = 0;
#line 76 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_data_->_allfiles_size_ = 0;
#line 76 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_data_->allfiles = _data_->_tmp3_;
#line 76 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_data_->allfiles_length1 = 0;
#line 76 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_data_->_allfiles_size_ = _data_->allfiles_length1;
#line 78 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	while (TRUE) {
#line 80 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_data_->_tmp4_ = NULL;
#line 80 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_data_->_tmp4_ = _data_->e;
#line 80 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_data_->_state_ = 2;
#line 80 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		g_file_enumerator_next_files_async (_data_->_tmp4_, 10, G_PRIORITY_DEFAULT, NULL, gitg_recursive_monitor_enumerate_ready, _data_);
#line 80 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		return FALSE;
#line 590 "gitg-recursive-monitor.c"
		_state_2:
#line 80 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_data_->_tmp5_ = NULL;
#line 80 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_data_->_tmp5_ = g_file_enumerator_next_files_finish (_data_->_tmp4_, _data_->_res_, &_data_->_inner_error_);
#line 80 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_data_->files = _data_->_tmp5_;
#line 80 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
#line 80 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
#line 80 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			g_error_free (_data_->_inner_error_);
#line 80 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			_data_->allfiles = (_vala_array_free (_data_->allfiles, _data_->allfiles_length1, (GDestroyNotify) g_object_unref), NULL);
#line 80 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			_g_object_unref0 (_data_->e);
#line 80 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			if (_data_->_state_ == 0) {
#line 80 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
				g_simple_async_result_complete_in_idle (_data_->_async_result);
#line 612 "gitg-recursive-monitor.c"
			} else {
#line 80 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
				g_simple_async_result_complete (_data_->_async_result);
#line 616 "gitg-recursive-monitor.c"
			}
#line 80 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			g_object_unref (_data_->_async_result);
#line 80 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			return FALSE;
#line 622 "gitg-recursive-monitor.c"
		}
#line 82 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_data_->_tmp6_ = NULL;
#line 82 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_data_->_tmp6_ = _data_->files;
#line 82 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		if (_data_->_tmp6_ == NULL) {
#line 84 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			__g_list_free__g_object_unref0_0 (_data_->files);
#line 84 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			break;
#line 634 "gitg-recursive-monitor.c"
		}
#line 87 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_data_->_tmp7_ = NULL;
#line 87 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_data_->_tmp7_ = _data_->files;
#line 640 "gitg-recursive-monitor.c"
		{
#line 87 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			_data_->f_collection = _data_->_tmp7_;
#line 87 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			for (_data_->f_it = _data_->f_collection; _data_->f_it != NULL; _data_->f_it = _data_->f_it->next) {
#line 87 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
				_data_->_tmp8_ = NULL;
#line 87 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
				_data_->_tmp8_ = _g_object_ref0 ((GFileInfo*) _data_->f_it->data);
#line 87 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
				_data_->f = _data_->_tmp8_;
#line 652 "gitg-recursive-monitor.c"
				{
#line 89 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
					_data_->_tmp9_ = NULL;
#line 89 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
					_data_->_tmp9_ = _data_->f;
#line 89 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
					_data_->_tmp10_ = 0;
#line 89 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
					_data_->_tmp10_ = g_file_info_get_file_type (_data_->_tmp9_);
#line 89 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
					if (_data_->_tmp10_ == G_FILE_TYPE_DIRECTORY) {
#line 91 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
						_data_->_tmp11_ = NULL;
#line 91 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
						_data_->_tmp11__length1 = 0;
#line 91 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
						_data_->_tmp11_ = _data_->allfiles;
#line 91 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
						_data_->_tmp11__length1 = _data_->allfiles_length1;
#line 91 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
						_data_->_tmp12_ = NULL;
#line 91 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
						_data_->_tmp12_ = _data_->location;
#line 91 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
						_data_->_tmp13_ = NULL;
#line 91 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
						_data_->_tmp13_ = _data_->f;
#line 91 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
						_data_->_tmp14_ = NULL;
#line 91 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
						_data_->_tmp14_ = g_file_info_get_name (_data_->_tmp13_);
#line 91 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
						_data_->_tmp15_ = NULL;
#line 91 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
						_data_->_tmp15_ = g_file_get_child (_data_->_tmp12_, _data_->_tmp14_);
#line 91 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
						_vala_array_add13 (&_data_->allfiles, &_data_->allfiles_length1, &_data_->_allfiles_size_, _data_->_tmp15_);
#line 690 "gitg-recursive-monitor.c"
					}
#line 87 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
					_g_object_unref0 (_data_->f);
#line 694 "gitg-recursive-monitor.c"
				}
			}
		}
#line 78 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		__g_list_free__g_object_unref0_0 (_data_->files);
#line 700 "gitg-recursive-monitor.c"
	}
#line 96 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_data_->_tmp16_ = NULL;
#line 96 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_data_->_tmp16_ = _data_->e;
#line 96 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_data_->_tmp17_ = NULL;
#line 96 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_data_->_tmp17_ = _data_->self->priv->d_cancellable;
#line 96 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_data_->_state_ = 3;
#line 96 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	g_file_enumerator_close_async (_data_->_tmp16_, G_PRIORITY_DEFAULT, _data_->_tmp17_, gitg_recursive_monitor_enumerate_ready, _data_);
#line 96 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	return FALSE;
#line 716 "gitg-recursive-monitor.c"
	_state_3:
#line 96 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	g_file_enumerator_close_finish (_data_->_tmp16_, _data_->_res_, &_data_->_inner_error_);
#line 96 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
#line 96 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
#line 96 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		g_error_free (_data_->_inner_error_);
#line 96 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_data_->allfiles = (_vala_array_free (_data_->allfiles, _data_->allfiles_length1, (GDestroyNotify) g_object_unref), NULL);
#line 96 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_g_object_unref0 (_data_->e);
#line 96 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		if (_data_->_state_ == 0) {
#line 96 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			g_simple_async_result_complete_in_idle (_data_->_async_result);
#line 734 "gitg-recursive-monitor.c"
		} else {
#line 96 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			g_simple_async_result_complete (_data_->_async_result);
#line 738 "gitg-recursive-monitor.c"
		}
#line 96 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		g_object_unref (_data_->_async_result);
#line 96 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		return FALSE;
#line 744 "gitg-recursive-monitor.c"
	}
#line 98 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_data_->_tmp18_ = NULL;
#line 98 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_data_->_tmp18__length1 = 0;
#line 98 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_data_->_tmp18_ = _data_->allfiles;
#line 98 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_data_->_tmp18__length1 = _data_->allfiles_length1;
#line 754 "gitg-recursive-monitor.c"
	{
#line 98 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_data_->_vala1_f_collection_length1 = 0;
#line 98 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_data_->__vala1_f_collection_size_ = 0;
#line 98 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_data_->_vala1_f_collection = _data_->_tmp18_;
#line 98 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_data_->_vala1_f_collection_length1 = _data_->_tmp18__length1;
#line 98 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		for (_data_->_vala1_f_it = 0; _data_->_vala1_f_it < _data_->_tmp18__length1; _data_->_vala1_f_it = _data_->_vala1_f_it + 1) {
#line 98 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			_data_->_tmp19_ = NULL;
#line 98 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			_data_->_tmp19_ = _g_object_ref0 (_data_->_vala1_f_collection[_data_->_vala1_f_it]);
#line 98 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			_data_->_vala1_f = _data_->_tmp19_;
#line 772 "gitg-recursive-monitor.c"
			{
#line 100 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
				_data_->_tmp20_ = NULL;
#line 100 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
				_data_->_tmp20_ = _data_->_vala1_f;
#line 100 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
				gitg_recursive_monitor_add_submonitor (_data_->self, _data_->_tmp20_);
#line 98 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
				_g_object_unref0 (_data_->_vala1_f);
#line 782 "gitg-recursive-monitor.c"
			}
		}
	}
#line 73 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_data_->allfiles = (_vala_array_free (_data_->allfiles, _data_->allfiles_length1, (GDestroyNotify) g_object_unref), NULL);
#line 73 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_g_object_unref0 (_data_->e);
#line 73 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	if (_data_->_state_ == 0) {
#line 73 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		g_simple_async_result_complete_in_idle (_data_->_async_result);
#line 794 "gitg-recursive-monitor.c"
	} else {
#line 73 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		g_simple_async_result_complete (_data_->_async_result);
#line 798 "gitg-recursive-monitor.c"
	}
#line 73 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	g_object_unref (_data_->_async_result);
#line 73 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	return FALSE;
#line 804 "gitg-recursive-monitor.c"
}


static gboolean __lambda88_ (GitgRecursiveMonitor* self, GFile* l) {
	gboolean result = FALSE;
	GitgRecursiveMonitorFilterFunc _tmp0_ = NULL;
	void* _tmp0__target = NULL;
	GFile* _tmp1_ = NULL;
	gboolean _tmp2_ = FALSE;
#line 111 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	g_return_val_if_fail (l != NULL, FALSE);
#line 112 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp0_ = self->priv->d_filter_func;
#line 112 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp0__target = self->priv->d_filter_func_target;
#line 112 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp1_ = l;
#line 112 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp2_ = _tmp0_ (_tmp1_, _tmp0__target);
#line 112 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	result = _tmp2_;
#line 112 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	return result;
#line 828 "gitg-recursive-monitor.c"
}


static gboolean ___lambda88__gitg_recursive_monitor_filter_func (GFile* file, gpointer self) {
	gboolean result;
	result = __lambda88_ ((GitgRecursiveMonitor*) self, file);
#line 111 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	return result;
#line 837 "gitg-recursive-monitor.c"
}


static void __lambda89_ (GitgRecursiveMonitor* self, GFile** files, int files_length1) {
	GFile** _tmp0_ = NULL;
	gint _tmp0__length1 = 0;
#line 116 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp0_ = files;
#line 116 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp0__length1 = files_length1;
#line 116 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	gitg_recursive_monitor_changed_timeout (self, _tmp0_, _tmp0__length1);
#line 850 "gitg-recursive-monitor.c"
}


static void ___lambda89__gitg_recursive_monitor_changed (GitgRecursiveMonitor* _sender, GFile** files, int files_length1, gpointer self) {
#line 116 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	__lambda89_ ((GitgRecursiveMonitor*) self, files, files_length1);
#line 857 "gitg-recursive-monitor.c"
}


static void gitg_recursive_monitor_add_submonitor (GitgRecursiveMonitor* self, GFile* location) {
	gboolean _tmp0_ = FALSE;
	GitgRecursiveMonitorFilterFunc _tmp1_ = NULL;
	void* _tmp1__target = NULL;
	GitgRecursiveMonitor* mon = NULL;
	GFile* _tmp5_ = NULL;
	GitgRecursiveMonitor* _tmp6_ = NULL;
	GeeList* _tmp7_ = NULL;
	GFile* _tmp8_ = NULL;
	GitgRecursiveMonitor* _tmp9_ = NULL;
	GitgRecursiveMonitorMonitor* _tmp10_ = NULL;
	GitgRecursiveMonitorMonitor* _tmp11_ = NULL;
	GitgRecursiveMonitor* _tmp12_ = NULL;
#line 104 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	g_return_if_fail (self != NULL);
#line 104 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	g_return_if_fail (location != NULL);
#line 106 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp1_ = self->priv->d_filter_func;
#line 106 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp1__target = self->priv->d_filter_func_target;
#line 106 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	if (_tmp1_ != NULL) {
#line 884 "gitg-recursive-monitor.c"
		GitgRecursiveMonitorFilterFunc _tmp2_ = NULL;
		void* _tmp2__target = NULL;
		GFile* _tmp3_ = NULL;
		gboolean _tmp4_ = FALSE;
#line 106 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_tmp2_ = self->priv->d_filter_func;
#line 106 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_tmp2__target = self->priv->d_filter_func_target;
#line 106 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_tmp3_ = location;
#line 106 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_tmp4_ = _tmp2_ (_tmp3_, _tmp2__target);
#line 106 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_tmp0_ = !_tmp4_;
#line 899 "gitg-recursive-monitor.c"
	} else {
#line 106 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_tmp0_ = FALSE;
#line 903 "gitg-recursive-monitor.c"
	}
#line 106 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	if (_tmp0_) {
#line 108 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		return;
#line 909 "gitg-recursive-monitor.c"
	}
#line 111 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp5_ = location;
#line 111 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp6_ = gitg_recursive_monitor_new (_tmp5_, ___lambda88__gitg_recursive_monitor_filter_func, g_object_ref (self), g_object_unref);
#line 111 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	mon = _tmp6_;
#line 115 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp7_ = self->priv->d_sub_monitors;
#line 115 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp8_ = location;
#line 115 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp9_ = mon;
#line 115 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp10_ = gitg_recursive_monitor_monitor_new (_tmp8_, _tmp9_);
#line 115 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp11_ = _tmp10_;
#line 115 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	gee_collection_add ((GeeCollection*) _tmp7_, _tmp11_);
#line 115 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_g_object_unref0 (_tmp11_);
#line 116 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp12_ = mon;
#line 116 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	g_signal_connect_object (_tmp12_, "changed", (GCallback) ___lambda89__gitg_recursive_monitor_changed, self, 0);
#line 104 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_g_object_unref0 (mon);
#line 937 "gitg-recursive-monitor.c"
}


static void gitg_recursive_monitor_add_submonitor_if_directory (GitgRecursiveMonitor* self, GFile* location) {
	GError * _inner_error_ = NULL;
#line 119 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	g_return_if_fail (self != NULL);
#line 119 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	g_return_if_fail (location != NULL);
#line 947 "gitg-recursive-monitor.c"
	{
		GFileInfo* info = NULL;
		GFile* _tmp0_ = NULL;
		GFileInfo* _tmp1_ = NULL;
		GFileType _tmp2_ = 0;
#line 123 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_tmp0_ = location;
#line 123 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_tmp1_ = g_file_query_info (_tmp0_, G_FILE_ATTRIBUTE_STANDARD_TYPE, G_FILE_QUERY_INFO_NONE, NULL, &_inner_error_);
#line 123 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		info = _tmp1_;
#line 123 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 961 "gitg-recursive-monitor.c"
			goto __catch80_g_error;
		}
#line 125 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_tmp2_ = g_file_info_get_file_type (info);
#line 125 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		if (_tmp2_ == G_FILE_TYPE_DIRECTORY) {
#line 968 "gitg-recursive-monitor.c"
			GFile* _tmp3_ = NULL;
#line 127 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			_tmp3_ = location;
#line 127 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			gitg_recursive_monitor_add_submonitor (self, _tmp3_);
#line 974 "gitg-recursive-monitor.c"
		}
#line 121 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_g_object_unref0 (info);
#line 978 "gitg-recursive-monitor.c"
	}
	goto __finally80;
	__catch80_g_error:
	{
#line 121 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		g_clear_error (&_inner_error_);
#line 121 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_inner_error_ = NULL;
#line 987 "gitg-recursive-monitor.c"
	}
	__finally80:
#line 121 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 121 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
#line 121 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		g_clear_error (&_inner_error_);
#line 121 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		return;
#line 998 "gitg-recursive-monitor.c"
	}
}


static void gitg_recursive_monitor_real_dispose (GObject* base) {
	GitgRecursiveMonitor * self;
#line 133 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	self = (GitgRecursiveMonitor*) base;
#line 135 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	gitg_recursive_monitor_cancel (self);
#line 136 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	G_OBJECT_CLASS (gitg_recursive_monitor_parent_class)->dispose (G_TYPE_CHECK_INSTANCE_CAST (self, G_TYPE_OBJECT, GObject));
#line 1011 "gitg-recursive-monitor.c"
}


static void gitg_recursive_monitor_remove_submonitor (GitgRecursiveMonitor* self, GFile* location) {
#line 139 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	g_return_if_fail (self != NULL);
#line 139 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	g_return_if_fail (location != NULL);
#line 1020 "gitg-recursive-monitor.c"
	{
		GeeList* _monitor_list = NULL;
		GeeList* _tmp0_ = NULL;
		GeeList* _tmp1_ = NULL;
		gint _monitor_size = 0;
		GeeList* _tmp2_ = NULL;
		gint _tmp3_ = 0;
		gint _tmp4_ = 0;
		gint _monitor_index = 0;
#line 141 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_tmp0_ = self->priv->d_sub_monitors;
#line 141 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_tmp1_ = _g_object_ref0 (_tmp0_);
#line 141 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_monitor_list = _tmp1_;
#line 141 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_tmp2_ = _monitor_list;
#line 141 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_tmp3_ = gee_collection_get_size ((GeeCollection*) _tmp2_);
#line 141 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_tmp4_ = _tmp3_;
#line 141 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_monitor_size = _tmp4_;
#line 141 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_monitor_index = -1;
#line 141 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		while (TRUE) {
#line 1048 "gitg-recursive-monitor.c"
			gint _tmp5_ = 0;
			gint _tmp6_ = 0;
			gint _tmp7_ = 0;
			GitgRecursiveMonitorMonitor* monitor = NULL;
			GeeList* _tmp8_ = NULL;
			gint _tmp9_ = 0;
			gpointer _tmp10_ = NULL;
			GFile* _tmp11_ = NULL;
			GitgRecursiveMonitorMonitor* _tmp12_ = NULL;
			GFile* _tmp13_ = NULL;
			gboolean _tmp14_ = FALSE;
#line 141 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			_tmp5_ = _monitor_index;
#line 141 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			_monitor_index = _tmp5_ + 1;
#line 141 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			_tmp6_ = _monitor_index;
#line 141 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			_tmp7_ = _monitor_size;
#line 141 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			if (!(_tmp6_ < _tmp7_)) {
#line 141 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
				break;
#line 1072 "gitg-recursive-monitor.c"
			}
#line 141 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			_tmp8_ = _monitor_list;
#line 141 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			_tmp9_ = _monitor_index;
#line 141 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			_tmp10_ = gee_list_get (_tmp8_, _tmp9_);
#line 141 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			monitor = (GitgRecursiveMonitorMonitor*) _tmp10_;
#line 143 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			_tmp11_ = location;
#line 143 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			_tmp12_ = monitor;
#line 143 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			_tmp13_ = _tmp12_->location;
#line 143 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			_tmp14_ = g_file_equal (_tmp11_, _tmp13_);
#line 143 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			if (_tmp14_) {
#line 1092 "gitg-recursive-monitor.c"
				GeeList* _tmp15_ = NULL;
				GitgRecursiveMonitorMonitor* _tmp16_ = NULL;
#line 145 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
				_tmp15_ = self->priv->d_sub_monitors;
#line 145 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
				_tmp16_ = monitor;
#line 145 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
				gee_collection_remove ((GeeCollection*) _tmp15_, _tmp16_);
#line 146 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
				_g_object_unref0 (monitor);
#line 146 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
				_g_object_unref0 (_monitor_list);
#line 146 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
				return;
#line 1107 "gitg-recursive-monitor.c"
			}
#line 141 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			_g_object_unref0 (monitor);
#line 1111 "gitg-recursive-monitor.c"
		}
#line 141 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_g_object_unref0 (_monitor_list);
#line 1115 "gitg-recursive-monitor.c"
	}
}


static void gitg_recursive_monitor_monitor_changed_timeout (GitgRecursiveMonitor* self, GFile* file, GFile* other_file, GFileMonitorEvent event) {
	GFileMonitorEvent _tmp0_ = 0;
	GFile* _tmp8_ = NULL;
	GFile* _tmp9_ = NULL;
	GFile* _tmp10_ = NULL;
	GFile* _tmp11_ = NULL;
	GFile** _tmp12_ = NULL;
	GFile** _tmp13_ = NULL;
	gint _tmp13__length1 = 0;
#line 151 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	g_return_if_fail (self != NULL);
#line 151 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	g_return_if_fail (file != NULL);
#line 153 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp0_ = event;
#line 153 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	if (_tmp0_ == G_FILE_MONITOR_EVENT_CREATED) {
#line 1137 "gitg-recursive-monitor.c"
		GFile* _tmp1_ = NULL;
#line 155 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_tmp1_ = file;
#line 155 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		gitg_recursive_monitor_add_submonitor_if_directory (self, _tmp1_);
#line 1143 "gitg-recursive-monitor.c"
	} else {
		GFileMonitorEvent _tmp2_ = 0;
#line 157 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_tmp2_ = event;
#line 157 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		if (_tmp2_ == G_FILE_MONITOR_EVENT_DELETED) {
#line 1150 "gitg-recursive-monitor.c"
			GFile* _tmp3_ = NULL;
#line 159 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			_tmp3_ = file;
#line 159 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			gitg_recursive_monitor_remove_submonitor (self, _tmp3_);
#line 1156 "gitg-recursive-monitor.c"
		} else {
			GFileMonitorEvent _tmp4_ = 0;
#line 161 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			_tmp4_ = event;
#line 161 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			if (_tmp4_ == G_FILE_MONITOR_EVENT_MOVED) {
#line 1163 "gitg-recursive-monitor.c"
				GFile* _tmp5_ = NULL;
				GFile* _tmp6_ = NULL;
#line 163 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
				_tmp5_ = file;
#line 163 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
				gitg_recursive_monitor_remove_submonitor (self, _tmp5_);
#line 165 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
				_tmp6_ = other_file;
#line 165 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
				if (_tmp6_ != NULL) {
#line 1174 "gitg-recursive-monitor.c"
					GFile* _tmp7_ = NULL;
#line 167 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
					_tmp7_ = other_file;
#line 167 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
					gitg_recursive_monitor_add_submonitor_if_directory (self, _tmp7_);
#line 1180 "gitg-recursive-monitor.c"
				}
			}
		}
	}
#line 171 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp8_ = file;
#line 171 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp9_ = _g_object_ref0 (_tmp8_);
#line 171 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp10_ = other_file;
#line 171 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp11_ = _g_object_ref0 (_tmp10_);
#line 171 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp12_ = g_new0 (GFile*, 2 + 1);
#line 171 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp12_[0] = _tmp9_;
#line 171 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp12_[1] = _tmp11_;
#line 171 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp13_ = _tmp12_;
#line 171 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp13__length1 = 2;
#line 171 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	gitg_recursive_monitor_changed_timeout (self, _tmp13_, 2);
#line 171 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp13_ = (_vala_array_free (_tmp13_, _tmp13__length1, (GDestroyNotify) g_object_unref), NULL);
#line 1207 "gitg-recursive-monitor.c"
}


static void _vala_array_add14 (GFile*** array, int* length, int* size, GFile* value) {
#line 180 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	if ((*length) == (*size)) {
#line 180 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		*size = (*size) ? (2 * (*size)) : 4;
#line 180 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		*array = g_renew (GFile*, *array, (*size) + 1);
#line 1218 "gitg-recursive-monitor.c"
	}
#line 180 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	(*array)[(*length)++] = value;
#line 180 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	(*array)[*length] = NULL;
#line 1224 "gitg-recursive-monitor.c"
}


static gboolean ___lambda90_ (GitgRecursiveMonitor* self) {
	gboolean result = FALSE;
	GFile** _tmp0_ = NULL;
	gint _tmp0__length1 = 0;
	GFile** _tmp1_ = NULL;
#line 192 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	self->priv->d_monitor_changed_timeout_id = (guint) 0;
#line 194 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp0_ = self->priv->d_changed_files;
#line 194 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp0__length1 = self->priv->d_changed_files_length1;
#line 194 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	g_signal_emit_by_name (self, "changed", _tmp0_, _tmp0__length1);
#line 195 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp1_ = g_new0 (GFile*, 0 + 1);
#line 195 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	self->priv->d_changed_files = (_vala_array_free (self->priv->d_changed_files, self->priv->d_changed_files_length1, (GDestroyNotify) g_object_unref), NULL);
#line 195 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	self->priv->d_changed_files = _tmp1_;
#line 195 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	self->priv->d_changed_files_length1 = 0;
#line 195 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	self->priv->_d_changed_files_size_ = self->priv->d_changed_files_length1;
#line 197 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	result = FALSE;
#line 197 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	return result;
#line 1255 "gitg-recursive-monitor.c"
}


static gboolean ____lambda90__gsource_func (gpointer self) {
	gboolean result;
	result = ___lambda90_ ((GitgRecursiveMonitor*) self);
#line 191 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	return result;
#line 1264 "gitg-recursive-monitor.c"
}


static void gitg_recursive_monitor_changed_timeout (GitgRecursiveMonitor* self, GFile** files, int files_length1) {
	GFile** _tmp0_ = NULL;
	gint _tmp0__length1 = 0;
	guint _tmp12_ = 0U;
	GFile** _tmp13_ = NULL;
	gint _tmp13__length1 = 0;
#line 174 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	g_return_if_fail (self != NULL);
#line 176 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp0_ = files;
#line 176 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp0__length1 = files_length1;
#line 1280 "gitg-recursive-monitor.c"
	{
		GFile** f_collection = NULL;
		gint f_collection_length1 = 0;
		gint _f_collection_size_ = 0;
		gint f_it = 0;
#line 176 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		f_collection = _tmp0_;
#line 176 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		f_collection_length1 = _tmp0__length1;
#line 176 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		for (f_it = 0; f_it < _tmp0__length1; f_it = f_it + 1) {
#line 1292 "gitg-recursive-monitor.c"
			GFile* _tmp1_ = NULL;
			GFile* f = NULL;
#line 176 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			_tmp1_ = _g_object_ref0 (f_collection[f_it]);
#line 176 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			f = _tmp1_;
#line 1299 "gitg-recursive-monitor.c"
			{
				gboolean _tmp2_ = FALSE;
				GFile* _tmp3_ = NULL;
#line 178 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
				_tmp3_ = f;
#line 178 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
				if (_tmp3_ != NULL) {
#line 1307 "gitg-recursive-monitor.c"
					gboolean _tmp4_ = FALSE;
					GitgRecursiveMonitorFilterFunc _tmp5_ = NULL;
					void* _tmp5__target = NULL;
#line 178 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
					_tmp5_ = self->priv->d_filter_func;
#line 178 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
					_tmp5__target = self->priv->d_filter_func_target;
#line 178 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
					if (_tmp5_ == NULL) {
#line 178 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
						_tmp4_ = TRUE;
#line 1319 "gitg-recursive-monitor.c"
					} else {
						GitgRecursiveMonitorFilterFunc _tmp6_ = NULL;
						void* _tmp6__target = NULL;
						GFile* _tmp7_ = NULL;
						gboolean _tmp8_ = FALSE;
#line 178 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
						_tmp6_ = self->priv->d_filter_func;
#line 178 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
						_tmp6__target = self->priv->d_filter_func_target;
#line 178 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
						_tmp7_ = f;
#line 178 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
						_tmp8_ = _tmp6_ (_tmp7_, _tmp6__target);
#line 178 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
						_tmp4_ = _tmp8_;
#line 1335 "gitg-recursive-monitor.c"
					}
#line 178 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
					_tmp2_ = _tmp4_;
#line 1339 "gitg-recursive-monitor.c"
				} else {
#line 178 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
					_tmp2_ = FALSE;
#line 1343 "gitg-recursive-monitor.c"
				}
#line 178 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
				if (_tmp2_) {
#line 1347 "gitg-recursive-monitor.c"
					GFile** _tmp9_ = NULL;
					gint _tmp9__length1 = 0;
					GFile* _tmp10_ = NULL;
					GFile* _tmp11_ = NULL;
#line 180 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
					_tmp9_ = self->priv->d_changed_files;
#line 180 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
					_tmp9__length1 = self->priv->d_changed_files_length1;
#line 180 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
					_tmp10_ = f;
#line 180 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
					_tmp11_ = _g_object_ref0 (_tmp10_);
#line 180 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
					_vala_array_add14 (&self->priv->d_changed_files, &self->priv->d_changed_files_length1, &self->priv->_d_changed_files_size_, _tmp11_);
#line 1362 "gitg-recursive-monitor.c"
				}
#line 176 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
				_g_object_unref0 (f);
#line 1366 "gitg-recursive-monitor.c"
			}
		}
	}
#line 184 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp12_ = self->priv->d_monitor_changed_timeout_id;
#line 184 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	if (_tmp12_ != ((guint) 0)) {
#line 186 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		return;
#line 1376 "gitg-recursive-monitor.c"
	}
#line 189 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp13_ = self->priv->d_changed_files;
#line 189 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp13__length1 = self->priv->d_changed_files_length1;
#line 189 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	if (_tmp13__length1 > 0) {
#line 1384 "gitg-recursive-monitor.c"
		guint _tmp14_ = 0U;
#line 191 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_tmp14_ = g_timeout_add_seconds_full (G_PRIORITY_DEFAULT, (guint) 1, ____lambda90__gsource_func, g_object_ref (self), g_object_unref);
#line 191 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		self->priv->d_monitor_changed_timeout_id = _tmp14_;
#line 1390 "gitg-recursive-monitor.c"
	}
}


void gitg_recursive_monitor_cancel (GitgRecursiveMonitor* self) {
	GCancellable* _tmp0_ = NULL;
	guint _tmp1_ = 0U;
	GeeList* _tmp16_ = NULL;
	GFileMonitor* _tmp17_ = NULL;
#line 202 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	g_return_if_fail (self != NULL);
#line 204 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp0_ = self->priv->d_cancellable;
#line 204 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	g_cancellable_cancel (_tmp0_);
#line 206 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp1_ = self->priv->d_monitor_changed_timeout_id;
#line 206 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	if (_tmp1_ != ((guint) 0)) {
#line 1410 "gitg-recursive-monitor.c"
		guint _tmp2_ = 0U;
#line 208 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_tmp2_ = self->priv->d_monitor_changed_timeout_id;
#line 208 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		g_source_remove (_tmp2_);
#line 209 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		self->priv->d_monitor_changed_timeout_id = (guint) 0;
#line 1418 "gitg-recursive-monitor.c"
	}
	{
		GeeList* _monitor_list = NULL;
		GeeList* _tmp3_ = NULL;
		GeeList* _tmp4_ = NULL;
		gint _monitor_size = 0;
		GeeList* _tmp5_ = NULL;
		gint _tmp6_ = 0;
		gint _tmp7_ = 0;
		gint _monitor_index = 0;
#line 212 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_tmp3_ = self->priv->d_sub_monitors;
#line 212 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_tmp4_ = _g_object_ref0 (_tmp3_);
#line 212 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_monitor_list = _tmp4_;
#line 212 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_tmp5_ = _monitor_list;
#line 212 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_tmp6_ = gee_collection_get_size ((GeeCollection*) _tmp5_);
#line 212 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_tmp7_ = _tmp6_;
#line 212 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_monitor_size = _tmp7_;
#line 212 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_monitor_index = -1;
#line 212 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		while (TRUE) {
#line 1447 "gitg-recursive-monitor.c"
			gint _tmp8_ = 0;
			gint _tmp9_ = 0;
			gint _tmp10_ = 0;
			GitgRecursiveMonitorMonitor* monitor = NULL;
			GeeList* _tmp11_ = NULL;
			gint _tmp12_ = 0;
			gpointer _tmp13_ = NULL;
			GitgRecursiveMonitorMonitor* _tmp14_ = NULL;
			GitgRecursiveMonitor* _tmp15_ = NULL;
#line 212 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			_tmp8_ = _monitor_index;
#line 212 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			_monitor_index = _tmp8_ + 1;
#line 212 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			_tmp9_ = _monitor_index;
#line 212 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			_tmp10_ = _monitor_size;
#line 212 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			if (!(_tmp9_ < _tmp10_)) {
#line 212 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
				break;
#line 1469 "gitg-recursive-monitor.c"
			}
#line 212 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			_tmp11_ = _monitor_list;
#line 212 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			_tmp12_ = _monitor_index;
#line 212 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			_tmp13_ = gee_list_get (_tmp11_, _tmp12_);
#line 212 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			monitor = (GitgRecursiveMonitorMonitor*) _tmp13_;
#line 214 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			_tmp14_ = monitor;
#line 214 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			_tmp15_ = _tmp14_->monitor;
#line 214 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			gitg_recursive_monitor_cancel (_tmp15_);
#line 212 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
			_g_object_unref0 (monitor);
#line 1487 "gitg-recursive-monitor.c"
		}
#line 212 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_g_object_unref0 (_monitor_list);
#line 1491 "gitg-recursive-monitor.c"
	}
#line 217 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp16_ = self->priv->d_sub_monitors;
#line 217 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	gee_collection_clear ((GeeCollection*) _tmp16_);
#line 219 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp17_ = self->priv->d_monitor;
#line 219 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	if (_tmp17_ != NULL) {
#line 1501 "gitg-recursive-monitor.c"
		GFileMonitor* _tmp18_ = NULL;
#line 221 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_tmp18_ = self->priv->d_monitor;
#line 221 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		g_file_monitor_cancel (_tmp18_);
#line 222 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		_g_object_unref0 (self->priv->d_monitor);
#line 222 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		self->priv->d_monitor = NULL;
#line 1511 "gitg-recursive-monitor.c"
	}
}


static void g_cclosure_user_marshal_VOID__POINTER_INT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
	typedef void (*GMarshalFunc_VOID__POINTER_INT) (gpointer data1, gpointer arg_1, gint arg_2, gpointer data2);
	register GMarshalFunc_VOID__POINTER_INT callback;
	register GCClosure * cc;
	register gpointer data1;
	register gpointer data2;
	cc = (GCClosure *) closure;
#line 22 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	g_return_if_fail (n_param_values == 3);
#line 22 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	if (G_CCLOSURE_SWAP_DATA (closure)) {
#line 22 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		data1 = closure->data;
#line 22 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		data2 = param_values->data[0].v_pointer;
#line 1531 "gitg-recursive-monitor.c"
	} else {
#line 22 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		data1 = param_values->data[0].v_pointer;
#line 22 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
		data2 = closure->data;
#line 1537 "gitg-recursive-monitor.c"
	}
#line 22 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	callback = (GMarshalFunc_VOID__POINTER_INT) (marshal_data ? marshal_data : cc->callback);
#line 22 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	callback (data1, g_value_get_pointer (param_values + 1), g_value_get_int (param_values + 2), data2);
#line 1543 "gitg-recursive-monitor.c"
}


static GitgRecursiveMonitorMonitor* gitg_recursive_monitor_monitor_construct (GType object_type, GFile* location, GitgRecursiveMonitor* monitor) {
	GitgRecursiveMonitorMonitor * self = NULL;
	GFile* _tmp0_ = NULL;
	GFile* _tmp1_ = NULL;
	GitgRecursiveMonitor* _tmp2_ = NULL;
	GitgRecursiveMonitor* _tmp3_ = NULL;
#line 29 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	g_return_val_if_fail (location != NULL, NULL);
#line 29 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	g_return_val_if_fail (monitor != NULL, NULL);
#line 29 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	self = (GitgRecursiveMonitorMonitor*) g_object_new (object_type, NULL);
#line 31 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp0_ = location;
#line 31 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp1_ = _g_object_ref0 (_tmp0_);
#line 31 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_g_object_unref0 (self->location);
#line 31 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	self->location = _tmp1_;
#line 32 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp2_ = monitor;
#line 32 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_tmp3_ = _g_object_ref0 (_tmp2_);
#line 32 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_g_object_unref0 (self->monitor);
#line 32 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	self->monitor = _tmp3_;
#line 29 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	return self;
#line 1577 "gitg-recursive-monitor.c"
}


static GitgRecursiveMonitorMonitor* gitg_recursive_monitor_monitor_new (GFile* location, GitgRecursiveMonitor* monitor) {
#line 29 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	return gitg_recursive_monitor_monitor_construct (GITG_RECURSIVE_MONITOR_TYPE_MONITOR, location, monitor);
#line 1584 "gitg-recursive-monitor.c"
}


static void gitg_recursive_monitor_monitor_class_init (GitgRecursiveMonitorMonitorClass * klass) {
#line 24 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	gitg_recursive_monitor_monitor_parent_class = g_type_class_peek_parent (klass);
#line 24 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	G_OBJECT_CLASS (klass)->finalize = gitg_recursive_monitor_monitor_finalize;
#line 1593 "gitg-recursive-monitor.c"
}


static void gitg_recursive_monitor_monitor_instance_init (GitgRecursiveMonitorMonitor * self) {
}


static void gitg_recursive_monitor_monitor_finalize (GObject* obj) {
	GitgRecursiveMonitorMonitor * self;
#line 24 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, GITG_RECURSIVE_MONITOR_TYPE_MONITOR, GitgRecursiveMonitorMonitor);
#line 26 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_g_object_unref0 (self->location);
#line 27 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_g_object_unref0 (self->monitor);
#line 24 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	G_OBJECT_CLASS (gitg_recursive_monitor_monitor_parent_class)->finalize (obj);
#line 1611 "gitg-recursive-monitor.c"
}


static GType gitg_recursive_monitor_monitor_get_type (void) {
	static volatile gsize gitg_recursive_monitor_monitor_type_id__volatile = 0;
	if (g_once_init_enter (&gitg_recursive_monitor_monitor_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (GitgRecursiveMonitorMonitorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gitg_recursive_monitor_monitor_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GitgRecursiveMonitorMonitor), 0, (GInstanceInitFunc) gitg_recursive_monitor_monitor_instance_init, NULL };
		GType gitg_recursive_monitor_monitor_type_id;
		gitg_recursive_monitor_monitor_type_id = g_type_register_static (G_TYPE_OBJECT, "GitgRecursiveMonitorMonitor", &g_define_type_info, 0);
		g_once_init_leave (&gitg_recursive_monitor_monitor_type_id__volatile, gitg_recursive_monitor_monitor_type_id);
	}
	return gitg_recursive_monitor_monitor_type_id__volatile;
}


static void gitg_recursive_monitor_class_init (GitgRecursiveMonitorClass * klass) {
#line 22 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	gitg_recursive_monitor_parent_class = g_type_class_peek_parent (klass);
#line 22 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	g_type_class_add_private (klass, sizeof (GitgRecursiveMonitorPrivate));
#line 22 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	((GObjectClass *) klass)->dispose = (void (*)(GObject*)) gitg_recursive_monitor_real_dispose;
#line 22 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	G_OBJECT_CLASS (klass)->finalize = gitg_recursive_monitor_finalize;
#line 22 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	g_signal_new ("changed", GITG_TYPE_RECURSIVE_MONITOR, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__POINTER_INT, G_TYPE_NONE, 2, G_TYPE_POINTER, G_TYPE_INT);
#line 1638 "gitg-recursive-monitor.c"
}


static void gitg_recursive_monitor_instance_init (GitgRecursiveMonitor * self) {
#line 22 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	self->priv = GITG_RECURSIVE_MONITOR_GET_PRIVATE (self);
#line 1645 "gitg-recursive-monitor.c"
}


static void gitg_recursive_monitor_finalize (GObject* obj) {
	GitgRecursiveMonitor * self;
#line 22 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, GITG_TYPE_RECURSIVE_MONITOR, GitgRecursiveMonitor);
#line 38 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_g_object_unref0 (self->priv->d_monitor);
#line 39 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_g_object_unref0 (self->priv->d_sub_monitors);
#line 41 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	(self->priv->d_filter_func_target_destroy_notify == NULL) ? NULL : (self->priv->d_filter_func_target_destroy_notify (self->priv->d_filter_func_target), NULL);
#line 41 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	self->priv->d_filter_func = NULL;
#line 41 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	self->priv->d_filter_func_target = NULL;
#line 41 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	self->priv->d_filter_func_target_destroy_notify = NULL;
#line 42 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	_g_object_unref0 (self->priv->d_cancellable);
#line 43 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	self->priv->d_changed_files = (_vala_array_free (self->priv->d_changed_files, self->priv->d_changed_files_length1, (GDestroyNotify) g_object_unref), NULL);
#line 22 "/home/jesse/dev/gitg/gitg/gitg-recursive-monitor.vala"
	G_OBJECT_CLASS (gitg_recursive_monitor_parent_class)->finalize (obj);
#line 1671 "gitg-recursive-monitor.c"
}


GType gitg_recursive_monitor_get_type (void) {
	static volatile gsize gitg_recursive_monitor_type_id__volatile = 0;
	if (g_once_init_enter (&gitg_recursive_monitor_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (GitgRecursiveMonitorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gitg_recursive_monitor_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GitgRecursiveMonitor), 0, (GInstanceInitFunc) gitg_recursive_monitor_instance_init, NULL };
		GType gitg_recursive_monitor_type_id;
		gitg_recursive_monitor_type_id = g_type_register_static (G_TYPE_OBJECT, "GitgRecursiveMonitor", &g_define_type_info, 0);
		g_once_init_leave (&gitg_recursive_monitor_type_id__volatile, gitg_recursive_monitor_type_id);
	}
	return gitg_recursive_monitor_type_id__volatile;
}


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


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



