Add InternalVisibility arena enabled constructors to MapField

PiperOrigin-RevId: 556958943
pull/13542/head
Martijn Vels 2 years ago committed by Copybara-Service
parent 99d1116fd3
commit e8a2d450c9
  1. 8
      src/google/protobuf/map_field.h
  2. 7
      src/google/protobuf/map_field_lite.h

@ -41,6 +41,7 @@
#include "google/protobuf/descriptor.h"
#include "google/protobuf/generated_message_reflection.h"
#include "google/protobuf/generated_message_util.h"
#include "google/protobuf/internal_visibility.h"
#include "google/protobuf/map_entry.h"
#include "google/protobuf/map_field_lite.h"
#include "google/protobuf/map_type_handler.h"
@ -618,6 +619,13 @@ class MapField final : public TypeDefinedMapFieldBase<Key, T> {
explicit MapField(Arena* arena) : TypeDefinedMapFieldBase<Key, T>(arena) {}
MapField(ArenaInitialized, Arena* arena) : MapField(arena) {}
MapField(InternalVisibility, Arena* arena)
: TypeDefinedMapFieldBase<Key, T>(arena) {}
MapField(InternalVisibility, Arena* arena, const MapField& from)
: TypeDefinedMapFieldBase<Key, T>(arena) {
TypeDefinedMapFieldBase<Key, T>::MergeFrom(from);
}
// Used in the implementation of parsing. Caller should take the ownership iff
// arena_ is nullptr.
EntryType* NewEntry() const {

@ -35,6 +35,7 @@
#include "google/protobuf/port.h"
#include "absl/log/absl_check.h"
#include "google/protobuf/internal_visibility.h"
#include "google/protobuf/io/coded_stream.h"
#include "google/protobuf/map.h"
#include "google/protobuf/map_entry_lite.h"
@ -71,6 +72,12 @@ class MapFieldLite {
explicit MapFieldLite(Arena* arena) : map_(arena) {}
MapFieldLite(ArenaInitialized, Arena* arena) : MapFieldLite(arena) {}
MapFieldLite(InternalVisibility, Arena* arena) : map_(arena) {}
MapFieldLite(InternalVisibility, Arena* arena, const MapFieldLite& from)
: map_(arena) {
MergeFrom(from);
}
#ifdef NDEBUG
~MapFieldLite() { map_.~Map(); }
#else

Loading…
Cancel
Save