Skip to content

Commit 13ea075

Browse files
Fixes #264 (#266)
Fixes #253 Fixes #251 Multimaps and arrays that contained structs were previously not correctly handled. When a new element is added to an array or multimap that element must always be considered new. Previously the implementation would sometimes incorrectly use a previous state of an element at the same index if such element remained in memory as a result of shrinking and then expanding the array or multimap again. A similar problem also existed for optional fields in structs where a field that was previously not present becomes present and the fields state must be assumed to be completely new in that case. Previously the state of the field in some cases was incorrectly carried over if the field remained in memory as a result of the field becoming first non-present then present again. This PR fixes all those bugs by correctly using "new" state for new array and multimap elements and newly present optional struct fields. "seeds" directory now contains seed values that reproduce the 3 bugs that are fixed.
1 parent 905b886 commit 13ea075

File tree

74 files changed

+1319
-696
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

74 files changed

+1319
-696
lines changed

examples/ints/internal/ints/record.go

Lines changed: 5 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

examples/jsonl/internal/jsonstef/jsonobject.go

Lines changed: 17 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

examples/jsonl/internal/jsonstef/jsonvaluearray.go

Lines changed: 10 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

examples/jsonl/internal/jsonstef/record.go

Lines changed: 9 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

examples/profile/internal/profile/function.go

Lines changed: 21 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

examples/profile/internal/profile/labels.go

Lines changed: 17 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

examples/profile/internal/profile/line.go

Lines changed: 22 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

examples/profile/internal/profile/linearray.go

Lines changed: 10 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)