diff --git a/ChangeLog b/ChangeLog index afda4fa747c04b09db7c05a3304e1d5a0d65f09f..a38201f6dc2a43ef2bfa1f3772ecad2005c004d2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2007-05-22 Benedikt Meurer <benny@xfce.org> + + * thunar-vfs/thunar-vfs-path.c: Fix unaligned access in ThunarVfsPath + on sparc64. Bug #2815. + * docs/reference/: Update reference manual. + 2007-05-20 Benedikt Meurer <benny@xfce.org> * thunar/thunar-preferences.c(thunar_preferences_set_property): diff --git a/docs/reference/thunar-vfs/tmpl/thunar-vfs-info.sgml b/docs/reference/thunar-vfs/tmpl/thunar-vfs-info.sgml index 72bc627d333f0abfabc42c3ee16e0d79009a56ea..8ee24e273d7752b7ec40e1e9a3169c517a62ddf1 100644 --- a/docs/reference/thunar-vfs/tmpl/thunar-vfs-info.sgml +++ b/docs/reference/thunar-vfs/tmpl/thunar-vfs-info.sgml @@ -125,8 +125,6 @@ Stores information about files. @working_directory: @error: @Returns: -<!-- # Unused Parameters # --> -@uris: <!-- ##### FUNCTION thunar_vfs_info_rename ##### --> diff --git a/docs/reference/thunar-vfs/tmpl/thunar-vfs-mime-application.sgml b/docs/reference/thunar-vfs/tmpl/thunar-vfs-mime-application.sgml index 803447947795286f1a82b0d3c40d816e45a71466..54f197fd0c5521ec318c64aa2c9402270e55b4e9 100644 --- a/docs/reference/thunar-vfs/tmpl/thunar-vfs-mime-application.sgml +++ b/docs/reference/thunar-vfs/tmpl/thunar-vfs-mime-application.sgml @@ -69,8 +69,6 @@ Registered Applications for MIME types. @mime_application: @Returns: -<!-- # Unused Parameters # --> -@application: <!-- ##### FUNCTION thunar_vfs_mime_application_get_desktop_id ##### --> @@ -80,8 +78,6 @@ Registered Applications for MIME types. @mime_application: @Returns: -<!-- # Unused Parameters # --> -@application: <!-- ##### MACRO thunar_vfs_mime_application_get_flags ##### --> @@ -91,8 +87,6 @@ Registered Applications for MIME types. @mime_application: @Returns: -<!-- # Unused Parameters # --> -@application: <!-- ##### MACRO thunar_vfs_mime_application_get_name ##### --> @@ -102,8 +96,6 @@ Registered Applications for MIME types. @mime_application: @Returns: -<!-- # Unused Parameters # --> -@application: <!-- ##### FUNCTION thunar_vfs_mime_application_hash ##### --> @@ -113,8 +105,6 @@ Registered Applications for MIME types. @mime_application: @Returns: -<!-- # Unused Parameters # --> -@application: <!-- ##### FUNCTION thunar_vfs_mime_application_equal ##### --> diff --git a/docs/reference/thunar-vfs/tmpl/thunar-vfs-monitor.sgml b/docs/reference/thunar-vfs/tmpl/thunar-vfs-monitor.sgml index 426ba44ee34888e6429eb4aed91e69c9ccfce6ba..16bf9c7c1f1938dcc46ff29cda7e40abb925d6a6 100644 --- a/docs/reference/thunar-vfs/tmpl/thunar-vfs-monitor.sgml +++ b/docs/reference/thunar-vfs/tmpl/thunar-vfs-monitor.sgml @@ -50,9 +50,6 @@ Portable file system monitoring class. @handle_path: @event_path: @user_data: -<!-- # Unused Parameters # --> -@handle_uri: -@event_uri: <!-- ##### FUNCTION thunar_vfs_monitor_get_default ##### --> @@ -73,8 +70,6 @@ Portable file system monitoring class. @callback: @user_data: @Returns: -<!-- # Unused Parameters # --> -@uri: <!-- ##### FUNCTION thunar_vfs_monitor_add_file ##### --> @@ -87,8 +82,6 @@ Portable file system monitoring class. @callback: @user_data: @Returns: -<!-- # Unused Parameters # --> -@uri: <!-- ##### FUNCTION thunar_vfs_monitor_remove ##### --> @@ -108,8 +101,6 @@ Portable file system monitoring class. @monitor: @event: @path: -<!-- # Unused Parameters # --> -@uri: <!-- ##### FUNCTION thunar_vfs_monitor_wait ##### --> diff --git a/docs/reference/thunar-vfs/tmpl/thunar-vfs-volume.sgml b/docs/reference/thunar-vfs/tmpl/thunar-vfs-volume.sgml index e05a8642027f2a9e0872b039169491be126f82f9..67041b754633382660763cbe834ab6094f406bd8 100644 --- a/docs/reference/thunar-vfs/tmpl/thunar-vfs-volume.sgml +++ b/docs/reference/thunar-vfs/tmpl/thunar-vfs-volume.sgml @@ -47,6 +47,7 @@ ThunarVfsVolume @THUNAR_VFS_VOLUME_STATUS_MOUNTED: @THUNAR_VFS_VOLUME_STATUS_PRESENT: +@THUNAR_VFS_VOLUME_STATUS_MOUNTABLE: <!-- ##### STRUCT ThunarVfsVolume ##### --> <para> diff --git a/docs/reference/thunarx/tmpl/thunarx-provider-plugin.sgml b/docs/reference/thunarx/tmpl/thunarx-provider-plugin.sgml index 2dbab0de62291146ccc43a204a7935026721fda8..09589c5f6e6dca5df4542efe734190dfe0e900eb 100644 --- a/docs/reference/thunarx/tmpl/thunarx-provider-plugin.sgml +++ b/docs/reference/thunarx/tmpl/thunarx-provider-plugin.sgml @@ -93,7 +93,7 @@ Stable @plugin: @name: -@const_static_values: +@_static_values: @Returns: @@ -104,7 +104,7 @@ Stable @plugin: @name: -@const_static_values: +@_static_values: @Returns: diff --git a/thunar-vfs/thunar-vfs-path.c b/thunar-vfs/thunar-vfs-path.c index ad3886076939c32560fc107213e1250cf942ea9c..35c9d42dfd981a4ba0547b9f6f4fa07bf2fe2593 100644 --- a/thunar-vfs/thunar-vfs-path.c +++ b/thunar-vfs/thunar-vfs-path.c @@ -1,6 +1,6 @@ /* $Id$ */ /*- - * Copyright (c) 2005-2006 Benedikt Meurer <benny@xfce.org> + * Copyright (c) 2005-2007 Benedikt Meurer <benny@xfce.org> * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -46,11 +46,11 @@ /* Masks to handle the 4-byte aligned path names */ #if G_BYTE_ORDER == G_LITTLE_ENDIAN -#define THUNAR_VFS_PATH_MASK (0xffu << ((sizeof (guint) - 1) * 8)) +#define THUNAR_VFS_PATH_MASK (0xffu << ((sizeof (gsize) - 1) * 8)) #define THUNAR_VFS_PATH_ROOT (0x2fu) #elif G_BYTE_ORDER == G_BIG_ENDIAN #define THUNAR_VFS_PATH_MASK (0xffu) -#define THUNAR_VFS_PATH_ROOT (0x2fu << ((sizeof (guint) - 1) * 8)) +#define THUNAR_VFS_PATH_ROOT (0x2fu << ((sizeof (gsize) - 1) * 8)) #else #error "Unsupported endianess" #endif @@ -484,7 +484,7 @@ void thunar_vfs_path_unref (ThunarVfsPath *path) { ThunarVfsPath *parent; - const guint *p; + const gsize *p; while (path != NULL && (g_atomic_int_exchange_and_add (&path->ref_count, -1) & ~THUNAR_VFS_PATH_SCHEME_MASK) == 1) { @@ -519,7 +519,7 @@ thunar_vfs_path_unref (ThunarVfsPath *path) THUNAR_VFS_PATH_DEBUG_REMOVE (path); /* release the path resources (we need to determine the size for the slice allocator) */ - for (p = (const guint *) thunar_vfs_path_get_name (path); (*p & THUNAR_VFS_PATH_MASK) != 0u; ++p) + for (p = (const gsize *) thunar_vfs_path_get_name (path); (*p & THUNAR_VFS_PATH_MASK) != 0u; ++p) ; _thunar_vfs_slice_free1 (((const guint8 *) (p + 1)) - ((const guint8 *) path), path); @@ -570,8 +570,8 @@ thunar_vfs_path_equal (gconstpointer path_ptr_a, { const ThunarVfsPath *path_a = path_ptr_a; const ThunarVfsPath *path_b = path_ptr_b; - const guint *a; - const guint *b; + const gsize *a; + const gsize *b; /* compare the schemes */ if (thunar_vfs_path_get_scheme (path_a) != thunar_vfs_path_get_scheme (path_b)) @@ -583,8 +583,8 @@ again: return TRUE; /* compare the last path component */ - a = (const guint *) thunar_vfs_path_get_name (path_a); - b = (const guint *) thunar_vfs_path_get_name (path_b); + a = (const gsize *) thunar_vfs_path_get_name (path_a); + b = (const gsize *) thunar_vfs_path_get_name (path_b); for (;;) { if (*a != *b) @@ -1120,7 +1120,7 @@ _thunar_vfs_path_init (void) _thunar_vfs_return_if_fail (n_home_components == 0); /* include the root element */ - n_bytes = sizeof (ThunarVfsPath) + sizeof (guint); + n_bytes = sizeof (ThunarVfsPath) + sizeof (gsize); n_home_components = 1; /* split the home path into its components */ @@ -1128,7 +1128,7 @@ _thunar_vfs_path_init (void) for (component = components; *component != NULL; ++component) if (G_LIKELY (**component != '\0')) { - n_bytes += sizeof (ThunarVfsPath) + ((strlen (*component) + sizeof (guint)) / sizeof (guint)) * sizeof (guint); + n_bytes += sizeof (ThunarVfsPath) + ((strlen (*component) + sizeof (gsize)) / sizeof (gsize)) * sizeof (gsize); n_home_components += 1; } @@ -1141,8 +1141,8 @@ _thunar_vfs_path_init (void) path->ref_count = 1; path->parent = NULL; home_components[0] = path; - *((guint *) thunar_vfs_path_get_name (path)) = THUNAR_VFS_PATH_ROOT; - offset += sizeof (ThunarVfsPath) + sizeof (guint); + *((gsize *) thunar_vfs_path_get_name (path)) = THUNAR_VFS_PATH_ROOT; + offset += sizeof (ThunarVfsPath) + sizeof (gsize); /* add the remaining path components */ for (component = components; *component != NULL; ++component) @@ -1155,7 +1155,7 @@ _thunar_vfs_path_init (void) home_components[++n] = path; /* calculate the offset for the next home path component */ - offset += sizeof (ThunarVfsPath) + ((strlen (*component) + sizeof (guint)) / sizeof (guint)) * sizeof (guint); + offset += sizeof (ThunarVfsPath) + ((strlen (*component) + sizeof (gsize)) / sizeof (gsize)) * sizeof (gsize); /* copy the path */ for (s = *component, t = (gchar *) thunar_vfs_path_get_name (path); *s != '\0'; ) @@ -1170,10 +1170,10 @@ _thunar_vfs_path_init (void) g_assert (n_home_components == n + 1); /* allocate the trash root path */ - _thunar_vfs_path_trash_root = g_malloc (sizeof (ThunarVfsPath) + sizeof (guint)); + _thunar_vfs_path_trash_root = g_malloc (sizeof (ThunarVfsPath) + sizeof (gsize)); _thunar_vfs_path_trash_root->ref_count = 1 | THUNAR_VFS_PATH_SCHEME_TRASH; _thunar_vfs_path_trash_root->parent = NULL; - *((guint *) thunar_vfs_path_get_name (_thunar_vfs_path_trash_root)) = THUNAR_VFS_PATH_ROOT; + *((gsize *) thunar_vfs_path_get_name (_thunar_vfs_path_trash_root)) = THUNAR_VFS_PATH_ROOT; /* cleanup */ g_strfreev (components); @@ -1252,7 +1252,7 @@ _thunar_vfs_path_new_relative (ThunarVfsPath *parent, /* determine the length of the path component in bytes */ for (s1 = s + 1; *s1 != '\0' && *s1 != G_DIR_SEPARATOR; ++s1) ; - n = (((s1 - s) + sizeof (guint)) / sizeof (guint)) * sizeof (guint) + n = (((s1 - s) + sizeof (gsize)) / sizeof (gsize)) * sizeof (gsize) + sizeof (ThunarVfsPath); /* allocate memory for the new path component */ @@ -1264,7 +1264,7 @@ _thunar_vfs_path_new_relative (ThunarVfsPath *parent, THUNAR_VFS_PATH_DEBUG_INSERT (path); /* zero out the last word to have the name zero-terminated */ - *(((guint *) (((gchar *) path) + n)) - 1) = 0; + *(((gsize *) (((gchar *) path) + n)) - 1) = 0; /* copy the path component name */ for (t = (gchar *) thunar_vfs_path_get_name (path); *s != '\0' && *s != G_DIR_SEPARATOR; ) @@ -1325,7 +1325,7 @@ _thunar_vfs_path_child (ThunarVfsPath *parent, /* determine the length of the name in bytes */ for (s = name + 1; *s != '\0'; ++s) ; - n = (((s - name) + sizeof (guint)) / sizeof (guint)) * sizeof (guint) + n = (((s - name) + sizeof (gsize)) / sizeof (gsize)) * sizeof (gsize) + sizeof (ThunarVfsPath); /* allocate memory for the new path component */ @@ -1337,7 +1337,7 @@ _thunar_vfs_path_child (ThunarVfsPath *parent, THUNAR_VFS_PATH_DEBUG_INSERT (path); /* zero out the last word to have the name zero-terminated */ - *(((guint *) (((gchar *) path) + n)) - 1) = 0; + *(((gsize *) (((gchar *) path) + n)) - 1) = 0; /* copy the path component name */ for (s = name, t = (gchar *) thunar_vfs_path_get_name (path); *s != '\0'; )