Fixes #813: Ensuring set count (.#) is written to the state

This commit is contained in:
Greg Osuri 2015-01-16 03:43:57 -08:00
parent f870eff5f9
commit 2769d7cf9c

View File

@ -294,14 +294,18 @@ func (w *MapFieldWriter) setSet(
k := strings.Join(addr, ".") k := strings.Join(addr, ".")
if value != nil { if value == nil {
for code, elem := range value.(*Set).m { w.result[k+".#"] = "0"
codeStr := strconv.FormatInt(int64(code), 10) return nil
if err := w.set(append(addrCopy, codeStr), elem); err != nil {
return err
}
}
w.result[k+".#"] = strconv.Itoa(value.(*Set).Len())
} }
for code, elem := range value.(*Set).m {
codeStr := strconv.FormatInt(int64(code), 10)
if err := w.set(append(addrCopy, codeStr), elem); err != nil {
return err
}
}
w.result[k+".#"] = strconv.Itoa(value.(*Set).Len())
return nil return nil
} }