[dconf-editor/gnome-3-18] dconf-editor: Don't crash when encountering open ranges
- From: Arnaud Bonatti <arnaudb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [dconf-editor/gnome-3-18] dconf-editor: Don't crash when encountering open ranges
- Date: Mon, 12 Oct 2015 17:59:03 +0000 (UTC)
commit 51c25f1c78c81c65d26029d632fe9b10c73e7dcb
Author: Jan Alexander Steffens (heftig) <jan steffens gmail com>
Date: Wed Apr 1 23:06:58 2015 +0200
dconf-editor: Don't crash when encountering open ranges
Ranges can have either min or max unset. Handle this case properly.
https://bugzilla.gnome.org/show_bug.cgi?id=731674
editor/dconf-view.vala | 17 ++++++++---------
editor/dconf-window.vala | 14 ++++++--------
2 files changed, 14 insertions(+), 17 deletions(-)
---
diff --git a/editor/dconf-view.vala b/editor/dconf-view.vala
index 11fb2a5..0446405 100644
--- a/editor/dconf-view.vala
+++ b/editor/dconf-view.vala
@@ -72,18 +72,17 @@ private class KeyValueRenderer: Gtk.CellRenderer
case "d":
spin_renderer.text = key.value.print(false);
var v = get_variant_as_double(key.value);
- double min = 0.0, max = 0.0;
+ Variant min = null, max = null;
if (key.has_schema && key.schema.range != null)
{
- min = get_variant_as_double(key.schema.range.min);
- max = get_variant_as_double(key.schema.range.max);
+ min = key.schema.range.min;
+ max = key.schema.range.max;
}
- else
- {
- min = get_variant_as_double(key.get_min());
- max = get_variant_as_double(key.get_max());
- }
- spin_renderer.adjustment = new Gtk.Adjustment(v, min, max, 1, 0, 0);
+ if (min == null)
+ min = key.get_min ();
+ if (max == null)
+ max = key.get_max ();
+ spin_renderer.adjustment = new Gtk.Adjustment (v, get_variant_as_double (min),
get_variant_as_double (max), 1, 0, 0);
spin_renderer.digits = 0;
if (key.type_string == "d")
{
diff --git a/editor/dconf-window.vala b/editor/dconf-window.vala
index 1e4eba4..6d1505c 100644
--- a/editor/dconf-window.vala
+++ b/editor/dconf-window.vala
@@ -115,30 +115,28 @@ class DConfWindow : ApplicationWindow
case "u":
case "x":
case "t":
- Variant min, max;
+ Variant min = null, max = null;
if (key.schema.range != null)
{
min = key.schema.range.min;
max = key.schema.range.max;
}
- else
- {
+ if (min == null)
min = key.get_min ();
+ if (max == null)
max = key.get_max ();
- }
return _("Integer [%s..%s]").printf (min.print (false), max.print (false));
case "d":
- Variant min, max;
+ Variant min = null, max = null;
if (key.schema.range != null)
{
min = key.schema.range.min;
max = key.schema.range.max;
}
- else
- {
+ if (min == null)
min = key.get_min ();
+ if (max == null)
max = key.get_max ();
- }
return _("Double [%s..%s]").printf (min.print (false), max.print (false));
case "b":
return _("Boolean");
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]