[gedit] Free the async data and some tidying up for the cancelled case (though it still is not working prope



commit 1fddb8fd8c03eaa826c7732f9a9f8701b61c9d91
Author: Paolo Borelli <pborelli gnome org>
Date:   Sun Feb 28 22:03:35 2010 +0100

    Free the async data and some tidying up for the cancelled case
    (though it still is not working properly)

 gedit/gedit-gio-document-loader.c |   33 ++++++++++++++++++++++-----------
 gedit/gedit-gio-document-saver.c  |   26 +++++++++++++++++++-------
 2 files changed, 41 insertions(+), 18 deletions(-)
---
diff --git a/gedit/gedit-gio-document-loader.c b/gedit/gedit-gio-document-loader.c
index 57a00a0..cc956e2 100644
--- a/gedit/gedit-gio-document-loader.c
+++ b/gedit/gedit-gio-document-loader.c
@@ -234,11 +234,14 @@ get_metadata_encoding (GeditDocumentLoader *loader)
 }
 
 static void
-remote_load_completed_or_failed (GeditGioDocumentLoader *gvloader, AsyncData *async)
+remote_load_completed_or_failed (GeditGioDocumentLoader *loader, AsyncData *async)
 {
-	gedit_document_loader_loading (GEDIT_DOCUMENT_LOADER (async->loader),
+	gedit_document_loader_loading (GEDIT_DOCUMENT_LOADER (loader),
 				       TRUE,
-				       async->loader->priv->error);
+				       loader->priv->error);
+
+	if (async)
+		async_data_free (async);
 }
 
 static void
@@ -254,7 +257,9 @@ close_input_stream_ready_cb (GInputStream *stream,
 			     AsyncData     *async)
 {
 	GError *error = NULL;
-	
+
+	gedit_debug (DEBUG_LOADER);
+
 	/* check cancelled state manually */
 	if (g_cancellable_is_cancelled (async->cancellable))
 	{
@@ -343,21 +348,21 @@ async_read_cb (GInputStream *stream,
 {
 	gedit_debug (DEBUG_LOADER);
 	GeditGioDocumentLoader *gvloader;
-	GeditDocumentLoader *loader;
 	GError *error = NULL;
 
-	gvloader = async->loader;
-	loader = GEDIT_DOCUMENT_LOADER (gvloader);
+	gedit_debug (DEBUG_LOADER);
 
 	/* manually check cancelled state */
 	if (g_cancellable_is_cancelled (async->cancellable))
 	{
-		remote_load_completed_or_failed (gvloader, async);
+		async_data_free (async);
 		return;
 	}
 
+	gvloader = async->loader;
+
 	async->read = g_input_stream_read_finish (stream, res, &error);
-	
+
 	/* error occurred */
 	if (async->read == -1)
 	{
@@ -383,7 +388,11 @@ async_read_cb (GInputStream *stream,
 	/* end of the file, we are done! */
 	if (async->read == 0)
 	{
-		GEDIT_DOCUMENT_LOADER (gvloader)->auto_detected_encoding =
+		GeditDocumentLoader *loader;
+
+		loader = GEDIT_DOCUMENT_LOADER (gvloader);
+
+		loader->auto_detected_encoding =
 			gedit_smart_charset_converter_get_guessed (gvloader->priv->converter);
 
 		loader->auto_detected_encoding = gedit_smart_charset_converter_get_guessed (gvloader->priv->converter);
@@ -541,7 +550,9 @@ mount_ready_callback (GFile        *file,
 {
 	GError *error = NULL;
 	gboolean mounted;
-	
+
+	gedit_debug (DEBUG_LOADER);
+
 	/* manual check for cancelled state */
 	if (g_cancellable_is_cancelled (async->cancellable))
 	{
diff --git a/gedit/gedit-gio-document-saver.c b/gedit/gedit-gio-document-saver.c
index 8ed75b8..c0e2dd9 100644
--- a/gedit/gedit-gio-document-saver.c
+++ b/gedit/gedit-gio-document-saver.c
@@ -168,12 +168,12 @@ static void
 remote_save_completed_or_failed (GeditGioDocumentSaver *gvsaver, 
 				 AsyncData 	       *async)
 {
-	if (async)
-		async_data_free (async);
-
 	gedit_document_saver_saving (GEDIT_DOCUMENT_SAVER (gvsaver),
 				     TRUE,
 				     gvsaver->priv->error);
+
+	if (async)
+		async_data_free (async);
 }
 
 static void
@@ -194,7 +194,7 @@ remote_get_info_cb (GFile        *source,
 	GFileInfo *info;
 	GError *error = NULL;
 
-	saver = async->saver;
+	gedit_debug (DEBUG_SAVER);
 
 	/* check cancelled state manually */
 	if (g_cancellable_is_cancelled (async->cancellable))
@@ -203,6 +203,8 @@ remote_get_info_cb (GFile        *source,
 		return;
 	}
 	
+	saver = async->saver;
+
 	gedit_debug_message (DEBUG_SAVER, "Finished query info on file");
 	info = g_file_query_info_finish (source, res, &error);
 
@@ -228,7 +230,9 @@ close_async_ready_get_info_cb (GOutputStream *stream,
 			       AsyncData     *async)
 {
 	GError *error = NULL;
-	
+
+	gedit_debug (DEBUG_SAVER);
+
 	/* check cancelled state manually */
 	if (g_cancellable_is_cancelled (async->cancellable))
 	{
@@ -299,6 +303,8 @@ async_write_cb (GOutputStream *stream,
 	gssize bytes_written;
 	GError *error = NULL;
 
+	gedit_debug (DEBUG_SAVER);
+
 	/* Check cancelled state manually */
 	if (g_cancellable_is_cancelled (async->cancellable))
 	{
@@ -402,6 +408,8 @@ async_replace_ready_callback (GFile        *source,
 	GFileOutputStream *file_stream;
 	GError *error = NULL;
 
+	gedit_debug (DEBUG_SAVER);
+
 	/* Check cancelled state manually */
 	if (g_cancellable_is_cancelled (async->cancellable))
 	{
@@ -488,7 +496,9 @@ mount_ready_callback (GFile        *file,
 {
 	GError *error = NULL;
 	gboolean mounted;
-	
+
+	gedit_debug (DEBUG_SAVER);
+
 	/* manual check for cancelled state */
 	if (g_cancellable_is_cancelled (async->cancellable))
 	{
@@ -539,7 +549,9 @@ check_modification_callback (GFile        *source,
 	GeditGioDocumentSaver *gvsaver;
 	GError *error = NULL;
 	GFileInfo *info;
-	
+
+	gedit_debug (DEBUG_SAVER);
+
 	/* manually check cancelled state */
 	if (g_cancellable_is_cancelled (async->cancellable))
 	{



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]