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

Unified Diff: mojo/public/cpp/bindings/lib/native_struct_serialization.cc

Issue 1955123003: Mojo C++ bindings: switch the remaining callsites of the old serialization interface. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@24_union_and_others
Patch Set: Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: mojo/public/cpp/bindings/lib/native_struct_serialization.cc
diff --git a/mojo/public/cpp/bindings/lib/native_struct_serialization.cc b/mojo/public/cpp/bindings/lib/native_struct_serialization.cc
index 82725993fe09e98223180521731f93b2bfdd5885..fe65f147c619de5834fd444220f1e540909fcca1 100644
--- a/mojo/public/cpp/bindings/lib/native_struct_serialization.cc
+++ b/mojo/public/cpp/bindings/lib/native_struct_serialization.cc
@@ -7,23 +7,53 @@
#include "mojo/public/cpp/bindings/lib/serialization.h"
namespace mojo {
+namespace internal {
-size_t GetSerializedSize_(const NativeStructPtr& input,
- internal::SerializationContext* context) {
- return internal::PrepareToSerialize<NativeStructPtr>(input, context);
+// static
+size_t UnmappedNativeStructSerializerImpl::PrepareToSerialize(
+ const NativeStructPtr& input,
+ SerializationContext* context) {
+ if (!input)
+ return 0;
+ return internal::PrepareToSerialize<Array<uint8_t>>(input->data, context);
}
-void Serialize_(NativeStructPtr input,
- internal::Buffer* buffer,
- internal::NativeStruct_Data** output,
- internal::SerializationContext* context) {
- internal::Serialize<NativeStructPtr>(input, buffer, output, context);
+// static
+void UnmappedNativeStructSerializerImpl::Serialize(
+ const NativeStructPtr& input,
+ Buffer* buffer,
+ NativeStruct_Data** output,
+ SerializationContext* context) {
+ if (!input) {
+ *output = nullptr;
+ return;
+ }
+
+ Array_Data<uint8_t>* data = nullptr;
+ const ArrayValidateParams params(0, false, nullptr);
+ internal::Serialize<Array<uint8_t>>(input->data, buffer, &data, &params,
+ context);
+ *output = reinterpret_cast<NativeStruct_Data*>(data);
}
-bool Deserialize_(internal::NativeStruct_Data* input,
- NativeStructPtr* output,
- internal::SerializationContext* context) {
- return internal::Deserialize<NativeStructPtr>(input, output, context);
+// static
+bool UnmappedNativeStructSerializerImpl::Deserialize(
+ NativeStruct_Data* input,
+ NativeStructPtr* output,
+ SerializationContext* context) {
+ Array_Data<uint8_t>* data = reinterpret_cast<Array_Data<uint8_t>*>(input);
+
+ NativeStructPtr result(NativeStruct::New());
+ if (!internal::Deserialize<Array<uint8_t>>(data, &result->data, context)) {
+ output = nullptr;
+ return false;
+ }
+ if (!result->data)
+ *output = nullptr;
+ else
+ result.Swap(output);
+ return true;
}
+} // namespace internal
} // namespace mojo

Powered by Google App Engine
This is Rietveld 408576698