mirror of https://github.com/golang/go.git
debug/dwarf: add Entry.AttrField method to get *Field by Attr
Currently, Entry has a Val method that looks up an attribute and returns its value. Now that Field has more fields than the attribute and its value, it's useful to return the whole Field and let the caller retrieve the parts it needs. This change adds an AttrField method to Entry that does the same lookup at Val, but returns the whole *Field rather than just the value. Change-Id: Ic629744c14c0e09d7528fa1026b0e1857789948c Reviewed-on: https://go-review.googlesource.com/8503 Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
parent
d7d1337368
commit
947b6a7ec8
|
|
@ -335,9 +335,18 @@ func (i Class) GoString() string {
|
|||
// v, ok := e.Val(AttrSibling).(int64)
|
||||
//
|
||||
func (e *Entry) Val(a Attr) interface{} {
|
||||
for _, f := range e.Field {
|
||||
if f := e.AttrField(a); f != nil {
|
||||
return f.Val
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// AttrField returns the Field associated with attribute Attr in
|
||||
// Entry, or nil if there is no such attribute.
|
||||
func (e *Entry) AttrField(a Attr) *Field {
|
||||
for i, f := range e.Field {
|
||||
if f.Attr == a {
|
||||
return f.Val
|
||||
return &e.Field[i]
|
||||
}
|
||||
}
|
||||
return nil
|
||||
|
|
|
|||
Loading…
Reference in New Issue