Merge PR #2330: iterate over storesParams

This commit is contained in:
Joon 2018-09-14 10:53:21 +09:00 committed by Rigel
parent d195cc15ed
commit f19fbe3fb8
1 changed files with 14 additions and 14 deletions

View File

@ -119,28 +119,28 @@ func (rs *rootMultiStore) LoadVersion(ver int64) error {
return err
}
// Convert StoreInfos slice to map
infos := make(map[StoreKey]storeInfo)
for _, storeInfo := range cInfo.StoreInfos {
infos[rs.nameToKey(storeInfo.Name)] = storeInfo
}
// Load each Store
var newStores = make(map[StoreKey]CommitStore)
for _, storeInfo := range cInfo.StoreInfos {
key, commitID := rs.nameToKey(storeInfo.Name), storeInfo.Core.CommitID
storeParams := rs.storesParams[key]
store, err := rs.loadCommitStoreFromParams(key, commitID, storeParams)
for key, storeParams := range rs.storesParams {
var id CommitID
info, ok := infos[key]
if ok {
id = info.Core.CommitID
}
store, err := rs.loadCommitStoreFromParams(key, id, storeParams)
if err != nil {
return fmt.Errorf("failed to load rootMultiStore: %v", err)
}
newStores[key] = store
}
// TODO: detecting transient is quite adhoc
// If any nontransient CommitStoreLoaders were not used, return error.
for key, param := range rs.storesParams {
if param.typ != sdk.StoreTypeTransient {
if _, ok := newStores[key]; !ok {
return fmt.Errorf("unused CommitStoreLoader: %v", key)
}
}
}
// Success.
rs.lastCommitID = cInfo.CommitID()
rs.stores = newStores