Updating branch refs/heads/peter/libsqueeze to cb2820bac787558ef5c81c18f1c1a7e14a2f58ab (commit) from c377a7b361708fc4e6ad4489dba4dc76e9a90025 (commit)
commit cb2820bac787558ef5c81c18f1c1a7e14a2f58ab Author: Peter de Ridder <pe...@xfce.org> Date: Sun Mar 11 18:18:03 2012 +0100 Solved some invalid memory accesses libsqueeze/archive.c | 2 +- libsqueeze/datetime.c | 13 ++++++++----- libsqueeze/datetime.h | 4 ++-- libsqueeze/libsqueeze.c | 3 +++ libsqueeze/support-app.c | 5 +++++ libsqueeze/support-info.c | 9 +++++++-- libsqueeze/support-info.h | 4 ++++ libsqueeze/support-reader.c | 2 +- 8 files changed, 31 insertions(+), 11 deletions(-) diff --git a/libsqueeze/archive.c b/libsqueeze/archive.c index 3e343d3..fb2c876 100644 --- a/libsqueeze/archive.c +++ b/libsqueeze/archive.c @@ -507,7 +507,7 @@ lsq_archive_operate ( case LSQ_COMMAND_TYPE_REFRESH: lsq_archive_set_refresh_app( archive, app ); app = archive->priv->refresh_app; - if ( NULL != app->refresh_cmd_queue ) + if ( NULL != app && NULL != app->refresh_cmd_queue ) { ctx = lsq_command_queue_execute( app->refresh_cmd_queue, archive, NULL, NULL, app->file->parser, error ); } diff --git a/libsqueeze/datetime.c b/libsqueeze/datetime.c index c26403d..4c6336a 100644 --- a/libsqueeze/datetime.c +++ b/libsqueeze/datetime.c @@ -118,7 +118,7 @@ value_datetime_to_string ( } } -GType +static GType lsq_datetime_get_type ( void ) { static GType type = G_TYPE_INVALID; @@ -167,13 +167,16 @@ lsq_datetime_get_type ( void ) return type; } +GType +lsq_datetime_get_type_const ( void ) +{ + return lsq_datetime_get_type(); +} + void lsq_datetime_register_type ( void ) { - /* Force lsq_datetime_get_type to get called, and not optimized by G_GNUC_CONST */ - volatile GType type; - type = lsq_datetime_get_type(); - type; + lsq_datetime_get_type(); } LSQDateTime diff --git a/libsqueeze/datetime.h b/libsqueeze/datetime.h index 05e1000..8f3495a 100644 --- a/libsqueeze/datetime.h +++ b/libsqueeze/datetime.h @@ -19,7 +19,7 @@ G_BEGIN_DECLS -#define LSQ_TYPE_DATETIME lsq_datetime_get_type() +#define LSQ_TYPE_DATETIME lsq_datetime_get_type_const() #define LSQ_DATETIME(v) ((LSQDateTime)(v)) #define LSQ_DATETIME_NULL (LSQ_DATETIME(0)) @@ -29,7 +29,7 @@ G_BEGIN_DECLS typedef gint64 LSQDateTime; GType -lsq_datetime_get_type ( void ) G_GNUC_CONST; +lsq_datetime_get_type_const ( void ) G_GNUC_CONST; void lsq_datetime_register_type ( void ); diff --git a/libsqueeze/libsqueeze.c b/libsqueeze/libsqueeze.c index 1c8316b..65a40b7 100644 --- a/libsqueeze/libsqueeze.c +++ b/libsqueeze/libsqueeze.c @@ -28,6 +28,7 @@ #include "internals.h" #include "support-reader.h" #include "support-file.h" +#include "support-info.h" #include "archive.h" #include "libsqueeze.h" @@ -93,6 +94,8 @@ lsq_init ( void ) lsq_support_file_table = g_hash_table_new( g_str_hash, g_str_equal ); + lsq_init_support_info(); + #ifndef NO_XDG_DATA_DIRS data_squeeze = g_build_filename( user_dir, "squeeze", NULL ); lsq_read_squeeze_dir( data_squeeze ); diff --git a/libsqueeze/support-app.c b/libsqueeze/support-app.c index d40e082..f29b44a 100644 --- a/libsqueeze/support-app.c +++ b/libsqueeze/support-app.c @@ -69,6 +69,8 @@ lsq_support_app_new ( LSQSupportFile *file ) const gchar * lsq_support_app_get_id ( const LSQSupportApp *app ) { + g_return_val_if_fail( LSQ_IS_SUPPORT_APP( app ), NULL ); + return app->id; } @@ -78,6 +80,9 @@ lsq_support_app_compare_id ( const gchar *id ) { + g_return_val_if_fail( LSQ_IS_SUPPORT_APP( app ), -1 ); + g_return_val_if_fail( NULL != id, 1 ); + return strcmp( app->id, id ); } diff --git a/libsqueeze/support-info.c b/libsqueeze/support-info.c index 50fc63c..3e3cf33 100644 --- a/libsqueeze/support-info.c +++ b/libsqueeze/support-info.c @@ -48,12 +48,17 @@ struct _LSQSupportInfoClass G_DEFINE_TYPE ( LSQSupportInfo, lsq_support_info, G_TYPE_OBJECT ); -GHashTable *lsq_support_info_table; +GHashTable *lsq_support_info_table = NULL; + +void +lsq_init_support_info ( void ) +{ + lsq_support_info_table = g_hash_table_new( g_str_hash, g_str_equal ); +} static void lsq_support_info_class_init ( LSQSupportInfoClass *klass ) { - lsq_support_info_table = g_hash_table_new( g_str_hash, g_str_equal ); } static void diff --git a/libsqueeze/support-info.h b/libsqueeze/support-info.h index ac8a25a..7db702f 100644 --- a/libsqueeze/support-info.h +++ b/libsqueeze/support-info.h @@ -24,6 +24,10 @@ G_BEGIN_DECLS typedef struct _LSQSupportInfoClass LSQSupportInfoClass; +void +lsq_init_support_info ( void ); + + LSQSupportInfo * lsq_support_info_new ( const gchar *contentype ); diff --git a/libsqueeze/support-reader.c b/libsqueeze/support-reader.c index 13adf99..68fc502 100644 --- a/libsqueeze/support-reader.c +++ b/libsqueeze/support-reader.c @@ -517,7 +517,7 @@ lsq_support_reader_parse_file ( } xfce_rc_close( rc ); - g_strfreev( mime_type ); + g_strfreev( mime_types ); return support_file; } _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits