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

dart: Ensure fields are only written once #8455

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

sami-neara
Copy link

@sami-neara sami-neara commented Dec 18, 2024

Someone with a protobuf background might assume that vector object fields are
written by calling .addFoo() in a loop. However this results in a silently
corrupted message since the vector isn't serialized as expected.

This patch adds a debug assertion to ensure fields are only written once to
catch this type of error.

The assertion uncovered a bug in the library where struct fields are needlessly
added twice, which we also fix.

Someone with a protobuf background might assume that vector object fields are
written by calling `.addFoo()` in a loop. However this results in a silently
corrupted message since the vector isn't serialized as expected.

This patch adds a debug assertion to ensure fields are only written once to
catch this type of error.

The assertion uncovered a bug in the library where struct fields are needlessly
added twice, which we also fix.
Copy link

google-cla bot commented Dec 18, 2024

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

@github-actions github-actions bot added the dart label Dec 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant