-func nameMatches(name string, patterns []string) bool {
- if len(patterns) == 0 {
- return true
- }
- for _, pattern := range patterns {
- matched, err := regexp.MatchString(pattern, name)
- if err == nil && matched {
- return true
+func (c *StatsClient) dumpEntries(indexes []uint32) (entries []adapter.StatEntry, err error) {
+ dirVector := c.getStatDirVector()
+ dirLen := uint32(vectorLen(dirVector))
+
+ debugf("dumping entres for %d indexes", len(indexes))
+
+ entries = make([]adapter.StatEntry, 0, len(indexes))
+ for _, index := range indexes {
+ if index >= dirLen {
+ return nil, fmt.Errorf("stat entry index %d out of dir vector length (%d)", index, dirLen)
+ }
+
+ dirEntry := c.getStatDirIndex(dirVector, index)
+
+ var name []byte
+ for n := 0; n < len(dirEntry.name); n++ {
+ if dirEntry.name[n] == 0 {
+ name = dirEntry.name[:n]
+ break
+ }