[tracker] SPARQL: Do not leak variables (reference cycle)
- From: Jürg Billeter <juergbi src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [tracker] SPARQL: Do not leak variables (reference cycle)
- Date: Tue, 27 Oct 2009 13:56:58 +0000 (UTC)
commit 01be5f7422cdfa82af10b4f4400e4ac27a6a993d
Author: Jürg Billeter <j bitron ch>
Date: Tue Oct 27 14:55:36 2009 +0100
SPARQL: Do not leak variables (reference cycle)
src/libtracker-data/tracker-sparql-query.vala | 12 +++++++-----
1 files changed, 7 insertions(+), 5 deletions(-)
---
diff --git a/src/libtracker-data/tracker-sparql-query.vala b/src/libtracker-data/tracker-sparql-query.vala
index 65e5d7a..bbe0f98 100644
--- a/src/libtracker-data/tracker-sparql-query.vala
+++ b/src/libtracker-data/tracker-sparql-query.vala
@@ -58,7 +58,7 @@ public class Tracker.SparqlQuery : Object {
// Represents a mapping of a SPARQL variable to a SQL table and column
class VariableBinding : DataBinding {
- public Variable variable;
+ public weak Variable variable;
// Specified whether SQL column may contain NULL entries
public bool maybe_null;
public bool in_simple_optional;
@@ -379,8 +379,8 @@ public class Tracker.SparqlQuery : Object {
return "'%s'".printf (string.joinv ("''", literal.split ("'")));
}
- Variable get_variable (string name) {
- var result = var_map.lookup (name);
+ unowned Variable get_variable (string name) {
+ unowned Variable result = var_map.lookup (name);
if (result == null) {
// use lowercase as SQLite is never case sensitive (not conforming to SQL)
string sql_identifier = "%s_u".printf (name).down ();
@@ -392,8 +392,10 @@ public class Tracker.SparqlQuery : Object {
}
used_sql_identifiers.insert (sql_identifier, true);
- result = new Variable (name, sql_identifier);
- var_map.insert (name, result);
+ var variable = new Variable (name, sql_identifier);
+ var_map.insert (name, variable);
+
+ result = variable;
}
return result;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]