From 673441aba0aa393ad50b6af9d82dd8822054080b Mon Sep 17 00:00:00 2001 From: Angus Gratton Date: Fri, 1 Mar 2019 15:38:23 +1100 Subject: [PATCH] confgen: Fix bug with JSON metadata conditional range generation When generating JSON metadata for ranges where there are conditional ranges (ie different allowed range depending on another config setting), the JSON metadata would always have the last named range as the expression was not evaluated properly. Thanks to ulfalizer on GitHub for pointing this out. Closes https://github.com/espressif/esp-idf/issues/2195 --- tools/kconfig_new/confgen.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tools/kconfig_new/confgen.py b/tools/kconfig_new/confgen.py index 499e64eaa6..6f78bce78a 100755 --- a/tools/kconfig_new/confgen.py +++ b/tools/kconfig_new/confgen.py @@ -221,9 +221,9 @@ def write_json_menus(config, filename): greatest_range = None if len(sym.ranges) > 0: # Note: Evaluating the condition using kconfiglib's expr_value - # should have one result different from value 0 ("n"). + # should have one condition which is true for min_range, max_range, cond_expr in sym.ranges: - if kconfiglib.expr_value(cond_expr) != "n": + if kconfiglib.expr_value(cond_expr): greatest_range = [min_range, max_range] new_json["range"] = greatest_range @@ -232,9 +232,9 @@ def write_json_menus(config, filename): greatest_range = None if len(sym.ranges) > 0: # Note: Evaluating the condition using kconfiglib's expr_value - # should have one result different from value 0 ("n"). + # should have one condition which is true for min_range, max_range, cond_expr in sym.ranges: - if kconfiglib.expr_value(cond_expr) != "n": + if kconfiglib.expr_value(cond_expr): greatest_range = [int(min_range.str_value), int(max_range.str_value)] new_json = {