This repository was archived by the owner on Feb 25, 2025. It is now read-only.
Support empty strings and vectors in standard codec#12974
Merged
franciscojma86 merged 4 commits intoflutter:masterfrom Oct 15, 2019
Merged
Support empty strings and vectors in standard codec#12974franciscojma86 merged 4 commits intoflutter:masterfrom
franciscojma86 merged 4 commits intoflutter:masterfrom
Conversation
Fixes flutter#41993 Currently an empty string or vector will call through to WriteBytes which asserts that the number of bytes it is being asked to write is strictly positive. Instead we should not call WriteBytes if the length is zero. Similarly, when we read, we don't need to call out if the length is zero.
| if (length == 0) { | ||
| return EncodableValue(list_value); | ||
| } | ||
| list_value.reserve(length); |
Contributor
There was a problem hiding this comment.
Was this causing a failure too? I think reserve(0) is just a no-op, and the for loop would be no-op as well.
Contributor
Author
There was a problem hiding this comment.
Good point, I was just being over cautious.
| @@ -176,8 +181,10 @@ void StandardCodecSerializer::WriteValue(const EncodableValue& value, | |||
| const auto& string_value = value.StringValue(); | |||
| size_t size = string_value.size(); | |||
| WriteSize(size, stream); | |||
Contributor
There was a problem hiding this comment.
Should this be included in the if statement below?
Contributor
Author
There was a problem hiding this comment.
No we always want to write the size because the format specifies type|size|contents and the reading code needs to read that zero to be able to decode an empty string.
Contributor
There was a problem hiding this comment.
makes sense, thanks!
franciscojma86
approved these changes
Oct 7, 2019
Contributor
Author
|
Any update on when this will get merged? |
engine-flutter-autoroll
added a commit
to engine-flutter-autoroll/flutter
that referenced
this pull request
Oct 16, 2019
engine-flutter-autoroll
added a commit
to flutter/flutter
that referenced
this pull request
Oct 16, 2019
[email protected]:flutter/engine.git/compare/540fc977bb6b...5e6c005 git log 540fc97..5e6c005 --no-merges --oneline 2019-10-16 [email protected] Roll src/third_party/skia 083a75d6762c..59e72b71b5cf (1 commits) (flutter/engine#13169) 2019-10-16 [email protected] Roll src/third_party/dart 4131d3d7c4...41b65b27c2 (28 commits) (flutter/engine#13163) 2019-10-16 [email protected] Roll src/third_party/skia 7274850f96f2..083a75d6762c (1 commits) (flutter/engine#13168) 2019-10-16 [email protected] Roll fuchsia/sdk/core/linux-amd64 from 5I4Iw... to oTVah... (flutter/engine#13167) 2019-10-16 [email protected] Roll fuchsia/sdk/core/mac-amd64 from qpzUe... to KVDL4... (flutter/engine#13166) 2019-10-16 [email protected] Roll src/third_party/skia 634d15032d37..7274850f96f2 (3 commits) (flutter/engine#13165) 2019-10-16 [email protected] Move surface-based SceneBuilder implementation under surface/ (flutter/engine#13159) 2019-10-16 [email protected] Roll src/third_party/skia ba8752f37dab..634d15032d37 (2 commits) (flutter/engine#13164) 2019-10-16 [email protected] Revert "Issue 13238: on iOS, force an orientation change when the current orientation is not allowed" (flutter/engine#13160) 2019-10-15 [email protected] Roll buildroot to pull in static thread safety analysis options. (flutter/engine#13155) 2019-10-15 [email protected] Roll src/third_party/skia fb6a1abe4567..ba8752f37dab (8 commits) (flutter/engine#13156) 2019-10-15 [email protected] Make the Dart isolate constructor private. (flutter/engine#13153) 2019-10-15 [email protected] Revert "Upgrades the ICU version to 64.2 (#13123)" (flutter/engine#13146) 2019-10-15 [email protected] Issue 13238: on iOS, force an orientation change when the current orientation is not allowed (flutter/engine#12295) 2019-10-15 [email protected] Allow embedders to specify a render task runner description. (flutter/engine#13124) 2019-10-15 [email protected] Roll fuchsia/sdk/core/linux-amd64 from Jv4XM... to 5I4Iw... (flutter/engine#13150) 2019-10-15 [email protected] Roll fuchsia/sdk/core/mac-amd64 from i5xD1... to qpzUe... (flutter/engine#13149) 2019-10-15 [email protected] Roll src/third_party/dart fc933312f7..4131d3d7c4 (3 commits) 2019-10-15 [email protected] Document //flutter/runtime/dart_vm (flutter/engine#13144) 2019-10-15 [email protected] Revert "Enable/tweak web sdk source maps (#13141)" (flutter/engine#13148) 2019-10-15 [email protected] Merge the Fuchsia frontend_server build script into the new flutter_frontend_server target (flutter/engine#13145) 2019-10-15 [email protected] Add `flutter_tester` binary to the CIPD package (flutter/engine#13143) 2019-10-15 [email protected] Roll src/third_party/skia f22c57ddcc8c..fb6a1abe4567 (2 commits) (flutter/engine#13142) 2019-10-15 [email protected] Enable/tweak web sdk source maps (flutter/engine#13141) 2019-10-15 [email protected] Upgrades the ICU version to 64.2 (flutter/engine#13123) 2019-10-15 [email protected] [frontend_server] Include bytecode generation in the training run. (flutter/engine#13126) 2019-10-15 [email protected] Support empty strings and vectors in standard codec (flutter/engine#12974) 2019-10-15 [email protected] Roll src/third_party/dart 50f7ae9c5d..fc933312f7 (2 commits) 2019-10-15 [email protected] Roll src/third_party/skia 55f9cba6e2e7..f22c57ddcc8c (1 commits) (flutter/engine#13136) 2019-10-15 [email protected] Roll fuchsia/sdk/core/linux-amd64 from xRgq0... to Jv4XM... (flutter/engine#13135) 2019-10-15 [email protected] Roll fuchsia/sdk/core/mac-amd64 from Lk7iT... to i5xD1... (flutter/engine#13134) 2019-10-15 [email protected] Roll src/third_party/skia 858cf233ef71..55f9cba6e2e7 (3 commits) (flutter/engine#13133) 2019-10-15 [email protected] Roll src/third_party/dart 70a7ef3f58..50f7ae9c5d (18 commits) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll Please CC [email protected] on the revert to ensure that a human is aware of the problem. To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: ...
Inconnu08
pushed a commit
to Inconnu08/flutter
that referenced
this pull request
Nov 26, 2019
[email protected]:flutter/engine.git/compare/540fc977bb6b...5e6c005 git log 540fc97..5e6c005 --no-merges --oneline 2019-10-16 [email protected] Roll src/third_party/skia 083a75d6762c..59e72b71b5cf (1 commits) (flutter/engine#13169) 2019-10-16 [email protected] Roll src/third_party/dart 4131d3d7c4...41b65b27c2 (28 commits) (flutter/engine#13163) 2019-10-16 [email protected] Roll src/third_party/skia 7274850f96f2..083a75d6762c (1 commits) (flutter/engine#13168) 2019-10-16 [email protected] Roll fuchsia/sdk/core/linux-amd64 from 5I4Iw... to oTVah... (flutter/engine#13167) 2019-10-16 [email protected] Roll fuchsia/sdk/core/mac-amd64 from qpzUe... to KVDL4... (flutter/engine#13166) 2019-10-16 [email protected] Roll src/third_party/skia 634d15032d37..7274850f96f2 (3 commits) (flutter/engine#13165) 2019-10-16 [email protected] Move surface-based SceneBuilder implementation under surface/ (flutter/engine#13159) 2019-10-16 [email protected] Roll src/third_party/skia ba8752f37dab..634d15032d37 (2 commits) (flutter/engine#13164) 2019-10-16 [email protected] Revert "Issue 13238: on iOS, force an orientation change when the current orientation is not allowed" (flutter/engine#13160) 2019-10-15 [email protected] Roll buildroot to pull in static thread safety analysis options. (flutter/engine#13155) 2019-10-15 [email protected] Roll src/third_party/skia fb6a1abe4567..ba8752f37dab (8 commits) (flutter/engine#13156) 2019-10-15 [email protected] Make the Dart isolate constructor private. (flutter/engine#13153) 2019-10-15 [email protected] Revert "Upgrades the ICU version to 64.2 (flutter#13123)" (flutter/engine#13146) 2019-10-15 [email protected] Issue 13238: on iOS, force an orientation change when the current orientation is not allowed (flutter/engine#12295) 2019-10-15 [email protected] Allow embedders to specify a render task runner description. (flutter/engine#13124) 2019-10-15 [email protected] Roll fuchsia/sdk/core/linux-amd64 from Jv4XM... to 5I4Iw... (flutter/engine#13150) 2019-10-15 [email protected] Roll fuchsia/sdk/core/mac-amd64 from i5xD1... to qpzUe... (flutter/engine#13149) 2019-10-15 [email protected] Roll src/third_party/dart fc933312f7..4131d3d7c4 (3 commits) 2019-10-15 [email protected] Document //flutter/runtime/dart_vm (flutter/engine#13144) 2019-10-15 [email protected] Revert "Enable/tweak web sdk source maps (flutter#13141)" (flutter/engine#13148) 2019-10-15 [email protected] Merge the Fuchsia frontend_server build script into the new flutter_frontend_server target (flutter/engine#13145) 2019-10-15 [email protected] Add `flutter_tester` binary to the CIPD package (flutter/engine#13143) 2019-10-15 [email protected] Roll src/third_party/skia f22c57ddcc8c..fb6a1abe4567 (2 commits) (flutter/engine#13142) 2019-10-15 [email protected] Enable/tweak web sdk source maps (flutter/engine#13141) 2019-10-15 [email protected] Upgrades the ICU version to 64.2 (flutter/engine#13123) 2019-10-15 [email protected] [frontend_server] Include bytecode generation in the training run. (flutter/engine#13126) 2019-10-15 [email protected] Support empty strings and vectors in standard codec (flutter/engine#12974) 2019-10-15 [email protected] Roll src/third_party/dart 50f7ae9c5d..fc933312f7 (2 commits) 2019-10-15 [email protected] Roll src/third_party/skia 55f9cba6e2e7..f22c57ddcc8c (1 commits) (flutter/engine#13136) 2019-10-15 [email protected] Roll fuchsia/sdk/core/linux-amd64 from xRgq0... to Jv4XM... (flutter/engine#13135) 2019-10-15 [email protected] Roll fuchsia/sdk/core/mac-amd64 from Lk7iT... to i5xD1... (flutter/engine#13134) 2019-10-15 [email protected] Roll src/third_party/skia 858cf233ef71..55f9cba6e2e7 (3 commits) (flutter/engine#13133) 2019-10-15 [email protected] Roll src/third_party/dart 70a7ef3f58..50f7ae9c5d (18 commits) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll Please CC [email protected] on the revert to ensure that a human is aware of the problem. To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: ...
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #41993
Currently an empty string or vector will call through to WriteBytes
which asserts that the number of bytes it is being asked to write is
strictly positive. Instead we should not call WriteBytes if the length
is zero.
Similarly, when we read, we don't need to call out if the length is
zero.