diff options
| author | 2025-03-12 20:33:35 +0000 | |
|---|---|---|
| committer | 2025-03-12 20:33:35 +0000 | |
| commit | f30bb549aae20281e169d0e7eaf7d70730955f02 (patch) | |
| tree | bfef2396b10ca2af4a96bcbc097f05a191be6bbb /vendor/codeberg.org/gruf/go-structr/index.go | |
| parent | [docs] Update swagger docs command (#3897) (diff) | |
| download | gotosocial-f30bb549aae20281e169d0e7eaf7d70730955f02.tar.xz | |
update go-structr to v0.9.0 with new Timeline{} cache type (#3903)
Diffstat (limited to 'vendor/codeberg.org/gruf/go-structr/index.go')
| -rw-r--r-- | vendor/codeberg.org/gruf/go-structr/index.go | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/vendor/codeberg.org/gruf/go-structr/index.go b/vendor/codeberg.org/gruf/go-structr/index.go index 558832da9..eed2e4eea 100644 --- a/vendor/codeberg.org/gruf/go-structr/index.go +++ b/vendor/codeberg.org/gruf/go-structr/index.go @@ -168,7 +168,7 @@ func (i *Index) init(t reflect.Type, cfg IndexConfig, cap int) { // Initialize store for // index_entry lists. - i.data.init(cap) + i.data.Init(cap) } // get_one will fetch one indexed item under key. @@ -248,7 +248,7 @@ func (i *Index) key(buf *byteutil.Buffer, parts []unsafe.Pointer) string { // doubly-linked-list in index hashmap. this handles case of // overwriting "unique" index entries, and removes from given // outer linked-list in the case that it is no longer indexed. -func (i *Index) append(ll *list, key string, item *indexed_item) { +func (i *Index) append(key string, item *indexed_item) (evicted *indexed_item) { // Look for existing. l := i.data.Get(key) @@ -267,17 +267,16 @@ func (i *Index) append(ll *list, key string, item *indexed_item) { // Drop index from inner item, // catching the evicted item. e := (*index_entry)(elem.data) - evicted := e.item + evicted = e.item evicted.drop_index(e) // Free unused entry. free_index_entry(e) - if len(evicted.indexed) == 0 { - // Evicted item is not indexed, - // remove from outer linked list. - ll.remove(&evicted.elem) - free_indexed_item(evicted) + if len(evicted.indexed) != 0 { + // Evicted is still stored + // under index, don't return. + evicted = nil } } @@ -292,6 +291,7 @@ func (i *Index) append(ll *list, key string, item *indexed_item) { // Add entry to index list. l.push_front(&entry.elem) + return } // delete will remove all indexed items under key, passing each to hook. @@ -403,7 +403,7 @@ func new_index_entry() *index_entry { func free_index_entry(entry *index_entry) { if entry.elem.next != nil || entry.elem.prev != nil { - should_not_reach() + should_not_reach(false) return } entry.key = "" |
