Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clean up unique_ptr<T> use in rewards #18121

Merged
merged 1 commit into from
Apr 20, 2023

Conversation

cdesouza-chromium
Copy link
Collaborator

@cdesouza-chromium cdesouza-chromium commented Apr 18, 2023

Most code in rewards wraps data members in unique_ptr instances, even when those data members lifetimes are integral with the type they belong to.

This PR removes a good number of those cases in favour of having the members declared as regular member types.

Resolves

Submitter Checklist:

  • I confirm that no security/privacy review is needed, or that I have requested one
  • There is a ticket for my issue
  • Used Github auto-closing keywords in the PR description above
  • Wrote a good PR/commit description
  • Squashed any review feedback or "fixup" commits before merge, so that history is a record of what happened in the repo, not your PR
  • Added appropriate labels (QA/Yes or QA/No; release-notes/include or release-notes/exclude; OS/...) to the associated issue
  • Checked the PR locally:
    • npm run test -- brave_browser_tests, npm run test -- brave_unit_tests wiki
    • npm run lint, npm run presubmit wiki, npm run gn_check, npm run tslint
  • Ran git rebase master (if needed)

Reviewer Checklist:

  • A security review is not needed, or a link to one is included in the PR description
  • New files have MPL-2.0 license header
  • Adequate test coverage exists to prevent regressions
  • Major classes, functions and non-trivial code blocks are well-commented
  • Changes in component dependencies are properly reflected in gn
  • Code follows the style guide
  • Test plan is specified in PR before merging

After-merge Checklist:

Test Plan:

@cdesouza-chromium cdesouza-chromium changed the title Clean up rewards unique ptrs Clean up unique_ptr<T> use in rewards Apr 18, 2023
@cdesouza-chromium cdesouza-chromium force-pushed the clean-up-rewards-unique-ptrs branch from 810725a to 2924c91 Compare April 19, 2023 11:36
@cdesouza-chromium cdesouza-chromium marked this pull request as ready for review April 19, 2023 11:39
@cdesouza-chromium cdesouza-chromium requested a review from a team as a code owner April 19, 2023 11:39
Copy link
Collaborator

@zenparsing zenparsing left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very nice - thank you!

@cdesouza-chromium cdesouza-chromium force-pushed the clean-up-rewards-unique-ptrs branch from 2924c91 to 0345f40 Compare April 19, 2023 23:27
@cdesouza-chromium
Copy link
Collaborator Author

@szilardszaloki All fixes I've left in 0345f402767cdce41aeaaec702e7f46e1c61a761 for now.

This change removes the use of `std::unique_ptr<T>` from the rewards
code, for cases where their use is not necessary.

Using `unique_ptr<T>` for member field representation obfuscates the
lifetime of the field, causes allocations, breaks const correctness, and
it also leads to convoluted instantiations, that might lead to further
unnecessary inheritance, dispatching, etc.
@cdesouza-chromium cdesouza-chromium force-pushed the clean-up-rewards-unique-ptrs branch from 0345f40 to fa38855 Compare April 20, 2023 00:45
@cdesouza-chromium
Copy link
Collaborator Author

Thanks @szilardszaloki and @zenparsing for reviewing this PR.

@cdesouza-chromium cdesouza-chromium merged commit a7848cf into master Apr 20, 2023
@cdesouza-chromium cdesouza-chromium deleted the clean-up-rewards-unique-ptrs branch April 20, 2023 13:21
@github-actions github-actions bot added this to the 1.52.x - Nightly milestone Apr 20, 2023
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.

3 participants