On Thu, 2009-05-14 at 18:48 +0200, Carlos Garnacho wrote:
Here's an updated version, basically it moves table data handling to libtracker-data (by introducing a TrackerDataUpdateMetadataContext object), and adds support for initial insertions into the DB, instead of doing 1 insertion and N updates.
I was just reviewing 169fcacef91396ebe77e50a82241d5742ce53d39, and then I saw this: + tracker_db_interface_execute_query (iface, &error, sql, NULL); + + if (error) { + g_warning ("%s", error->message); + g_error_free (error); + } +} <- end of function Either the variable "sql" is const, but that isn't the case, or it's leaked. Right? Looking at it it's leaked in both cases. In case of INSERT it's leaked as a g_strdup_printf, in case of UPDATE it's leaked because the parameter FALSE is passed to g_string_free. And given that an awful lot of queries are executed by this function, this is a leak that will grow to quite big proportions (the size of all the stored data multiplied by length of the "UPDATE bla bla" pieces of the string). I suggest we add a g_free (sql) before a release is made with this ;) Feel free to also rewrite attached patch and apply. -- Philip Van Hoof, freelance software developer home: me at pvanhoof dot be gnome: pvanhoof at gnome dot org http://pvanhoof.be/blog http://codeminded.be
Attachment:
leakfix.diff
Description: Text Data