diff options
author | gVisor bot <gvisor-bot@google.com> | 2021-01-11 21:27:53 +0000 |
---|---|---|
committer | gVisor bot <gvisor-bot@google.com> | 2021-01-11 21:27:53 +0000 |
commit | e524c21569616484e3209be952dd90636209419e (patch) | |
tree | d425976e5c7d7499187b93feb31d97fbd11408bf /pkg/state | |
parent | 3ff3110fcdd696053e8cafc807f2409fe1269cce (diff) | |
parent | 4c4de66443174f2ed7f4fa533a1d09c709be9427 (diff) |
Merge release-20201216.0-82-g4c4de6644 (automated)
Diffstat (limited to 'pkg/state')
-rw-r--r-- | pkg/state/complete_list.go | 28 | ||||
-rw-r--r-- | pkg/state/deferred_list.go | 28 |
2 files changed, 56 insertions, 0 deletions
diff --git a/pkg/state/complete_list.go b/pkg/state/complete_list.go index decbad77b..4d340a1af 100644 --- a/pkg/state/complete_list.go +++ b/pkg/state/complete_list.go @@ -38,16 +38,22 @@ func (l *completeList) Reset() { } // Empty returns true iff the list is empty. +// +//go:nosplit func (l *completeList) Empty() bool { return l.head == nil } // Front returns the first element of list l or nil. +// +//go:nosplit func (l *completeList) Front() *objectDecodeState { return l.head } // Back returns the last element of list l or nil. +// +//go:nosplit func (l *completeList) Back() *objectDecodeState { return l.tail } @@ -55,6 +61,8 @@ func (l *completeList) Back() *objectDecodeState { // Len returns the number of elements in the list. // // NOTE: This is an O(n) operation. +// +//go:nosplit func (l *completeList) Len() (count int) { for e := l.Front(); e != nil; e = (completeElementMapper{}.linkerFor(e)).Next() { count++ @@ -63,6 +71,8 @@ func (l *completeList) Len() (count int) { } // PushFront inserts the element e at the front of list l. +// +//go:nosplit func (l *completeList) PushFront(e *objectDecodeState) { linker := completeElementMapper{}.linkerFor(e) linker.SetNext(l.head) @@ -77,6 +87,8 @@ func (l *completeList) PushFront(e *objectDecodeState) { } // PushBack inserts the element e at the back of list l. +// +//go:nosplit func (l *completeList) PushBack(e *objectDecodeState) { linker := completeElementMapper{}.linkerFor(e) linker.SetNext(nil) @@ -91,6 +103,8 @@ func (l *completeList) PushBack(e *objectDecodeState) { } // PushBackList inserts list m at the end of list l, emptying m. +// +//go:nosplit func (l *completeList) PushBackList(m *completeList) { if l.head == nil { l.head = m.head @@ -106,6 +120,8 @@ func (l *completeList) PushBackList(m *completeList) { } // InsertAfter inserts e after b. +// +//go:nosplit func (l *completeList) InsertAfter(b, e *objectDecodeState) { bLinker := completeElementMapper{}.linkerFor(b) eLinker := completeElementMapper{}.linkerFor(e) @@ -124,6 +140,8 @@ func (l *completeList) InsertAfter(b, e *objectDecodeState) { } // InsertBefore inserts e before a. +// +//go:nosplit func (l *completeList) InsertBefore(a, e *objectDecodeState) { aLinker := completeElementMapper{}.linkerFor(a) eLinker := completeElementMapper{}.linkerFor(e) @@ -141,6 +159,8 @@ func (l *completeList) InsertBefore(a, e *objectDecodeState) { } // Remove removes e from l. +// +//go:nosplit func (l *completeList) Remove(e *objectDecodeState) { linker := completeElementMapper{}.linkerFor(e) prev := linker.Prev() @@ -173,21 +193,29 @@ type completeEntry struct { } // Next returns the entry that follows e in the list. +// +//go:nosplit func (e *completeEntry) Next() *objectDecodeState { return e.next } // Prev returns the entry that precedes e in the list. +// +//go:nosplit func (e *completeEntry) Prev() *objectDecodeState { return e.prev } // SetNext assigns 'entry' as the entry that follows e in the list. +// +//go:nosplit func (e *completeEntry) SetNext(elem *objectDecodeState) { e.next = elem } // SetPrev assigns 'entry' as the entry that precedes e in the list. +// +//go:nosplit func (e *completeEntry) SetPrev(elem *objectDecodeState) { e.prev = elem } diff --git a/pkg/state/deferred_list.go b/pkg/state/deferred_list.go index 5aed02c95..2753ce4a2 100644 --- a/pkg/state/deferred_list.go +++ b/pkg/state/deferred_list.go @@ -23,16 +23,22 @@ func (l *deferredList) Reset() { } // Empty returns true iff the list is empty. +// +//go:nosplit func (l *deferredList) Empty() bool { return l.head == nil } // Front returns the first element of list l or nil. +// +//go:nosplit func (l *deferredList) Front() *objectEncodeState { return l.head } // Back returns the last element of list l or nil. +// +//go:nosplit func (l *deferredList) Back() *objectEncodeState { return l.tail } @@ -40,6 +46,8 @@ func (l *deferredList) Back() *objectEncodeState { // Len returns the number of elements in the list. // // NOTE: This is an O(n) operation. +// +//go:nosplit func (l *deferredList) Len() (count int) { for e := l.Front(); e != nil; e = (deferredMapper{}.linkerFor(e)).Next() { count++ @@ -48,6 +56,8 @@ func (l *deferredList) Len() (count int) { } // PushFront inserts the element e at the front of list l. +// +//go:nosplit func (l *deferredList) PushFront(e *objectEncodeState) { linker := deferredMapper{}.linkerFor(e) linker.SetNext(l.head) @@ -62,6 +72,8 @@ func (l *deferredList) PushFront(e *objectEncodeState) { } // PushBack inserts the element e at the back of list l. +// +//go:nosplit func (l *deferredList) PushBack(e *objectEncodeState) { linker := deferredMapper{}.linkerFor(e) linker.SetNext(nil) @@ -76,6 +88,8 @@ func (l *deferredList) PushBack(e *objectEncodeState) { } // PushBackList inserts list m at the end of list l, emptying m. +// +//go:nosplit func (l *deferredList) PushBackList(m *deferredList) { if l.head == nil { l.head = m.head @@ -91,6 +105,8 @@ func (l *deferredList) PushBackList(m *deferredList) { } // InsertAfter inserts e after b. +// +//go:nosplit func (l *deferredList) InsertAfter(b, e *objectEncodeState) { bLinker := deferredMapper{}.linkerFor(b) eLinker := deferredMapper{}.linkerFor(e) @@ -109,6 +125,8 @@ func (l *deferredList) InsertAfter(b, e *objectEncodeState) { } // InsertBefore inserts e before a. +// +//go:nosplit func (l *deferredList) InsertBefore(a, e *objectEncodeState) { aLinker := deferredMapper{}.linkerFor(a) eLinker := deferredMapper{}.linkerFor(e) @@ -126,6 +144,8 @@ func (l *deferredList) InsertBefore(a, e *objectEncodeState) { } // Remove removes e from l. +// +//go:nosplit func (l *deferredList) Remove(e *objectEncodeState) { linker := deferredMapper{}.linkerFor(e) prev := linker.Prev() @@ -158,21 +178,29 @@ type deferredEntry struct { } // Next returns the entry that follows e in the list. +// +//go:nosplit func (e *deferredEntry) Next() *objectEncodeState { return e.next } // Prev returns the entry that precedes e in the list. +// +//go:nosplit func (e *deferredEntry) Prev() *objectEncodeState { return e.prev } // SetNext assigns 'entry' as the entry that follows e in the list. +// +//go:nosplit func (e *deferredEntry) SetNext(elem *objectEncodeState) { e.next = elem } // SetPrev assigns 'entry' as the entry that precedes e in the list. +// +//go:nosplit func (e *deferredEntry) SetPrev(elem *objectEncodeState) { e.prev = elem } |