summaryrefslogtreecommitdiff
path: root/spew/dump.go
diff options
context:
space:
mode:
Diffstat (limited to 'spew/dump.go')
-rw-r--r--spew/dump.go16
1 files changed, 9 insertions, 7 deletions
diff --git a/spew/dump.go b/spew/dump.go
index 361e90e..4697263 100644
--- a/spew/dump.go
+++ b/spew/dump.go
@@ -66,11 +66,11 @@ func (d *dumpState) dumpPtr(v reflect.Value) {
indirects := 0
ve := v
for ve.Kind() == reflect.Ptr {
- indirects++
if ve.IsNil() {
nilFound = true
break
}
+ indirects++
addr := ve.Pointer()
pointerChain = append(pointerChain, addr)
if pd, ok := d.pointers[addr]; ok && pd < d.depth {
@@ -97,14 +97,16 @@ func (d *dumpState) dumpPtr(v reflect.Value) {
d.w.Write(closeParenBytes)
// Display pointer information.
- d.w.Write(openParenBytes)
- for i, addr := range pointerChain {
- if i > 0 {
- d.w.Write(pointerChainBytes)
+ if len(pointerChain) > 0 {
+ d.w.Write(openParenBytes)
+ for i, addr := range pointerChain {
+ if i > 0 {
+ d.w.Write(pointerChainBytes)
+ }
+ printHexPtr(d.w, addr)
}
- printHexPtr(d.w, addr)
+ d.w.Write(closeParenBytes)
}
- d.w.Write(closeParenBytes)
// Display dereferenced value.
d.w.Write(openParenBytes)