recursiveCall will increment the recursion depth and return an error if it is exceeded. If a nil error is returned, done must be called to decrement the counter.
()
| 270 | // recursiveCall will increment the recursion depth and return an error if it is exceeded. |
| 271 | // If a nil error is returned, done must be called to decrement the counter. |
| 272 | func (m *Reader) recursiveCall() (done func(), err error) { |
| 273 | if m.recursionDepth >= m.GetMaxRecursionDepth() { |
| 274 | return func() {}, ErrRecursion |
| 275 | } |
| 276 | m.recursionDepth++ |
| 277 | return func() { |
| 278 | m.recursionDepth-- |
| 279 | }, nil |
| 280 | } |
| 281 | |
| 282 | // ReadFull implements `io.ReadFull` |
| 283 | func (m *Reader) ReadFull(p []byte) (int, error) { |