Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(369)

Issue 1358353002: * Change C++ serialization/deserialization to not be move-only operations (with the except of |Ha… (Closed)

Created:
5 years, 3 months ago by vardhan
Modified:
5 years, 2 months ago
Reviewers:
jamesr, viettrungluu
CC:
mojo-reviews_chromium.org, gregsimon, qsr+mojo_chromium.org, viettrungluu+watch_chromium.org, yzshen+watch_chromium.org, abarth-chromium, Aaron Boodman, darin (slow to review), ben+mojo_chromium.org
Base URL:
https://github.com/domokit/mojo.git@master
Target Ref:
refs/heads/master
Project:
mojo
Visibility:
Public.

Description

* Change C++ serialization/deserialization to not be move-only operations (with the except of |Handle|, which is move-only). * Change deserialization of structs and unions to take in a pre-initialized struct instead of initializing it inside Deserialize_(). This is all related to issue #419. Details on what this change has: * Generated Serialize_(), SerializeArray_(), and related functions operate on pointers to their types, since these types are move-only. * Generated [De]Serialize_() for mojom structs and unions don't operate on |StructPtr|, but instead on |Struct*|. This is also true for Serialize[Array|Map]_(). * |Map| will uses iterator_util.h to help serialize its keys and values, instead of constructing an |Array| by moving its elements and calling SerializeArray_(). R=viettrungluu@chromium.org, jamesr@chromium.org Committed: https://chromium.googlesource.com/external/mojo/+/1e92ff607c598220dbbb31a1e33c999c6c06a200

Patch Set 1 #

Total comments: 20

Patch Set 2 : Fix failing test (b/c of url_response_disk_cache_db.cc) #

Patch Set 3 : cleanup how GetSerializedSize_() is called #

Patch Set 4 : Cleanup forward declarations of array/map serialization functions #

Total comments: 16

Patch Set 5 : simplify array_serialization.h (ArraySerializer::SerializeElements and [De]SerializeCaller) #

Total comments: 10

Patch Set 6 : (*it).get() to it->, and other formatting #

Unified diffs Side-by-side diffs Delta from patch set Stats (+419 lines, -355 lines) Patch
M mojo/public/cpp/bindings/lib/array_serialization.h View 1 2 3 4 5 10 chunks +133 lines, -102 lines 0 comments Download
M mojo/public/cpp/bindings/lib/bindings_internal.h View 1 2 3 4 1 chunk +36 lines, -0 lines 0 comments Download
M mojo/public/cpp/bindings/lib/control_message_handler.cc View 1 2 2 chunks +4 lines, -4 lines 0 comments Download
M mojo/public/cpp/bindings/lib/control_message_proxy.cc View 1 2 3 chunks +6 lines, -6 lines 0 comments Download
M mojo/public/cpp/bindings/lib/map_internal.h View 2 chunks +0 lines, -28 lines 0 comments Download
M mojo/public/cpp/bindings/lib/map_serialization.h View 1 2 3 4 3 chunks +32 lines, -21 lines 0 comments Download
A mojo/public/cpp/bindings/lib/map_serialization_forward.h View 1 2 3 4 5 1 chunk +45 lines, -0 lines 0 comments Download
M mojo/public/cpp/bindings/lib/string_serialization.h View 1 chunk +4 lines, -3 lines 0 comments Download
M mojo/public/cpp/bindings/lib/string_serialization.cc View 1 chunk +3 lines, -3 lines 0 comments Download
M mojo/public/cpp/bindings/map.h View 1 chunk +0 lines, -12 lines 0 comments Download
M mojo/public/cpp/bindings/struct_ptr.h View 1 chunk +1 line, -1 line 0 comments Download
M mojo/public/cpp/bindings/tests/array_unittest.cc View 1 2 3 4 5 5 chunks +5 lines, -5 lines 0 comments Download
M mojo/public/cpp/bindings/tests/map_unittest.cc View 4 chunks +3 lines, -40 lines 0 comments Download
M mojo/public/cpp/bindings/tests/serialization_warning_unittest.cc View 1 2 2 chunks +3 lines, -3 lines 0 comments Download
M mojo/public/cpp/bindings/tests/struct_unittest.cc View 1 2 8 chunks +21 lines, -20 lines 0 comments Download
M mojo/public/cpp/bindings/tests/union_unittest.cc View 1 2 37 chunks +64 lines, -63 lines 0 comments Download
M mojo/public/tools/bindings/generators/cpp_templates/interface_definition.tmpl View 1 chunk +1 line, -1 line 0 comments Download
M mojo/public/tools/bindings/generators/cpp_templates/struct_macros.tmpl View 1 2 3 4 3 chunks +18 lines, -5 lines 0 comments Download
M mojo/public/tools/bindings/generators/cpp_templates/struct_serialization_declaration.tmpl View 1 chunk +3 lines, -3 lines 0 comments Download
M mojo/public/tools/bindings/generators/cpp_templates/struct_serialization_definition.tmpl View 2 chunks +4 lines, -10 lines 0 comments Download
M mojo/public/tools/bindings/generators/cpp_templates/union_serialization_declaration.tmpl View 1 chunk +3 lines, -3 lines 0 comments Download
M mojo/public/tools/bindings/generators/cpp_templates/union_serialization_definition.tmpl View 1 2 3 4 6 chunks +26 lines, -19 lines 0 comments Download
M services/url_response_disk_cache/url_response_disk_cache_db.cc View 1 2 3 4 5 3 chunks +4 lines, -3 lines 0 comments Download

Messages

Total messages: 9 (0 generated)
vardhan
5 years, 3 months ago (2015-09-23 00:54:07 UTC) #1
viettrungluu
A bunch of stuff is busted -- see the red bots. (Also, I haven't reviewed ...
5 years, 3 months ago (2015-09-23 18:15:55 UTC) #2
vardhan
https://codereview.chromium.org/1358353002/diff/1/mojo/public/cpp/bindings/lib/array_serialization.h File mojo/public/cpp/bindings/lib/array_serialization.h (right): https://codereview.chromium.org/1358353002/diff/1/mojo/public/cpp/bindings/lib/array_serialization.h#newcode35 mojo/public/cpp/bindings/lib/array_serialization.h:35: // To avoid a circular dependency on map_serialization.h, we ...
5 years, 3 months ago (2015-09-23 22:07:00 UTC) #3
vardhan
https://codereview.chromium.org/1358353002/diff/1/mojo/public/cpp/bindings/lib/array_serialization.h File mojo/public/cpp/bindings/lib/array_serialization.h (right): https://codereview.chromium.org/1358353002/diff/1/mojo/public/cpp/bindings/lib/array_serialization.h#newcode35 mojo/public/cpp/bindings/lib/array_serialization.h:35: // To avoid a circular dependency on map_serialization.h, we ...
5 years, 3 months ago (2015-09-23 22:12:16 UTC) #4
viettrungluu
https://codereview.chromium.org/1358353002/diff/1/mojo/public/cpp/bindings/lib/array_serialization.h File mojo/public/cpp/bindings/lib/array_serialization.h (right): https://codereview.chromium.org/1358353002/diff/1/mojo/public/cpp/bindings/lib/array_serialization.h#newcode35 mojo/public/cpp/bindings/lib/array_serialization.h:35: // To avoid a circular dependency on map_serialization.h, we ...
5 years, 3 months ago (2015-09-23 23:20:24 UTC) #5
vardhan
https://codereview.chromium.org/1358353002/diff/1/mojo/public/cpp/bindings/lib/array_serialization.h File mojo/public/cpp/bindings/lib/array_serialization.h (right): https://codereview.chromium.org/1358353002/diff/1/mojo/public/cpp/bindings/lib/array_serialization.h#newcode35 mojo/public/cpp/bindings/lib/array_serialization.h:35: // To avoid a circular dependency on map_serialization.h, we ...
5 years, 2 months ago (2015-09-25 19:33:05 UTC) #6
viettrungluu
lgtm w/nits, you break it you buy it https://codereview.chromium.org/1358353002/diff/1/mojo/public/cpp/bindings/lib/array_serialization.h File mojo/public/cpp/bindings/lib/array_serialization.h (right): https://codereview.chromium.org/1358353002/diff/1/mojo/public/cpp/bindings/lib/array_serialization.h#newcode35 mojo/public/cpp/bindings/lib/array_serialization.h:35: // ...
5 years, 2 months ago (2015-09-25 20:08:08 UTC) #7
vardhan
https://codereview.chromium.org/1358353002/diff/70024/mojo/public/cpp/bindings/lib/array_serialization.h File mojo/public/cpp/bindings/lib/array_serialization.h (right): https://codereview.chromium.org/1358353002/diff/70024/mojo/public/cpp/bindings/lib/array_serialization.h#newcode72 mojo/public/cpp/bindings/lib/array_serialization.h:72: if (num_elements) { On 2015/09/25 20:08:08, viettrungluu wrote: > ...
5 years, 2 months ago (2015-09-28 21:55:44 UTC) #8
vardhan
5 years, 2 months ago (2015-09-28 21:57:26 UTC) #9
Message was sent while issue was closed.
Committed patchset #6 (id:90001) manually as
1e92ff607c598220dbbb31a1e33c999c6c06a200 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698