[tracker/tracker-0.6] Fixed compiler warning, added offset type funcs & reduced mem allocs
- From: Martyn James Russell <mr src gnome org>
- To: svn-commits-list gnome org
- Subject: [tracker/tracker-0.6] Fixed compiler warning, added offset type funcs & reduced mem allocs
- Date: Fri, 26 Jun 2009 14:07:17 +0000 (UTC)
commit 40ca8acf658f8bfce01d6ae3c97a3d97b1ed622e
Author: Martyn Russell <martyn imendio com>
Date: Fri Jun 26 14:56:09 2009 +0100
Fixed compiler warning, added offset type funcs & reduced mem allocs
Don't create "unknown" mime_type using g_strdup() since we are
returned a const normally from g_file_info_get_content_type() and we
only duplicate it later on anyway.
We were creating path_delimited to only free it too, so I removed
this.
Added _offset_to_string functions for goffset type from GIO.
src/libtracker-common/tracker-type-utils.c | 6 ++
src/libtracker-common/tracker-type-utils.h | 1 +
.../tracker-module-metadata-utils.c | 58 ++++++++++----------
src/tracker-indexer/tracker-module-metadata.c | 14 +++++
src/tracker-indexer/tracker-module-metadata.h | 3 +
5 files changed, 54 insertions(+), 28 deletions(-)
---
diff --git a/src/libtracker-common/tracker-type-utils.c b/src/libtracker-common/tracker-type-utils.c
index c3e4206..d21d5a1 100644
--- a/src/libtracker-common/tracker-type-utils.c
+++ b/src/libtracker-common/tracker-type-utils.c
@@ -677,6 +677,12 @@ tracker_guint64_to_string (guint64 i)
return g_strdup_printf ("%" G_GUINT64_FORMAT, i);
}
+gchar *
+tracker_goffset_to_string (goffset i)
+{
+ return g_strdup_printf ("%" G_GOFFSET_FORMAT, i);
+}
+
gboolean
tracker_string_to_uint (const gchar *s,
guint *value)
diff --git a/src/libtracker-common/tracker-type-utils.h b/src/libtracker-common/tracker-type-utils.h
index bc16606..925bf0f 100644
--- a/src/libtracker-common/tracker-type-utils.h
+++ b/src/libtracker-common/tracker-type-utils.h
@@ -43,6 +43,7 @@ gchar * tracker_gint32_to_string (gint32 i);
gchar * tracker_guint32_to_string (guint32 i);
gchar * tracker_gint64_to_string (gint64 i);
gchar * tracker_guint64_to_string (guint64 i);
+gchar * tracker_goffset_to_string (goffset i);
gboolean tracker_string_to_uint (const gchar *s,
guint *ret);
diff --git a/src/tracker-indexer/tracker-module-metadata-utils.c b/src/tracker-indexer/tracker-module-metadata-utils.c
index a6d52ca..0717306 100644
--- a/src/tracker-indexer/tracker-module-metadata-utils.c
+++ b/src/tracker-indexer/tracker-module-metadata-utils.c
@@ -849,8 +849,9 @@ tracker_module_metadata_utils_get_data (GFile *file)
{
TrackerModuleMetadata *metadata;
GFileInfo *info;
- gchar *path, *mime_type;
- gchar *dirname, *basename, *path_delimited;
+ gchar *path;
+ const gchar *mime_type;
+ gchar *dirname, *basename;
guint64 modified, accessed;
GError *error = NULL;
@@ -859,49 +860,50 @@ tracker_module_metadata_utils_get_data (GFile *file)
G_FILE_ATTRIBUTE_STANDARD_SIZE ","
G_FILE_ATTRIBUTE_TIME_ACCESS ","
G_FILE_ATTRIBUTE_TIME_MODIFIED,
- G_FILE_QUERY_INFO_NONE, NULL, &error);
+ G_FILE_QUERY_INFO_NONE,
+ NULL,
+ &error);
if (error) {
g_warning ("Unable to retrieve info from file (%s)", error->message);
return NULL;
}
- metadata = tracker_module_metadata_new ();
-
- mime_type = g_file_info_get_content_type (info);
- if (!mime_type) {
- /* Tracker convention... duplicated with tracker-file-utils.c */
- mime_type = g_strdup ("unknown");
- }
-
path = g_file_get_path (file);
dirname = g_path_get_dirname (path);
basename = g_filename_display_basename (path);
- path_delimited = g_filename_to_utf8 (path, -1, NULL, NULL, NULL);
-
- tracker_module_metadata_add_string (metadata, METADATA_FILE_NAME, basename);
- tracker_module_metadata_add_string (metadata, METADATA_FILE_PATH, dirname);
- tracker_module_metadata_add_string (metadata, METADATA_FILE_MIMETYPE, mime_type);
-
- g_free (path_delimited);
- g_free (basename);
- g_free (dirname);
-
- tracker_module_metadata_add_int64 (metadata,
- METADATA_FILE_SIZE,
- g_file_info_get_size (info));
+ mime_type = g_file_info_get_content_type (info);
modified = g_file_info_get_attribute_uint64 (info, G_FILE_ATTRIBUTE_TIME_MODIFIED);
- tracker_module_metadata_add_uint64 (metadata, METADATA_FILE_MODIFIED, modified);
-
accessed = g_file_info_get_attribute_uint64 (info, G_FILE_ATTRIBUTE_TIME_ACCESS);
- tracker_module_metadata_add_uint64 (metadata, METADATA_FILE_ACCESSED, accessed);
+ metadata = tracker_module_metadata_new ();
+
+ tracker_module_metadata_add_string (metadata,
+ METADATA_FILE_NAME,
+ basename);
+ tracker_module_metadata_add_string (metadata,
+ METADATA_FILE_PATH,
+ dirname);
+ tracker_module_metadata_add_string (metadata,
+ METADATA_FILE_MIMETYPE,
+ mime_type ? mime_type : "unknown");
+ tracker_module_metadata_add_offset (metadata,
+ METADATA_FILE_SIZE,
+ g_file_info_get_size (info));
+ tracker_module_metadata_add_uint64 (metadata,
+ METADATA_FILE_MODIFIED,
+ modified);
+ tracker_module_metadata_add_uint64 (metadata,
+ METADATA_FILE_ACCESSED,
+ accessed);
tracker_module_metadata_add_date (metadata, METADATA_FILE_ADDED, time (NULL));
metadata_utils_get_embedded (file, mime_type, metadata);
- g_free (mime_type);
+
+ g_free (basename);
+ g_free (dirname);
g_free (path);
return metadata;
diff --git a/src/tracker-indexer/tracker-module-metadata.c b/src/tracker-indexer/tracker-module-metadata.c
index b1d82ab..a279550 100644
--- a/src/tracker-indexer/tracker-module-metadata.c
+++ b/src/tracker-indexer/tracker-module-metadata.c
@@ -233,6 +233,20 @@ tracker_module_metadata_add_uint64 (TrackerModuleMetadata *metadata,
}
}
+void
+tracker_module_metadata_add_offset (TrackerModuleMetadata *metadata,
+ const gchar *field_name,
+ goffset value)
+{
+ gchar *str;
+
+ str = tracker_goffset_to_string (value);
+
+ if (!tracker_module_metadata_add_take_string (metadata, field_name, str)) {
+ g_free (str);
+ }
+}
+
/**
* tracker_module_metadata_add_double:
* @metadata: A #TrackerModuleMetadata
diff --git a/src/tracker-indexer/tracker-module-metadata.h b/src/tracker-indexer/tracker-module-metadata.h
index 2b483c1..114673b 100644
--- a/src/tracker-indexer/tracker-module-metadata.h
+++ b/src/tracker-indexer/tracker-module-metadata.h
@@ -68,6 +68,9 @@ void tracker_module_metadata_add_int64 (TrackerModuleMe
void tracker_module_metadata_add_uint64 (TrackerModuleMetadata *metadata,
const gchar *field_name,
guint64 value);
+void tracker_module_metadata_add_offset (TrackerModuleMetadata *metadata,
+ const gchar *field_name,
+ goffset value);
void tracker_module_metadata_add_double (TrackerModuleMetadata *metadata,
const gchar *field_name,
gdouble value);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]