Initial hacky version of inspect source command

This commit is contained in:
2018-07-13 01:56:17 +01:00
parent 7cf43c59dd
commit eff9aa36f6
10 changed files with 309 additions and 635 deletions

30
inspect/file.go Normal file
View File

@@ -0,0 +1,30 @@
package inspect
// NewFile creates a new File.
func NewFile(filePath string) *File {
return &File{
FilePath: filePath,
ObjectMap: map[string]*Object{},
}
}
// File represents a source file and the lines and objects allocated by them.
type File struct {
FilePath string
ObjectMap map[string]*Object
ObjectCount int
ByteSize int64
MemSize int64
}
// Add adds a object to a File.
func (s *File) Add(obj *Object) {
_, ok := s.ObjectMap[obj.Address]
if !ok && obj.File != "" && obj.Line != 0 {
s.ObjectCount++
s.ByteSize = s.ByteSize + obj.ByteSize
s.MemSize = s.MemSize + obj.MemSize
s.ObjectMap[obj.Address] = obj
}
}