Change Thunks that take by ref to take by pointer.

PiperOrigin-RevId: 592525870
pull/15136/head
Protobuf Team Bot 1 year ago committed by Copybara-Service
parent b539fa9c05
commit 9d749cd5b0
  1. 10
      rust/cpp_kernel/cpp_api.cc
  2. 4
      src/google/protobuf/compiler/rust/accessors/map.cc
  3. 5
      src/google/protobuf/compiler/rust/accessors/repeated_scalar.cc

@ -1,5 +1,6 @@
#include "rust/cpp_kernel/cpp_api.h"
#include <cstddef>
#include <cstdint>
#include <string>
@ -33,8 +34,8 @@ extern "C" {
return r->Set(index, val); \
} \
void __pb_rust_RepeatedField_##rust_ty##_copy_from( \
google::protobuf::RepeatedField<ty> const& src, google::protobuf::RepeatedField<ty>& dst) { \
dst.CopyFrom(src); \
const google::protobuf::RepeatedField<ty>* src, google::protobuf::RepeatedField<ty>* dst) { \
dst->CopyFrom(*src); \
} \
void __pb_rust_RepeatedField_##rust_ty##_clear( \
google::protobuf::RepeatedField<ty>* r) { \
@ -63,7 +64,7 @@ expose_repeated_field_methods(int64_t, i64);
m->clear(); \
} \
size_t __pb_rust_Map_##rust_key_ty##_##rust_value_ty##_size( \
google::protobuf::Map<key_ty, value_ty>* m) { \
const google::protobuf::Map<key_ty, value_ty>* m) { \
return m->size(); \
} \
void __pb_rust_Map_##rust_key_ty##_##rust_value_ty##_insert( \
@ -73,7 +74,8 @@ expose_repeated_field_methods(int64_t, i64);
(*m)[cpp_key] = cpp_value; \
} \
bool __pb_rust_Map_##rust_key_ty##_##rust_value_ty##_get( \
google::protobuf::Map<key_ty, value_ty>* m, ffi_key_ty key, ffi_value_ty* value) { \
const google::protobuf::Map<key_ty, value_ty>* m, ffi_key_ty key, \
ffi_value_ty* value) { \
auto cpp_key = to_cpp_key; \
auto it = m->find(cpp_key); \
if (it == m->end()) { \

@ -135,8 +135,8 @@ void Map::InThunkCc(Context& ctx, const FieldDescriptor& field) const {
[&] {
ctx.Emit(
R"cc(
const void* $getter_thunk$($QualifiedMsg$& msg) {
return &msg.$field$();
const void* $getter_thunk$(const $QualifiedMsg$* msg) {
return &msg->$field$();
}
void* $getter_mut_thunk$($QualifiedMsg$* msg) { return msg->mutable_$field$(); }
)cc");

@ -150,8 +150,9 @@ void RepeatedScalar::InThunkCc(Context& ctx,
google::protobuf::RepeatedField<$Scalar$>* $getter_mut_thunk$($QualifiedMsg$* msg) {
return msg->mutable_$field$();
}
const google::protobuf::RepeatedField<$Scalar$>& $getter_thunk$($QualifiedMsg$& msg) {
return msg.$field$();
const google::protobuf::RepeatedField<$Scalar$>* $getter_thunk$(
const $QualifiedMsg$* msg) {
return &msg->$field$();
}
)cc");
}}},

Loading…
Cancel
Save