(expectedKind Kind)
| 411 | } |
| 412 | |
| 413 | func (d *Decoder) decodeCtrlDataAndFollow(expectedKind Kind) (uint, uint, error) { |
| 414 | kindNum, size, dataOffset, nextOffset, err := d.resolveCtrlData(d.offset) |
| 415 | if err != nil { |
| 416 | return 0, 0, err // Don't wrap here, let caller wrap |
| 417 | } |
| 418 | if nextOffset != 0 { |
| 419 | d.setNextOffset(nextOffset) |
| 420 | } |
| 421 | if kindNum != expectedKind { |
| 422 | return 0, 0, unexpectedKindErr(expectedKind, kindNum) |
| 423 | } |
| 424 | return size, dataOffset, nil |
| 425 | } |
| 426 | |
| 427 | // resolveCtrlData resolves at most one pointer starting at offset and returns |
| 428 | // the control data for the non-pointer value. Unlike decodeCtrlData, which |
no test coverage detected