diff options
author | Jussi Kukkonen <jussi.kukkonen@intel.com> | 2013-07-05 14:45:32 +0300 |
---|---|---|
committer | Jussi Kukkonen <jussi.kukkonen@intel.com> | 2013-07-05 15:22:30 +0300 |
commit | 1ee0ba068a0619384cce2f2164d6815f00b185bc (patch) | |
tree | 631df8cef9463e1470bc6a0342dca6d6baedb7d7 | |
parent | e33d1e32628037bb65352fda73a6a1c15b68d660 (diff) | |
download | dleyna-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.py | 8 |
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): |