[maemo-commits] [maemo-commits] r15245 - projects/haf/trunk/osso-gnome-vfs2/debian/patches
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Tue Mar 4 19:53:50 EET 2008
- Previous message: [maemo-commits] r15244 - in projects/haf/trunk/hildon-1: . src
- Next message: [maemo-commits] r15246 - in projects/haf/trunk/hildon-theme-layout-4: . rc
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: marivoll
Date: 2008-03-04 19:53:49 +0200 (Tue, 04 Mar 2008)
New Revision: 15245
Added:
projects/haf/trunk/osso-gnome-vfs2/debian/patches/46-xfer-cancellable.patch
projects/haf/trunk/osso-gnome-vfs2/debian/patches/47-daemon-check-directly-closed.patch
Log:
New.
Added: projects/haf/trunk/osso-gnome-vfs2/debian/patches/46-xfer-cancellable.patch
===================================================================
--- projects/haf/trunk/osso-gnome-vfs2/debian/patches/46-xfer-cancellable.patch 2008-03-04 13:53:48 UTC (rev 15244)
+++ projects/haf/trunk/osso-gnome-vfs2/debian/patches/46-xfer-cancellable.patch 2008-03-04 17:53:49 UTC (rev 15245)
@@ -0,0 +1,333 @@
+--- libgnomevfs/gnome-vfs-job.c-unmod 2008-01-21 10:47:56.000000000 +0100
++++ libgnomevfs/gnome-vfs-job.c 2008-01-21 10:48:33.000000000 +0100
+@@ -1562,7 +1562,8 @@ execute_xfer (GnomeVFSJob *job)
+ xfer_callback,
+ job,
+ xfer_op->progress_sync_callback,
+- xfer_op->sync_callback_data);
++ xfer_op->sync_callback_data,
++ job->op->context);
+
+ /* If the xfer functions returns an error now, something really bad
+ * must have happened.
+--- libgnomevfs/gnome-vfs-cancellable-ops.h-unmod 2008-01-21 10:47:56.000000000 +0100
++++ libgnomevfs/gnome-vfs-cancellable-ops.h 2008-01-21 10:53:11.000000000 +0100
+@@ -48,6 +48,9 @@ GnomeVFSResult gnome_vfs_create_uri_canc
+ GnomeVFSResult gnome_vfs_close_cancellable
+ (GnomeVFSHandle *handle,
+ GnomeVFSContext *context);
++GnomeVFSResult gnome_vfs_close_cancellable_unchecked
++ (GnomeVFSHandle *handle,
++ GnomeVFSContext *context);
+
+ GnomeVFSResult gnome_vfs_read_cancellable
+ (GnomeVFSHandle *handle,
+@@ -139,7 +142,8 @@ GnomeVFSResult _gnome_vfs_xfer_private
+ GnomeVFSXferProgressCallback progress_callback,
+ gpointer data,
+ GnomeVFSXferProgressCallback sync_progress_callback,
+- gpointer sync_progress_data);
++ gpointer sync_progress_data,
++ GnomeVFSContext *context);
+
+ GnomeVFSResult gnome_vfs_directory_read_next_cancellable
+ (GnomeVFSDirectoryHandle *handle,
+--- libgnomevfs/gnome-vfs-cancellable-ops.c-unmod 2008-01-21 10:54:41.000000000 +0100
++++ libgnomevfs/gnome-vfs-cancellable-ops.c 2008-01-21 10:54:46.000000000 +0100
+@@ -109,6 +109,15 @@ gnome_vfs_close_cancellable (GnomeVFSHan
+ }
+
+ GnomeVFSResult
++gnome_vfs_close_cancellable_unchecked (GnomeVFSHandle *handle,
++ GnomeVFSContext *context)
++{
++ g_return_val_if_fail (handle != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS);
++
++ return _gnome_vfs_handle_do_close (handle, context);
++}
++
++GnomeVFSResult
+ gnome_vfs_read_cancellable (GnomeVFSHandle *handle,
+ gpointer buffer,
+ GnomeVFSFileSize bytes,
+--- libgnomevfs/gnome-vfs-xfer.c-unmod 2008-01-21 10:47:56.000000000 +0100
++++ libgnomevfs/gnome-vfs-xfer.c 2008-01-21 10:51:15.000000000 +0100
+@@ -1209,7 +1209,8 @@ copy_file_data (GnomeVFSHandle *target_h
+ GnomeVFSXferErrorMode *error_mode,
+ guint source_block_size,
+ guint target_block_size,
+- gboolean *skip)
++ gboolean *skip,
++ GnomeVFSContext *context)
+ {
+ GnomeVFSResult result;
+ gpointer buffer;
+@@ -1245,8 +1246,8 @@ copy_file_data (GnomeVFSHandle *target_h
+ do {
+ retry = FALSE;
+
+- result = gnome_vfs_read (source_handle, buffer,
+- block_size, &bytes_read);
++ result = gnome_vfs_read_cancellable (source_handle, buffer,
++ block_size, &bytes_read, context);
+ if (forget_cache) {
+ gnome_vfs_forget_cache (source_handle,
+ total_bytes_read, bytes_read);
+@@ -1269,9 +1270,10 @@ copy_file_data (GnomeVFSHandle *target_h
+ do {
+ retry = FALSE;
+
+- result = gnome_vfs_write (target_handle, write_buffer,
+- bytes_to_write,
+- &bytes_written);
++ result = gnome_vfs_write_cancellable (target_handle, write_buffer,
++ bytes_to_write,
++ &bytes_written,
++ context);
+
+ if (result != GNOME_VFS_OK) {
+ retry = handle_error (&result, progress, error_mode, skip);
+@@ -1403,7 +1405,8 @@ copy_symlink (GnomeVFSURI *source_uri,
+ GnomeVFSXferErrorMode *error_mode,
+ GnomeVFSXferOverwriteMode *overwrite_mode,
+ GnomeVFSProgressCallbackState *progress,
+- gboolean *skip)
++ gboolean *skip,
++ GnomeVFSContext *context)
+ {
+ GnomeVFSResult result;
+ gboolean retry;
+@@ -1415,7 +1418,7 @@ copy_symlink (GnomeVFSURI *source_uri,
+ do {
+ retry = FALSE;
+
+- result = gnome_vfs_create_symbolic_link (target_uri, link_name);
++ result = gnome_vfs_create_symbolic_link_cancellable (target_uri, link_name, context);
+
+ if (result == GNOME_VFS_ERROR_FILE_EXISTS) {
+ remove = FALSE;
+@@ -1460,7 +1463,8 @@ copy_file (GnomeVFSFileInfo *info,
+ GnomeVFSXferErrorMode *error_mode,
+ GnomeVFSXferOverwriteMode *overwrite_mode,
+ GnomeVFSProgressCallbackState *progress,
+- gboolean *skip)
++ gboolean *skip,
++ GnomeVFSContext *context)
+ {
+ GnomeVFSResult close_result, result;
+ GnomeVFSHandle *source_handle, *target_handle;
+@@ -1490,11 +1494,11 @@ copy_file (GnomeVFSFileInfo *info,
+
+
+ if (*skip) {
+- gnome_vfs_close (source_handle);
++ gnome_vfs_close_cancellable_unchecked (source_handle, context);
+ return GNOME_VFS_OK;
+ }
+ if (result != GNOME_VFS_OK) {
+- gnome_vfs_close (source_handle);
++ gnome_vfs_close_cancellable_unchecked (source_handle, context);
+ return result;
+ }
+
+@@ -1510,7 +1514,7 @@ copy_file (GnomeVFSFileInfo *info,
+ ? info->io_block_size : 8192,
+ (target_dir_info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_IO_BLOCK_SIZE && target_dir_info->io_block_size > 0)
+ ? target_dir_info->io_block_size : 8192,
+- skip);
++ skip, context);
+ }
+
+ if (result == GNOME_VFS_OK
+@@ -1518,13 +1522,13 @@ copy_file (GnomeVFSFileInfo *info,
+ result = GNOME_VFS_ERROR_INTERRUPTED;
+ }
+
+- close_result = gnome_vfs_close (source_handle);
++ close_result = gnome_vfs_close_cancellable_unchecked (source_handle, context);
+ if (result == GNOME_VFS_OK && close_result != GNOME_VFS_OK) {
+ handle_error (&close_result, progress, error_mode, skip);
+ return close_result;
+ }
+
+- close_result = gnome_vfs_close (target_handle);
++ close_result = gnome_vfs_close_cancellable_unchecked (target_handle, context);
+ if (result == GNOME_VFS_OK && close_result != GNOME_VFS_OK) {
+ handle_error (&close_result, progress, error_mode, skip);
+ return close_result;
+@@ -1565,7 +1569,8 @@ copy_directory (GnomeVFSFileInfo *source
+ GnomeVFSXferErrorMode *error_mode,
+ GnomeVFSXferOverwriteMode *overwrite_mode,
+ GnomeVFSProgressCallbackState *progress,
+- gboolean *skip)
++ gboolean *skip,
++ GnomeVFSContext *context)
+ {
+ GnomeVFSResult result;
+ GnomeVFSDirectoryHandle *source_directory_handle;
+@@ -1659,11 +1664,11 @@ copy_directory (GnomeVFSFileInfo *source
+ result = copy_file (info, target_dir_info,
+ source_uri, dest_uri,
+ xfer_options, error_mode, overwrite_mode,
+- progress, &skip_child);
++ progress, &skip_child, context);
+ } else if (info->type == GNOME_VFS_FILE_TYPE_DIRECTORY) {
+ result = copy_directory (info, source_uri, dest_uri,
+ xfer_options, error_mode, overwrite_mode,
+- progress, &skip_child);
++ progress, &skip_child, context);
+ } else if (info->type == GNOME_VFS_FILE_TYPE_SYMBOLIC_LINK) {
+ if (xfer_options & GNOME_VFS_XFER_FOLLOW_LINKS_RECURSIVE) {
+ GnomeVFSFileInfo *symlink_target_info = gnome_vfs_file_info_new ();
+@@ -1673,11 +1678,11 @@ copy_directory (GnomeVFSFileInfo *source
+ result = copy_file (symlink_target_info, target_dir_info,
+ source_uri, dest_uri,
+ xfer_options, error_mode, overwrite_mode,
+- progress, &skip_child);
++ progress, &skip_child, context);
+ gnome_vfs_file_info_unref (symlink_target_info);
+ } else {
+ result = copy_symlink (source_uri, dest_uri, info->symlink_name,
+- error_mode, overwrite_mode, progress, &skip_child);
++ error_mode, overwrite_mode, progress, &skip_child, context);
+ }
+ }
+ /* We don't want to overwrite a previous skip with FALSE, so we only
+@@ -1754,7 +1759,8 @@ copy_items (const GList *source_uri_list
+ GnomeVFSXferErrorMode *error_mode,
+ GnomeVFSXferOverwriteMode overwrite_mode,
+ GnomeVFSProgressCallbackState *progress,
+- GList **p_source_uris_copied_list)
++ GList **p_source_uris_copied_list,
++ GnomeVFSContext *context)
+ {
+ GnomeVFSResult result;
+ const GList *source_item, *target_item;
+@@ -1832,16 +1838,16 @@ copy_items (const GList *source_uri_list
+ source_uri, target_uri,
+ xfer_options, error_mode,
+ &overwrite_mode_abort,
+- progress, &skip);
++ progress, &skip, context);
+ } else if (info->type == GNOME_VFS_FILE_TYPE_DIRECTORY) {
+ result = copy_directory (info, source_uri, target_uri,
+ xfer_options, error_mode,
+ &overwrite_mode_abort,
+- progress, &skip);
++ progress, &skip, context);
+ } else if (info->type == GNOME_VFS_FILE_TYPE_SYMBOLIC_LINK) {
+ result = copy_symlink (source_uri, target_uri, info->symlink_name,
+ error_mode, &overwrite_mode_abort,
+- progress, &skip);
++ progress, &skip, context);
+ }
+ /* just ignore all the other special file system objects here */
+
+@@ -1918,7 +1924,8 @@ move_items (const GList *source_uri_list
+ GnomeVFSXferOptions xfer_options,
+ GnomeVFSXferErrorMode *error_mode,
+ GnomeVFSXferOverwriteMode *overwrite_mode,
+- GnomeVFSProgressCallbackState *progress)
++ GnomeVFSProgressCallbackState *progress,
++ GnomeVFSContext *context)
+ {
+ GnomeVFSResult result;
+ const GList *source_item, *target_item;
+@@ -1962,10 +1969,11 @@ move_items (const GList *source_uri_list
+ /* no matter what the replace mode, just overwrite the destination
+ * handle_name_conflicts took care of conflicting files
+ */
+- result = gnome_vfs_move_uri (source_uri, target_uri,
+- (xfer_options & GNOME_VFS_XFER_USE_UNIQUE_NAMES) != 0
+- ? GNOME_VFS_XFER_OVERWRITE_MODE_ABORT
+- : GNOME_VFS_XFER_OVERWRITE_MODE_REPLACE);
++ result = gnome_vfs_move_uri_cancellable (source_uri, target_uri,
++ (xfer_options & GNOME_VFS_XFER_USE_UNIQUE_NAMES) != 0
++ ? GNOME_VFS_XFER_OVERWRITE_MODE_ABORT
++ : GNOME_VFS_XFER_OVERWRITE_MODE_REPLACE,
++ context);
+
+
+ if (result == GNOME_VFS_ERROR_FILE_EXISTS) {
+@@ -2025,7 +2033,8 @@ link_items (const GList *source_uri_list
+ GnomeVFSXferOptions xfer_options,
+ GnomeVFSXferErrorMode *error_mode,
+ GnomeVFSXferOverwriteMode *overwrite_mode,
+- GnomeVFSProgressCallbackState *progress)
++ GnomeVFSProgressCallbackState *progress,
++ GnomeVFSContext *context)
+ {
+ GnomeVFSResult result;
+ const GList *source_item, *target_item;
+@@ -2072,7 +2081,7 @@ link_items (const GList *source_uri_list
+ /* no matter what the replace mode, just overwrite the destination
+ * handle_name_conflicts took care of conflicting files
+ */
+- result = gnome_vfs_create_symbolic_link (target_uri, source_reference);
++ result = gnome_vfs_create_symbolic_link_cancellable (target_uri, source_reference, context);
+ if (result == GNOME_VFS_ERROR_FILE_EXISTS) {
+ /* deal with a name conflict -- ask the progress_callback for a better name */
+ g_free (progress->progress_info->duplicate_name);
+@@ -2360,7 +2369,8 @@ gnome_vfs_xfer_uri_internal (const GList
+ GnomeVFSXferOptions xfer_options,
+ GnomeVFSXferErrorMode error_mode,
+ GnomeVFSXferOverwriteMode overwrite_mode,
+- GnomeVFSProgressCallbackState *progress)
++ GnomeVFSProgressCallbackState *progress,
++ GnomeVFSContext *context)
+ {
+ GnomeVFSResult result;
+ GList *source_uri_list, *target_uri_list;
+@@ -2581,20 +2591,20 @@ gnome_vfs_xfer_uri_internal (const GList
+ g_assert (!link);
+ result = move_items (source_uri_list, target_uri_list,
+ xfer_options, &error_mode, &overwrite_mode,
+- progress);
++ progress, context);
+ if (result == GNOME_VFS_OK && merge_source_uri_list != NULL) {
+ result = copy_items (merge_source_uri_list, merge_target_uri_list,
+ xfer_options, &error_mode, overwrite_mode,
+- progress, &source_uri_list_copied);
++ progress, &source_uri_list_copied, context);
+ }
+ } else if (link) {
+ result = link_items (source_uri_list, target_uri_list,
+ xfer_options, &error_mode, &overwrite_mode,
+- progress);
++ progress, context);
+ } else {
+ result = copy_items (source_uri_list, target_uri_list,
+ xfer_options, &error_mode, overwrite_mode,
+- progress, &source_uri_list_copied);
++ progress, &source_uri_list_copied, context);
+ }
+
+ if (result == GNOME_VFS_OK) {
+@@ -2627,7 +2637,8 @@ _gnome_vfs_xfer_private (const GList *so
+ GnomeVFSXferProgressCallback progress_callback,
+ gpointer data,
+ GnomeVFSXferProgressCallback sync_progress_callback,
+- gpointer sync_progress_data)
++ gpointer sync_progress_data,
++ GnomeVFSContext *context)
+ {
+ GnomeVFSProgressCallbackState progress_state;
+ GnomeVFSXferProgressInfo progress_info;
+@@ -2679,7 +2690,7 @@ _gnome_vfs_xfer_private (const GList *so
+
+ call_progress (&progress_state, GNOME_VFS_XFER_PHASE_INITIAL);
+ result = gnome_vfs_xfer_uri_internal (source_uri_list, target_uri_list,
+- xfer_options, error_mode, overwrite_mode, &progress_state);
++ xfer_options, error_mode, overwrite_mode, &progress_state, context);
+ }
+
+ call_progress (&progress_state, GNOME_VFS_XFER_PHASE_COMPLETED);
+@@ -2745,7 +2756,7 @@ gnome_vfs_xfer_uri_list (const GList *so
+ call_progress (&progress_state, GNOME_VFS_XFER_PHASE_INITIAL);
+
+ result = gnome_vfs_xfer_uri_internal (source_uri_list, target_uri_list,
+- xfer_options, error_mode, overwrite_mode, &progress_state);
++ xfer_options, error_mode, overwrite_mode, &progress_state, NULL);
+
+ call_progress (&progress_state, GNOME_VFS_XFER_PHASE_COMPLETED);
+ free_progress (&progress_info);
Added: projects/haf/trunk/osso-gnome-vfs2/debian/patches/47-daemon-check-directly-closed.patch
===================================================================
--- projects/haf/trunk/osso-gnome-vfs2/debian/patches/47-daemon-check-directly-closed.patch 2008-03-04 13:53:48 UTC (rev 15244)
+++ projects/haf/trunk/osso-gnome-vfs2/debian/patches/47-daemon-check-directly-closed.patch 2008-03-04 17:53:49 UTC (rev 15245)
@@ -0,0 +1,101 @@
+--- libgnomevfs/gnome-vfs-daemon-method.c-unmod 2008-01-21 11:04:48.000000000 +0100
++++ libgnomevfs/gnome-vfs-daemon-method.c 2008-01-21 11:05:11.000000000 +0100
+@@ -905,13 +905,21 @@ do_close (GnomeVFSMethod *method,
+ FileHandle *handle;
+ DBusMessage *reply;
+ GnomeVFSResult result;
++ gboolean directly_cancelled;
+
+ handle = (FileHandle *) method_handle;
+
++ g_print ("do_close, client side: context: %p, cancelled: %d\n",
++ context,
++ gnome_vfs_context_check_cancellation (context));
++
++ directly_cancelled = gnome_vfs_context_check_cancellation (context);
++
+ reply = execute_operation (DVD_DAEMON_METHOD_CLOSE,
+ context, &result,
+ DBUS_TIMEOUT_OPEN_CLOSE,
+ DVD_TYPE_INT32, handle->handle_id,
++ DVD_TYPE_BOOL, directly_cancelled,
+ DVD_TYPE_LAST);
+
+ if (!reply) {
+--- daemon/daemon-connection.c-unmod 2008-01-21 11:20:20.000000000 +0100
++++ daemon/daemon-connection.c 2008-01-21 11:25:11.000000000 +0100
+@@ -699,6 +699,8 @@ connection_handle_create (DaemonConnecti
+ CancellationHandle *cancellation;
+ GnomeVFSContext *context;
+
++ g_print ("\n---\n"); /* makes the debugging output easier to follow */
++
+ if (!get_operation_args (message, &cancellation_id,
+ DVD_TYPE_URI, &uri,
+ DVD_TYPE_INT32, &mode,
+@@ -756,9 +758,11 @@ connection_handle_close (DaemonConnectio
+ FileHandle *handle;
+ CancellationHandle *cancellation;
+ GnomeVFSContext *context;
++ gboolean directly_cancelled;
+
+ if (!get_operation_args (message, &cancellation_id,
+ DVD_TYPE_INT32, &handle_id,
++ DVD_TYPE_BOOL, &directly_cancelled,
+ DVD_TYPE_LAST)) {
+ connection_reply_result (conn, message,
+ GNOME_VFS_ERROR_INTERNAL);
+@@ -766,7 +770,8 @@ connection_handle_close (DaemonConnectio
+ return;
+ }
+
+- d(g_print ("close: %d (%d)\n", handle_id, cancellation_id));
++ g_print ("close: %d (cancellation id %d), directly closed: %d\n",
++ handle_id, cancellation_id, directly_cancelled);
+
+ handle = get_file_handle (conn, handle_id);
+ if (!handle) {
+@@ -775,7 +780,20 @@ connection_handle_close (DaemonConnectio
+ return;
+ }
+
+- if (cancellation_id != -1) {
++ if (directly_cancelled) {
++ GnomeVFSContext *temp_context;
++ GnomeVFSCancellation *temp_cancellation;
++
++ g_print ("Creating fake context and cancelling it...\n");
++
++ temp_context = gnome_vfs_context_new ();
++ temp_cancellation = gnome_vfs_context_get_cancellation (temp_context);
++ gnome_vfs_cancellation_cancel (temp_cancellation);
++
++ cancellation = NULL;
++ context = temp_context;
++ }
++ else if (cancellation_id != -1) {
+ cancellation = connection_add_cancellation (conn, cancellation_id);
+ context = cancellation->context;
+ } else {
+@@ -784,8 +802,8 @@ connection_handle_close (DaemonConnectio
+ }
+
+ gnome_vfs_daemon_set_current_connection (conn->conn);
+- result = gnome_vfs_close_cancellable (handle->vfs_handle,
+- context);
++ result = gnome_vfs_close_cancellable_unchecked (handle->vfs_handle,
++ context);
+ gnome_vfs_daemon_set_current_connection (NULL);
+
+ /* Clear the handle so we don't close it twice. If close is not
+@@ -799,6 +817,10 @@ connection_handle_close (DaemonConnectio
+ connection_remove_cancellation (conn, cancellation);
+ }
+
++ if (directly_cancelled) {
++ gnome_vfs_context_free (context);
++ }
++
+ if (connection_check_and_reply_error (conn, message, result)) {
+ return;
+ }
- Previous message: [maemo-commits] r15244 - in projects/haf/trunk/hildon-1: . src
- Next message: [maemo-commits] r15246 - in projects/haf/trunk/hildon-theme-layout-4: . rc
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
