Skip to content

Commit d5ae4e7

Browse files
[expr] Evaluate all syscfg as expressions
Except for defunc settings since those are not used anyway.
1 parent e553f16 commit d5ae4e7

File tree

3 files changed

+7
-14
lines changed

3 files changed

+7
-14
lines changed

newt/syscfg/marshal.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ var cfgSettingNameTypeMap = map[string]CfgSettingType{
2929
"raw": CFG_SETTING_TYPE_RAW,
3030
"task_priority": CFG_SETTING_TYPE_TASK_PRIO,
3131
"flash_owner": CFG_SETTING_TYPE_FLASH_OWNER,
32-
"expr": CFG_SETTING_TYPE_EXPRESSION,
3332
}
3433

3534
var cfgSettingNameStateMap = map[string]CfgSettingState{

newt/syscfg/syscfg.go

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,6 @@ const (
5454
CFG_SETTING_TYPE_TASK_PRIO
5555
CFG_SETTING_TYPE_INTERRUPT_PRIO
5656
CFG_SETTING_TYPE_FLASH_OWNER
57-
CFG_SETTING_TYPE_EXPRESSION
5857
)
5958

6059
type CfgSettingState int
@@ -224,20 +223,20 @@ func ResolveValueRefName(val string) string {
224223
}
225224
}
226225

227-
func (cfg *Cfg) ExpandRef(val string) (string, string, CfgSettingType, error) {
226+
func (cfg *Cfg) ExpandRef(val string) (string, string, error) {
228227
refName := ResolveValueRefName(val)
229228
if refName == "" {
230229
// Not a reference.
231-
return "", val, CFG_SETTING_TYPE_RAW, nil
230+
return "", val, nil
232231
}
233232

234233
entry, ok := cfg.Settings[refName]
235234
if !ok {
236-
return "", "", CFG_SETTING_TYPE_RAW, util.FmtNewtError(
235+
return "", "", util.FmtNewtError(
237236
"setting value \"%s\" references undefined setting", val)
238237
}
239238

240-
return entry.Name, entry.Value, entry.SettingType, nil
239+
return entry.Name, entry.Value, nil
241240

242241
}
243242

@@ -260,7 +259,7 @@ func (cfg *Cfg) AddInjectedSettings() {
260259

261260
func (cfg *Cfg) ResolveValueRefs() {
262261
for k, entry := range cfg.Settings {
263-
refName, val, stype, err := cfg.ExpandRef(strings.TrimSpace(entry.Value))
262+
refName, val, err := cfg.ExpandRef(strings.TrimSpace(entry.Value))
264263
if err != nil {
265264
// Referenced setting doesn't exist. Set unresolved setting value
266265
// to 0, this way restrictions can be evaluated and won't create
@@ -271,19 +270,14 @@ func (cfg *Cfg) ResolveValueRefs() {
271270
} else if refName != "" {
272271
entry.ValueRefName = refName
273272
entry.Value = val
274-
// If referenced setting is an expression, make this one also
275-
// an expression so it can be calculated properly
276-
if stype == CFG_SETTING_TYPE_EXPRESSION {
277-
entry.SettingType = stype
278-
}
279273
cfg.Settings[k] = entry
280274
}
281275
}
282276
}
283277

284278
func (cfg *Cfg) EvaluateExpressions() {
285279
for k, entry := range cfg.Settings {
286-
if entry.SettingType != CFG_SETTING_TYPE_EXPRESSION {
280+
if entry.State == CFG_SETTING_STATE_DEFUNCT {
287281
continue
288282
}
289283

newt/val/valsetting.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ func (vs *ValSetting) IntVal() (int, error) {
5555

5656
// Constructs a setting from a YAML string.
5757
func ResolveValSetting(s string, cfg *syscfg.Cfg) (ValSetting, error) {
58-
refName, val, _, err := cfg.ExpandRef(s)
58+
refName, val, err := cfg.ExpandRef(s)
5959
if err != nil {
6060
return ValSetting{},
6161
util.FmtNewtError("value \"%s\" references undefined setting", s)

0 commit comments

Comments
 (0)