"sync/atomic"
"unsafe"
- "git.fd.io/govpp.git/adapter"
+ "go.fd.io/govpp/adapter"
)
type statSegmentV2 struct {
return ss.adjust(dirVector(&header.dirVector))
}
-func (ss *statSegmentV2) GetStatDirOnIndex(v dirVector, index uint32) (dirSegment, dirName, dirType) {
+func (ss *statSegmentV2) GetStatDirOnIndex(v dirVector, index uint32) (dirSegment, dirName, adapter.StatType) {
statSegDir := dirSegment(uintptr(v) + uintptr(index)*unsafe.Sizeof(statSegDirectoryEntryV2{}))
dir := (*statSegDirectoryEntryV2)(statSegDir)
var name []byte
break
}
}
- return statSegDir, name, dir.directoryType
+ return statSegDir, name, getStatType(dir.directoryType, ss.getErrorVector() != nil)
}
func (ss *statSegmentV2) GetEpoch() (int64, bool) {
dirEntry := (*statSegDirectoryEntryV2)(segment)
typ := getStatType(dirEntry.directoryType, ss.getErrorVector() != nil)
// skip zero pointer value
- if typ != adapter.ScalarIndex && typ != adapter.Empty && dirEntry.unionData == 0 {
+ if typ != adapter.ScalarIndex && typ != adapter.Empty && typ != adapter.ErrorIndex && dirEntry.unionData == 0 {
debugf("data pointer not defined for %s", dirEntry.name)
return nil
}