Skip to content

Make sure to not modify the input options slice.#24

Closed
aalexand wants to merge 1 commit into
ianlancetaylor:masterfrom
aalexand:copyopts
Closed

Make sure to not modify the input options slice.#24
aalexand wants to merge 1 commit into
ianlancetaylor:masterfrom
aalexand:copyopts

Conversation

@aalexand

Copy link
Copy Markdown
Contributor

In Go, appending to a slice can modify the original slice if there is enough backing space. In use cases like passing options slice to an API call this is unexpected since it's quite intuitive at the API surface to write a loop to demangle multiple names and reuse the same options slice between the calls. Forcing clients to copy or re-create the options in such pattern seems unnecessary.

In Go, appending to a slice can modify the original slice if there is
enough backing space. In use cases like passing options slice to an API
call this is unexpected since it's quite intuitive at the API surface to
write a loop to demangle multiple names and reuse the same options slice
between the calls. Forcing clients to copy or re-create the options in
such pattern seems unnecessary.
aalexand added a commit to aalexand/pprof that referenced this pull request Apr 17, 2025
This is a follow-up to google#924. In the comparison we should compare to the
string with stripped underscore, otherwise the comparison will never be
true and we strip the underscore in cases we shouldn't. See the added
test case.

Also, while we are here, add copying demangling options that we also
missed. Hopefully we can get
ianlancetaylor/demangle#24 in and this won't be
needed.
@ianlancetaylor

Copy link
Copy Markdown
Owner

Thanks. I fixed this in a different way and added a test.

@aalexand

Copy link
Copy Markdown
Contributor Author

Thank you! TIL the neat way to address this.

aalexand added a commit to google/pprof that referenced this pull request Apr 17, 2025
This is a follow-up to #924. In the comparison we should compare to the
string with stripped underscore, otherwise the comparison will never be
true and we strip the underscore in cases we shouldn't. See the added
test case.

Also, while we are here, add copying demangling options that we also
missed. Hopefully we can get
ianlancetaylor/demangle#24 in and this won't be
needed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants