summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJussi Kukkonen <jussi.kukkonen@intel.com>2013-07-05 14:45:32 +0300
committerJussi Kukkonen <jussi.kukkonen@intel.com>2013-07-05 15:22:30 +0300
commit1ee0ba068a0619384cce2f2164d6815f00b185bc (patch)
tree631df8cef9463e1470bc6a0342dca6d6baedb7d7
parente33d1e32628037bb65352fda73a6a1c15b68d660 (diff)
downloaddleyna-control-1ee0ba068a0619384cce2f2164d6815f00b185bc.tar.gz
[GenericModel] Set path to "0" if iterator is not set
It's not clear why get_path() is called with a tree_iter that is not yet defined -- in other words there may be some application logic bug hidden here -- but this should make the call safe: Return the "0" path when iterator is not initialized (tree_iter.user_data is null or 0, depending on gobject-introspection version). Fixes #38, I believe. I cannot reproduce the problem as is but I can manually create problematic tree_iters: those are now fine with the new code. Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
-rw-r--r--src/msd/msd_generic_model.py8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/msd/msd_generic_model.py b/src/msd/msd_generic_model.py
index c9181a9..6551ab9 100644
--- a/src/msd/msd_generic_model.py
+++ b/src/msd/msd_generic_model.py
@@ -130,8 +130,10 @@ class GenericModel(GObject.GObject, Gtk.TreeModel):
# https://bugzilla.gnome.org/show_bug.cgi?id=698366
@staticmethod
def __get_row_index (tree_iter):
- if (tree_iter.user_data == None):
- return None
+ # Handle the error case of user_data being not set
+ # (0 or None depending on gobject-introspection version)
+ if (tree_iter.user_data <= 0):
+ return 0
return tree_iter.user_data - 1
@staticmethod
@@ -294,8 +296,6 @@ class GenericModel(GObject.GObject, Gtk.TreeModel):
return (False, None)
def do_get_path(self, tree_iter):
- if tree_iter.user_data is None:
- return Gtk.TreePath((None,))
return Gtk.TreePath((self.__get_row_index(tree_iter),))
def do_get_value(self, tree_iter, col):