The reduction in range limits does have an effect for color values,
which are expressed as hexadecimal values from 0x00000000 to
0xFFFFFFFF.  By limiting the range to INT_MAX, color values of
0x80000000 and up are in fact lost.

This reverts commit 6351fb08c2e302f8696b2022830e5317e7219c39.

Signed-off-by: Bryce Harrington <[email protected]>
---
 shared/config-parser.c     | 12 +-----------
 tests/config-parser-test.c | 31 -------------------------------
 2 files changed, 1 insertion(+), 42 deletions(-)

diff --git a/shared/config-parser.c b/shared/config-parser.c
index 4c67220..1e08759 100644
--- a/shared/config-parser.c
+++ b/shared/config-parser.c
@@ -186,7 +186,6 @@ weston_config_section_get_uint(struct weston_config_section 
*section,
                               const char *key,
                               uint32_t *value, uint32_t default_value)
 {
-       long int ret;
        struct weston_config_entry *entry;
        char *end;
 
@@ -198,22 +197,13 @@ weston_config_section_get_uint(struct 
weston_config_section *section,
        }
 
        errno = 0;
-       ret = strtol(entry->value, &end, 0);
+       *value = strtoul(entry->value, &end, 0);
        if (errno != 0 || end == entry->value || *end != '\0') {
                *value = default_value;
                errno = EINVAL;
                return -1;
        }
 
-       /* check range */
-       if (ret < 0 || ret > INT_MAX) {
-               *value = default_value;
-               errno = ERANGE;
-               return -1;
-       }
-
-       *value = ret;
-
        return 0;
 }
 
diff --git a/tests/config-parser-test.c b/tests/config-parser-test.c
index f88e89b..735da4e 100644
--- a/tests/config-parser-test.c
+++ b/tests/config-parser-test.c
@@ -117,7 +117,6 @@ static struct zuc_fixture config_test_t1 = {
        "# more comments\n"
        "number=5252\n"
        "zero=0\n"
-       "negative=-42\n"
        "flag=false\n"
        "\n"
        "[stuff]\n"
@@ -462,36 +461,6 @@ ZUC_TEST_F(config_test_t1, test019, data)
        ZUC_ASSERT_EQ(0, errno);
 }
 
-ZUC_TEST_F(config_test_t1, test020, data)
-{
-       int r;
-       int32_t n;
-       struct weston_config_section *section;
-       struct weston_config *config = data;
-
-       section = weston_config_get_section(config, "bar", NULL, NULL);
-       r = weston_config_section_get_int(section, "negative", &n, 600);
-
-       ZUC_ASSERT_EQ(0, r);
-       ZUC_ASSERT_EQ(-42, n);
-       ZUC_ASSERT_EQ(0, errno);
-}
-
-ZUC_TEST_F(config_test_t1, test021, data)
-{
-       int r;
-       uint32_t n;
-       struct weston_config_section *section;
-       struct weston_config *config = data;
-
-       section = weston_config_get_section(config, "bar", NULL, NULL);
-       r = weston_config_section_get_uint(section, "negative", &n, 600);
-
-       ZUC_ASSERT_EQ(-1, r);
-       ZUC_ASSERT_EQ(600, n);
-       ZUC_ASSERT_EQ(ERANGE, errno);
-}
-
 ZUC_TEST_F(config_test_t2, doesnt_parse, data)
 {
        struct weston_config *config = data;
-- 
1.9.1

_______________________________________________
wayland-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to