protobuf/src/google/protobuf/map_entry_lite.h
Go to the documentation of this file.
1 // Protocol Buffers - Google's data interchange format
2 // Copyright 2008 Google Inc. All rights reserved.
3 // https://developers.google.com/protocol-buffers/
4 //
5 // Redistribution and use in source and binary forms, with or without
6 // modification, are permitted provided that the following conditions are
7 // met:
8 //
9 // * Redistributions of source code must retain the above copyright
10 // notice, this list of conditions and the following disclaimer.
11 // * Redistributions in binary form must reproduce the above
12 // copyright notice, this list of conditions and the following disclaimer
13 // in the documentation and/or other materials provided with the
14 // distribution.
15 // * Neither the name of Google Inc. nor the names of its
16 // contributors may be used to endorse or promote products derived from
17 // this software without specific prior written permission.
18 //
19 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 
31 #ifndef GOOGLE_PROTOBUF_MAP_ENTRY_LITE_H__
32 #define GOOGLE_PROTOBUF_MAP_ENTRY_LITE_H__
33 
34 #include <assert.h>
35 #include <string>
36 
37 #include <google/protobuf/stubs/casts.h>
38 #include <google/protobuf/parse_context.h>
39 #include <google/protobuf/io/coded_stream.h>
40 #include <google/protobuf/arena.h>
41 #include <google/protobuf/arenastring.h>
42 #include <google/protobuf/generated_message_util.h>
43 #include <google/protobuf/map.h>
44 #include <google/protobuf/map_type_handler.h>
45 #include <google/protobuf/port.h>
46 #include <google/protobuf/wire_format_lite.h>
47 
48 #include <google/protobuf/port_def.inc>
49 #ifdef SWIG
50 #error "You cannot SWIG proto headers"
51 #endif
52 
53 namespace google {
54 namespace protobuf {
55 namespace internal {
56 template <typename Derived, typename Key, typename Value,
57  WireFormatLite::FieldType kKeyFieldType,
58  WireFormatLite::FieldType kValueFieldType>
59 class MapEntry;
60 template <typename Derived, typename Key, typename Value,
61  WireFormatLite::FieldType kKeyFieldType,
62  WireFormatLite::FieldType kValueFieldType>
63 class MapFieldLite;
64 } // namespace internal
65 } // namespace protobuf
66 } // namespace google
67 
68 namespace google {
69 namespace protobuf {
70 namespace internal {
71 
72 // MoveHelper::Move is used to set *dest. It copies *src, or moves it (in
73 // the C++11 sense), or swaps it. *src is left in a sane state for
74 // subsequent destruction, but shouldn't be used for anything.
75 template <bool is_enum, bool is_message, bool is_stringlike, typename T>
76 struct MoveHelper { // primitives
77  static void Move(T* src, T* dest) { *dest = *src; }
78 };
79 
80 template <bool is_message, bool is_stringlike, typename T>
81 struct MoveHelper<true, is_message, is_stringlike, T> { // enums
82  static void Move(T* src, T* dest) { *dest = *src; }
83  // T is an enum here, so allow conversions to and from int.
84  static void Move(T* src, int* dest) { *dest = static_cast<int>(*src); }
85  static void Move(int* src, T* dest) { *dest = static_cast<T>(*src); }
86 };
87 
88 template <bool is_stringlike, typename T>
89 struct MoveHelper<false, true, is_stringlike, T> { // messages
90  static void Move(T* src, T* dest) { dest->Swap(src); }
91 };
92 
93 template <typename T>
94 struct MoveHelper<false, false, true, T> { // strings and similar
95  static void Move(T* src, T* dest) {
96  *dest = std::move(*src);
97  }
98 };
99 
100 // Functions for operating on a map entry. Does not contain any representation
101 // (this class is not intended to be instantiated).
102 template <typename Key, typename Value, WireFormatLite::FieldType kKeyFieldType,
103  WireFormatLite::FieldType kValueFieldType>
104 struct MapEntryFuncs {
107  static const int kKeyFieldNumber = 1;
108  static const int kValueFieldNumber = 2;
109 
110  static uint8_t* InternalSerialize(int field_number, const Key& key,
111  const Value& value, uint8_t* ptr,
113  ptr = stream->EnsureSpace(ptr);
117  ptr);
118 
121  }
122 
123  static size_t ByteSizeLong(const Key& key, const Value& value) {
124  // Tags for key and value will both be one byte (field numbers 1 and 2).
125  size_t inner_length =
127  return inner_length + io::CodedOutputStream::VarintSize32(
128  static_cast<uint32_t>(inner_length));
129  }
130 
131  static int GetCachedSize(const Key& key, const Value& value) {
132  // Tags for key and value will both be one byte (field numbers 1 and 2).
133  return 2 + KeyTypeHandler::GetCachedSize(key) +
134  ValueTypeHandler::GetCachedSize(value);
135  }
136 };
137 
138 // MapEntryImpl is used to implement parsing and serialization of map entries.
139 // It uses Curious Recursive Template Pattern (CRTP) to provide the type of
140 // the eventual code to the template code.
141 template <typename Derived, typename Base, typename Key, typename Value,
142  WireFormatLite::FieldType kKeyFieldType,
143  WireFormatLite::FieldType kValueFieldType>
144 class MapEntryImpl : public Base {
145  public:
147 
148  protected:
149  // Provide utilities to parse/serialize key/value. Provide utilities to
150  // manipulate internal stored type.
153 
154  // Define internal memory layout. Strings and messages are stored as
155  // pointers, while other types are stored as values.
156  typedef typename KeyTypeHandler::TypeOnMemory KeyOnMemory;
157  typedef typename ValueTypeHandler::TypeOnMemory ValueOnMemory;
158 
159  // Enum type cannot be used for MapTypeHandler::Read. Define a type
160  // which will replace Enum with int.
161  typedef typename KeyTypeHandler::MapEntryAccessorType KeyMapEntryAccessorType;
162  typedef
163  typename ValueTypeHandler::MapEntryAccessorType ValueMapEntryAccessorType;
164 
165  // Constants for field number.
166  static const int kKeyFieldNumber = 1;
167  static const int kValueFieldNumber = 2;
168 
169  // Constants for field tag.
170  static const uint8_t kKeyTag =
171  GOOGLE_PROTOBUF_WIRE_FORMAT_MAKE_TAG(kKeyFieldNumber, KeyTypeHandler::kWireType);
173  kValueFieldNumber, ValueTypeHandler::kWireType);
174  static const size_t kTagSize = 1;
175 
176  public:
177  // Work-around for a compiler bug (see repeated_field.h).
179  typedef Derived EntryType;
180  typedef Key EntryKeyType;
182  static const WireFormatLite::FieldType kEntryKeyFieldType = kKeyFieldType;
183  static const WireFormatLite::FieldType kEntryValueFieldType = kValueFieldType;
184 
185  constexpr MapEntryImpl()
186  : key_(KeyTypeHandler::Constinit()),
187  value_(ValueTypeHandler::Constinit()),
188  _has_bits_{} {}
189 
191  : Base(arena),
192  key_(KeyTypeHandler::Constinit()),
193  value_(ValueTypeHandler::Constinit()),
194  _has_bits_{} {}
195 
197  if (Base::GetArenaForAllocation() != nullptr) return;
198  KeyTypeHandler::DeleteNoArena(key_);
199  ValueTypeHandler::DeleteNoArena(value_);
200  }
201 
202  // accessors ======================================================
203 
204  virtual inline const KeyMapEntryAccessorType& key() const {
205  return KeyTypeHandler::GetExternalReference(key_);
206  }
207  virtual inline const ValueMapEntryAccessorType& value() const {
208  return ValueTypeHandler::DefaultIfNotInitialized(value_);
209  }
211  set_has_key();
212  return KeyTypeHandler::EnsureMutable(&key_, Base::GetArenaForAllocation());
213  }
215  set_has_value();
216  return ValueTypeHandler::EnsureMutable(&value_,
217  Base::GetArenaForAllocation());
218  }
219 
220  // implements MessageLite =========================================
221 
222  // MapEntryImpl is for implementation only and this function isn't called
223  // anywhere. Just provide a fake implementation here for MessageLite.
224  std::string GetTypeName() const override { return ""; }
225 
226  void CheckTypeAndMergeFrom(const MessageLite& other) override {
227  MergeFromInternal(*::google::protobuf::internal::DownCast<const Derived*>(&other));
228  }
229 
230  const char* _InternalParse(const char* ptr, ParseContext* ctx) final {
231  while (!ctx->Done(&ptr)) {
232  uint32_t tag;
233  ptr = ReadTag(ptr, &tag);
235  if (tag == kKeyTag) {
236  set_has_key();
239  if (!Derived::ValidateKey(key)) return nullptr;
240  } else if (tag == kValueTag) {
241  set_has_value();
244  if (!Derived::ValidateValue(value)) return nullptr;
245  } else {
246  if (tag == 0 || WireFormatLite::GetTagWireType(tag) ==
248  ctx->SetLastTag(tag);
249  return ptr;
250  }
251  ptr = UnknownFieldParse(tag, static_cast<std::string*>(nullptr), ptr,
252  ctx);
253  }
255  }
256  return ptr;
257  }
258 
259  size_t ByteSizeLong() const override {
260  size_t size = 0;
261  size += kTagSize + static_cast<size_t>(KeyTypeHandler::ByteSize(key()));
262  size += kTagSize + static_cast<size_t>(ValueTypeHandler::ByteSize(value()));
263  return size;
264  }
265 
267  ::uint8_t* ptr, io::EpsCopyOutputStream* stream) const override {
270  }
271 
272  // Don't override SerializeWithCachedSizesToArray. Use MessageLite's.
273 
274  int GetCachedSize() const override {
275  int size = 0;
276  size += has_key() ? static_cast<int>(kTagSize) +
277  KeyTypeHandler::GetCachedSize(key())
278  : 0;
279  size += has_value() ? static_cast<int>(kTagSize) +
280  ValueTypeHandler::GetCachedSize(value())
281  : 0;
282  return size;
283  }
284 
285  bool IsInitialized() const override {
287  }
288 
289  Base* New(Arena* arena) const override {
290  Derived* entry = Arena::CreateMessage<Derived>(arena);
291  return entry;
292  }
293 
294  protected:
295  // We can't declare this function directly here as it would hide the other
296  // overload (const Message&).
298  if (from._has_bits_[0]) {
299  if (from.has_key()) {
300  KeyTypeHandler::EnsureMutable(&key_, Base::GetArenaForAllocation());
301  KeyTypeHandler::Merge(from.key(), &key_, Base::GetArenaForAllocation());
302  set_has_key();
303  }
304  if (from.has_value()) {
305  ValueTypeHandler::EnsureMutable(&value_, Base::GetArenaForAllocation());
307  Base::GetArenaForAllocation());
308  set_has_value();
309  }
310  }
311  }
312 
313  public:
314  void Clear() override {
315  KeyTypeHandler::Clear(&key_, Base::GetArenaForAllocation());
316  ValueTypeHandler::Clear(&value_, Base::GetArenaForAllocation());
317  clear_has_key();
318  clear_has_value();
319  }
320 
321  // Parsing using MergePartialFromCodedStream, above, is not as
322  // efficient as it could be. This helper class provides a speedier way.
323  template <typename MapField, typename Map>
324  class Parser {
325  public:
326  explicit Parser(MapField* mf) : mf_(mf), map_(mf->MutableMap()) {}
328  if (entry_ != nullptr && entry_->GetArenaForAllocation() == nullptr)
329  delete entry_;
330  }
331 
332  // This does what the typical MergePartialFromCodedStream() is expected to
333  // do, with the additional side-effect that if successful (i.e., if true is
334  // going to be its return value) it inserts the key-value pair into map_.
336  // Look for the expected thing: a key and then a value. If it fails,
337  // invoke the enclosing class's MergePartialFromCodedStream, or return
338  // false if that would be pointless.
339  if (input->ExpectTag(kKeyTag)) {
340  if (!KeyTypeHandler::Read(input, &key_)) {
341  return false;
342  }
343  // Peek at the next byte to see if it is kValueTag. If not, bail out.
344  const void* data;
345  int size;
346  input->GetDirectBufferPointerInline(&data, &size);
347  // We could use memcmp here, but we don't bother. The tag is one byte.
348  static_assert(kTagSize == 1, "tag size must be 1");
349  if (size > 0 && *reinterpret_cast<const char*>(data) == kValueTag) {
350  typename Map::size_type map_size = map_->size();
351  value_ptr_ = &(*map_)[key_];
352  if (PROTOBUF_PREDICT_TRUE(map_size != map_->size())) {
353  // We created a new key-value pair. Fill in the value.
354  typedef
356  input->Skip(kTagSize); // Skip kValueTag.
358  reinterpret_cast<T>(value_ptr_))) {
359  map_->erase(key_); // Failure! Undo insertion.
360  return false;
361  }
362  if (input->ExpectAtEnd()) return true;
364  }
365  }
366  } else {
367  key_ = Key();
368  }
369 
370  NewEntry();
371  *entry_->mutable_key() = key_;
372  const bool result = entry_->MergePartialFromCodedStream(input);
374  return result;
375  }
376 
377  const char* _InternalParse(const char* ptr, ParseContext* ctx) {
378  if (PROTOBUF_PREDICT_TRUE(!ctx->Done(&ptr) && *ptr == kKeyTag)) {
379  ptr = KeyTypeHandler::Read(ptr + 1, ctx, &key_);
380  if (PROTOBUF_PREDICT_FALSE(!ptr || !Derived::ValidateKey(&key_))) {
381  return nullptr;
382  }
383  if (PROTOBUF_PREDICT_TRUE(!ctx->Done(&ptr) && *ptr == kValueTag)) {
384  typename Map::size_type map_size = map_->size();
385  value_ptr_ = &(*map_)[key_];
386  if (PROTOBUF_PREDICT_TRUE(map_size != map_->size())) {
387  using T =
390  reinterpret_cast<T>(value_ptr_));
391  if (PROTOBUF_PREDICT_FALSE(!ptr ||
393  map_->erase(key_); // Failure! Undo insertion.
394  return nullptr;
395  }
396  if (PROTOBUF_PREDICT_TRUE(ctx->Done(&ptr))) return ptr;
397  if (!ptr) return nullptr;
398  NewEntry();
400  map_->erase(key_);
401  goto move_key;
402  }
403  } else {
404  if (!ptr) return nullptr;
405  }
406  NewEntry();
407  move_key:
409  } else {
410  if (!ptr) return nullptr;
411  NewEntry();
412  }
415  return ptr;
416  }
417 
418  template <typename UnknownType>
419  const char* ParseWithEnumValidation(const char* ptr, ParseContext* ctx,
420  bool (*is_valid)(int),
421  uint32_t field_num,
423  auto entry = NewEntry();
424  ptr = entry->_InternalParse(ptr, ctx);
425  if (!ptr) return nullptr;
426  if (is_valid(entry->value())) {
428  } else {
429  WriteLengthDelimited(field_num, entry->SerializeAsString(),
430  metadata->mutable_unknown_fields<UnknownType>());
431  }
432  return ptr;
433  }
434 
436 
437  const Key& key() const { return key_; }
438  const Value& value() const { return *value_ptr_; }
439 
440  const Key& entry_key() const { return entry_->key(); }
441  const Value& entry_value() const { return entry_->value(); }
442 
443  private:
445  // Update key_ in case we need it later (because key() is called).
446  // This is potentially inefficient, especially if the key is
447  // expensive to copy (e.g., a long string), but this is a cold
448  // path, so it's not a big deal.
449  key_ = entry_->key();
450  value_ptr_ = &(*map_)[key_];
452  }
453 
454  // After reading a key and value successfully, and inserting that data
455  // into map_, we are not at the end of the input. This is unusual, but
456  // allowed by the spec.
458  NewEntry();
460  map_->erase(key_);
462  const bool result = entry_->MergePartialFromCodedStream(input);
464  return result;
465  }
466 
467  typedef MoveHelper<KeyTypeHandler::kIsEnum, KeyTypeHandler::kIsMessage,
468  KeyTypeHandler::kWireType ==
470  Key>
472  typedef MoveHelper<ValueTypeHandler::kIsEnum, ValueTypeHandler::kIsMessage,
473  ValueTypeHandler::kWireType ==
475  Value>
477 
478  MapField* const mf_;
479  Map* const map_;
480  Key key_;
481  Value* value_ptr_;
482  MapEntryImpl* entry_ = nullptr;
483  };
484 
485  protected:
486  void set_has_key() { _has_bits_[0] |= 0x00000001u; }
487  bool has_key() const { return (_has_bits_[0] & 0x00000001u) != 0; }
488  void clear_has_key() { _has_bits_[0] &= ~0x00000001u; }
489  void set_has_value() { _has_bits_[0] |= 0x00000002u; }
490  bool has_value() const { return (_has_bits_[0] & 0x00000002u) != 0; }
491  void clear_has_value() { _has_bits_[0] &= ~0x00000002u; }
492 
493  public:
494  inline Arena* GetArena() const { return Base::GetArena(); }
495 
496  public: // Needed for constructing tables
500 
501  private:
504  typedef void DestructorSkippable_;
505  template <typename C, typename K, typename V, WireFormatLite::FieldType,
507  friend class internal::MapEntry;
508  template <typename C, typename K, typename V, WireFormatLite::FieldType,
511 
513 };
514 
515 template <typename T, typename Key, typename Value,
516  WireFormatLite::FieldType kKeyFieldType,
517  WireFormatLite::FieldType kValueFieldType>
518 class MapEntryLite : public MapEntryImpl<T, MessageLite, Key, Value,
519  kKeyFieldType, kValueFieldType> {
520  public:
521  typedef MapEntryImpl<T, MessageLite, Key, Value, kKeyFieldType,
522  kValueFieldType>
524  constexpr MapEntryLite() {}
527  MessageLite::_internal_metadata_.template Delete<std::string>();
528  }
529  void MergeFrom(const MapEntryLite& other) { MergeFromInternal(other); }
530 
531  private:
533 };
534 // The completely unprincipled and unwieldy use of template parameters in
535 // the map code necessitates wrappers to make the code a little bit more
536 // manageable.
537 template <typename Derived>
538 struct DeconstructMapEntry;
539 
540 template <typename T, typename K, typename V, WireFormatLite::FieldType key,
543  typedef K Key;
544  typedef V Value;
545  static const WireFormatLite::FieldType kKeyFieldType = key;
546  static const WireFormatLite::FieldType kValueFieldType = value;
547 };
548 
549 // Helpers for deterministic serialization =============================
550 
551 // This struct can be used with any generic sorting algorithm. If the Key
552 // type is relatively small and easy to copy then copying Keys into an
553 // array of SortItems can be beneficial. Then all the data the sorting
554 // algorithm needs to touch is in that one array.
555 template <typename Key, typename PtrToKeyValuePair>
556 struct SortItem {
557  SortItem() {}
558  explicit SortItem(PtrToKeyValuePair p) : first(p->first), second(p) {}
559 
560  Key first;
561  PtrToKeyValuePair second;
562 };
563 
564 template <typename T>
565 struct CompareByFirstField {
566  bool operator()(const T& a, const T& b) const { return a.first < b.first; }
567 };
568 
569 template <typename T>
570 struct CompareByDerefFirst {
571  bool operator()(const T& a, const T& b) const { return a->first < b->first; }
572 };
573 
574 // Helper for table driven serialization
575 
576 template <WireFormatLite::FieldType FieldType>
577 struct FromHelper {
578  template <typename T>
579  static const T& From(const T& x) {
580  return x;
581  }
582 };
583 
584 template <>
585 struct FromHelper<WireFormatLite::TYPE_STRING> {
586  static ArenaStringPtr From(const std::string& x) {
587  ArenaStringPtr res;
589  ptr.Set(const_cast<std::string*>(&x));
591  return res;
592  }
593 };
594 template <>
595 struct FromHelper<WireFormatLite::TYPE_BYTES> {
596  static ArenaStringPtr From(const std::string& x) {
597  ArenaStringPtr res;
599  ptr.Set(const_cast<std::string*>(&x));
601  return res;
602  }
603 };
604 template <>
605 struct FromHelper<WireFormatLite::TYPE_MESSAGE> {
606  template <typename T>
607  static T* From(const T& x) {
608  return const_cast<T*>(&x);
609  }
610 };
611 
612 template <typename MapEntryType>
613 struct MapEntryHelper;
614 
615 template <typename T, typename Key, typename Value,
616  WireFormatLite::FieldType kKeyFieldType,
617  WireFormatLite::FieldType kValueFieldType>
619  MapEntryLite<T, Key, Value, kKeyFieldType, kValueFieldType> > {
620  // Provide utilities to parse/serialize key/value. Provide utilities to
621  // manipulate internal stored type.
624 
625  // Define internal memory layout. Strings and messages are stored as
626  // pointers, while other types are stored as values.
627  typedef typename KeyTypeHandler::TypeOnMemory KeyOnMemory;
628  typedef typename ValueTypeHandler::TypeOnMemory ValueOnMemory;
629 
630  explicit MapEntryHelper(const MapPair<Key, Value>& map_pair)
631  : _has_bits_(3),
632  _cached_size_(2 + KeyTypeHandler::GetCachedSize(map_pair.first) +
633  ValueTypeHandler::GetCachedSize(map_pair.second)),
634  key_(FromHelper<kKeyFieldType>::From(map_pair.first)),
635  value_(FromHelper<kValueFieldType>::From(map_pair.second)) {}
636 
637  // Purposely not following the style guide naming. These are the names
638  // the proto compiler would generate given the map entry descriptor.
639  // The proto compiler generates the offsets in this struct as if this was
640  // a regular message. This way the table driven code barely notices it's
641  // dealing with a map field.
642  uint32_t _has_bits_; // NOLINT
644  KeyOnMemory key_; // NOLINT
646 };
647 
648 } // namespace internal
649 } // namespace protobuf
650 } // namespace google
651 
652 #include <google/protobuf/port_undef.inc>
653 
654 #endif // GOOGLE_PROTOBUF_MAP_ENTRY_LITE_H__
google::protobuf.internal::MapIf
Definition: bloaty/third_party/protobuf/src/google/protobuf/map_type_handler.h:50
google::protobuf.internal::MapEntryHelper< MapEntryLite< T, Key, Value, kKeyFieldType, kValueFieldType > >::KeyTypeHandler
MapTypeHandler< kKeyFieldType, Key > KeyTypeHandler
Definition: protobuf/src/google/protobuf/map_entry_lite.h:622
google::protobuf.internal::MapEntryFuncs::kKeyFieldNumber
static const int kKeyFieldNumber
Definition: bloaty/third_party/protobuf/src/google/protobuf/map_entry_lite.h:111
ptr
char * ptr
Definition: abseil-cpp/absl/base/internal/low_level_alloc_test.cc:45
google::protobuf.internal::ReadTag
const char * ReadTag(const char *p, uint32 *out, uint32 max_tag=0)
Definition: bloaty/third_party/protobuf/src/google/protobuf/parse_context.h:494
_gevent_test_main.result
result
Definition: _gevent_test_main.py:96
google::protobuf.internal::MapEntryImpl::InternalArenaConstructable_
void InternalArenaConstructable_
Definition: protobuf/src/google/protobuf/map_entry_lite.h:503
google::protobuf.internal::MapEntryImpl::GetCachedSize
int GetCachedSize() const override
Definition: protobuf/src/google/protobuf/map_entry_lite.h:274
google::protobuf.internal::MapEntryImpl::kEntryValueFieldType
static const WireFormatLite::FieldType kEntryValueFieldType
Definition: bloaty/third_party/protobuf/src/google/protobuf/map_entry_lite.h:186
Arena
struct Arena Arena
Definition: third_party/bloaty/third_party/protobuf/src/google/protobuf/arena.h:189
google::protobuf.internal::GetArena
Arena * GetArena(MessageLite *msg, int64 arena_offset)
Definition: bloaty/third_party/protobuf/src/google/protobuf/generated_message_table_driven_lite.h:86
google::protobuf.internal::SortItem::SortItem
SortItem()
Definition: protobuf/src/google/protobuf/map_entry_lite.h:557
google::protobuf::value
const Descriptor::ReservedRange value
Definition: bloaty/third_party/protobuf/src/google/protobuf/descriptor.h:1954
google::protobuf.internal::MapEntryImpl::mutable_value
ValueMapEntryAccessorType * mutable_value()
Definition: protobuf/src/google/protobuf/map_entry_lite.h:214
google::protobuf.internal::MoveHelper
Definition: bloaty/third_party/protobuf/src/google/protobuf/map_entry_lite.h:76
ctx
Definition: benchmark-async.c:30
metadata
Definition: cq_verifier.cc:48
google::protobuf.internal::MapEntryImpl::Parser::entry_value
const Value & entry_value() const
Definition: protobuf/src/google/protobuf/map_entry_lite.h:441
google::protobuf.internal::MapFieldLite
Definition: third_party/bloaty/third_party/protobuf/src/google/protobuf/map.h:73
google::protobuf.internal::MapEntryImpl::clear_has_key
void clear_has_key()
Definition: bloaty/third_party/protobuf/src/google/protobuf/map_entry_lite.h:510
google::protobuf.internal::MapEntryImpl::MapEntryImpl
constexpr MapEntryImpl()
Definition: protobuf/src/google/protobuf/map_entry_lite.h:185
google::protobuf.internal::FromHelper::From
static const T & From(const T &x)
Definition: protobuf/src/google/protobuf/map_entry_lite.h:579
false
#define false
Definition: setup_once.h:323
C
#define C(x)
Definition: abseil-cpp/absl/hash/internal/city_test.cc:49
google::protobuf.internal::MapField
Definition: third_party/bloaty/third_party/protobuf/src/google/protobuf/map.h:78
google::protobuf.internal::MapEntryImpl
Definition: bloaty/third_party/protobuf/src/google/protobuf/map_entry_lite.h:147
google::protobuf.internal::MapEntryImpl::ValueTypeHandler
MapTypeHandler< kValueFieldType, Value > ValueTypeHandler
Definition: protobuf/src/google/protobuf/map_entry_lite.h:152
google::protobuf.internal::MapEntryLite::~MapEntryLite
~MapEntryLite()
Definition: protobuf/src/google/protobuf/map_entry_lite.h:526
google::protobuf.internal::MapEntryLite::MergeFrom
void MergeFrom(const MapEntryLite &other)
Definition: protobuf/src/google/protobuf/map_entry_lite.h:529
google::protobuf.internal::MapEntryHelper< MapEntryLite< T, Key, Value, kKeyFieldType, kValueFieldType > >::key_
KeyOnMemory key_
Definition: protobuf/src/google/protobuf/map_entry_lite.h:644
google::protobuf.internal::MapEntryImpl::has_key
bool has_key() const
Definition: bloaty/third_party/protobuf/src/google/protobuf/map_entry_lite.h:509
google::protobuf.internal::MapEntryHelper< MapEntryLite< T, Key, Value, kKeyFieldType, kValueFieldType > >::_has_bits_
uint32_t _has_bits_
Definition: protobuf/src/google/protobuf/map_entry_lite.h:642
google::protobuf.internal::MapEntryImpl::Parser::value
const Value & value() const
Definition: protobuf/src/google/protobuf/map_entry_lite.h:438
google::protobuf.internal::ArenaStringPtr::UnsafeSetTaggedPointer
void UnsafeSetTaggedPointer(TaggedPtr< ::std::string > value)
Definition: bloaty/third_party/protobuf/src/google/protobuf/arenastring.h:357
google::protobuf.internal::MapEntryImpl::Clear
void Clear() override
Definition: protobuf/src/google/protobuf/map_entry_lite.h:314
google::protobuf.internal::UnknownFieldParse
const char * UnknownFieldParse(uint32 tag, std::string *unknown, const char *ptr, ParseContext *ctx)
Definition: bloaty/third_party/protobuf/src/google/protobuf/parse_context.cc:606
google::protobuf.internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED
@ WIRETYPE_LENGTH_DELIMITED
Definition: bloaty/third_party/protobuf/src/google/protobuf/wire_format_lite.h:104
Arena
Definition: arena.c:39
google::protobuf.internal::MapEntryImpl::set_has_value
void set_has_value()
Definition: bloaty/third_party/protobuf/src/google/protobuf/map_entry_lite.h:511
testing::internal::string
::std::string string
Definition: bloaty/third_party/protobuf/third_party/googletest/googletest/include/gtest/internal/gtest-port.h:881
google::protobuf.internal::MapEntryLite::GOOGLE_DISALLOW_EVIL_CONSTRUCTORS
GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(MapEntryLite)
google::protobuf.internal::FromHelper< WireFormatLite::TYPE_MESSAGE >::From
static T * From(const T &x)
Definition: protobuf/src/google/protobuf/map_entry_lite.h:607
google::protobuf.internal::ParseContext
Definition: bloaty/third_party/protobuf/src/google/protobuf/parse_context.h:336
google::protobuf.internal::MapEntryLite::MapEntryLite
constexpr MapEntryLite()
Definition: protobuf/src/google/protobuf/map_entry_lite.h:524
u
OPENSSL_EXPORT pem_password_cb void * u
Definition: pem.h:351
google::protobuf
Definition: bloaty/third_party/protobuf/benchmarks/util/data_proto2_to_proto3_util.h:12
google::protobuf.internal::MapEntryImpl::_InternalSerialize
::uint8_t * _InternalSerialize(::uint8_t *ptr, io::EpsCopyOutputStream *stream) const override
Definition: protobuf/src/google/protobuf/map_entry_lite.h:266
google::protobuf.internal::MapEntryFuncs::kValueFieldNumber
static const int kValueFieldNumber
Definition: bloaty/third_party/protobuf/src/google/protobuf/map_entry_lite.h:112
a
int a
Definition: abseil-cpp/absl/container/internal/hash_policy_traits_test.cc:88
google::protobuf.internal::MapEntryImpl::Parser::mf_
MapField *const mf_
Definition: bloaty/third_party/protobuf/src/google/protobuf/map_entry_lite.h:500
google::protobuf::MessageLite
Definition: bloaty/third_party/protobuf/src/google/protobuf/message_lite.h:184
second
StrT second
Definition: cxa_demangle.cpp:4885
uint8_t
unsigned char uint8_t
Definition: stdint-msvc2008.h:78
google::protobuf.internal::MapEntryLite
Definition: bloaty/third_party/protobuf/src/google/protobuf/map_entry_lite.h:541
google::protobuf.internal::MapEntryImpl::Parser::map_
Map *const map_
Definition: bloaty/third_party/protobuf/src/google/protobuf/map_entry_lite.h:501
T
#define T(upbtypeconst, upbtype, ctype, default_value)
true
#define true
Definition: setup_once.h:324
arena
grpc_core::ScopedArenaPtr arena
Definition: binder_transport_test.cc:237
google::protobuf.internal::MapEntryImpl::CheckTypeAndMergeFrom
void CheckTypeAndMergeFrom(const MessageLite &other) override
Definition: protobuf/src/google/protobuf/map_entry_lite.h:226
google::protobuf.internal::MapEntryImpl::ByteSizeLong
size_t ByteSizeLong() const override
Definition: protobuf/src/google/protobuf/map_entry_lite.h:259
uint32_t
unsigned int uint32_t
Definition: stdint-msvc2008.h:80
google::protobuf.internal::MapEntryLite::SuperType
MapEntryImpl< T, MessageLite, Key, Value, kKeyFieldType, kValueFieldType > SuperType
Definition: protobuf/src/google/protobuf/map_entry_lite.h:523
from
size_t from
Definition: abseil-cpp/absl/container/internal/layout_test.cc:1384
google::protobuf::io::EpsCopyOutputStream
Definition: bloaty/third_party/protobuf/src/google/protobuf/io/coded_stream.h:651
google::protobuf.internal::MapEntryImpl::kKeyFieldNumber
static const int kKeyFieldNumber
Definition: bloaty/third_party/protobuf/src/google/protobuf/map_entry_lite.h:169
google::protobuf.internal::MapEntryImpl::kValueFieldNumber
static const int kValueFieldNumber
Definition: bloaty/third_party/protobuf/src/google/protobuf/map_entry_lite.h:170
google::protobuf.internal::MapEntryImpl::Parser::ReadBeyondKeyValuePair
bool ReadBeyondKeyValuePair(io::CodedInputStream *input) PROTOBUF_COLD
Definition: bloaty/third_party/protobuf/src/google/protobuf/map_entry_lite.h:479
google::protobuf.internal::MapEntryImpl::GetTypeName
std::string GetTypeName() const override
Definition: protobuf/src/google/protobuf/map_entry_lite.h:224
google::protobuf.internal::MapEntryImpl::Parser::UseKeyAndValueFromEntry
void UseKeyAndValueFromEntry()
Definition: bloaty/third_party/protobuf/src/google/protobuf/map_entry_lite.h:466
google::protobuf.internal::MapEntryHelper< MapEntryLite< T, Key, Value, kKeyFieldType, kValueFieldType > >::value_
ValueOnMemory value_
Definition: protobuf/src/google/protobuf/map_entry_lite.h:645
google::protobuf.internal::MapEntryImpl::~MapEntryImpl
~MapEntryImpl()
Definition: protobuf/src/google/protobuf/map_entry_lite.h:196
google::protobuf.internal::MoveHelper< true, is_message, is_stringlike, T >::Move
static void Move(T *src, T *dest)
Definition: protobuf/src/google/protobuf/map_entry_lite.h:82
absl::move
constexpr absl::remove_reference_t< T > && move(T &&t) noexcept
Definition: abseil-cpp/absl/utility/utility.h:221
testing::internal::posix::Read
int Read(int fd, void *buf, unsigned int count)
Definition: bloaty/third_party/googletest/googletest/include/gtest/internal/gtest-port.h:2044
tag
static void * tag(intptr_t t)
Definition: bad_client.cc:318
google::protobuf.internal::MapEntryImpl::clear_has_value
void clear_has_value()
Definition: bloaty/third_party/protobuf/src/google/protobuf/map_entry_lite.h:513
google::protobuf.internal::SortItem
Definition: bloaty/third_party/protobuf/src/google/protobuf/map_entry_lite.h:578
GOOGLE_PROTOBUF_PARSER_ASSERT
#define GOOGLE_PROTOBUF_PARSER_ASSERT(predicate)
Definition: bloaty/third_party/protobuf/src/google/protobuf/parse_context.h:660
google::protobuf.internal::DeconstructMapEntry< MapEntryLite< T, K, V, key, value > >::Key
K Key
Definition: protobuf/src/google/protobuf/map_entry_lite.h:543
google::protobuf.internal::MapEntryImpl::Parser::KeyMover
MoveHelper< KeyTypeHandler::kIsEnum, KeyTypeHandler::kIsMessage, KeyTypeHandler::kWireType==WireFormatLite::WIRETYPE_LENGTH_DELIMITED, Key > KeyMover
Definition: protobuf/src/google/protobuf/map_entry_lite.h:471
google::protobuf.internal::MapEntryImpl::MergeFromInternal
void MergeFromInternal(const MapEntryImpl &from)
Definition: bloaty/third_party/protobuf/src/google/protobuf/map_entry_lite.h:313
google::protobuf.internal::WriteLengthDelimited
void WriteLengthDelimited(uint32 num, StringPiece val, std::string *s)
Definition: bloaty/third_party/protobuf/src/google/protobuf/parse_context.cc:334
google::protobuf.internal::MapEntryHelper< MapEntryLite< T, Key, Value, kKeyFieldType, kValueFieldType > >::KeyOnMemory
KeyTypeHandler::TypeOnMemory KeyOnMemory
Definition: protobuf/src/google/protobuf/map_entry_lite.h:627
google::protobuf.internal::MapEntryImpl::kKeyTag
static const uint8 kKeyTag
Definition: bloaty/third_party/protobuf/src/google/protobuf/map_entry_lite.h:173
google::protobuf.internal::MapEntryImpl::Parser::NewEntry
MapEntryImpl * NewEntry()
Definition: bloaty/third_party/protobuf/src/google/protobuf/map_entry_lite.h:457
google::protobuf.internal::MapEntryFuncs::GetCachedSize
static int GetCachedSize(const Key &key, const Value &value)
Definition: bloaty/third_party/protobuf/src/google/protobuf/map_entry_lite.h:134
google::protobuf.internal::MapEntryImpl::GOOGLE_DISALLOW_EVIL_CONSTRUCTORS
GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(MapEntryImpl)
google::protobuf.internal::MapTypeHandler
Definition: bloaty/third_party/protobuf/src/google/protobuf/map_type_handler.h:144
google::protobuf::io::CodedOutputStream::VarintSize32
static size_t VarintSize32(uint32 value)
Definition: bloaty/third_party/protobuf/src/google/protobuf/io/coded_stream.h:1654
google::protobuf.internal::MapEntryFuncs::InternalSerialize
static uint8_t * InternalSerialize(int field_number, const Key &key, const Value &value, uint8_t *ptr, io::EpsCopyOutputStream *stream)
Definition: protobuf/src/google/protobuf/map_entry_lite.h:110
google::protobuf.internal::InternalMetadata
Definition: protobuf/src/google/protobuf/metadata_lite.h:62
google::protobuf.internal::MapEntryFuncs::ValueTypeHandler
MapTypeHandler< kValueFieldType, Value > ValueTypeHandler
Definition: protobuf/src/google/protobuf/map_entry_lite.h:106
google::protobuf.internal::MapEntryImpl::KeyOnMemory
KeyTypeHandler::TypeOnMemory KeyOnMemory
Definition: protobuf/src/google/protobuf/map_entry_lite.h:156
google::protobuf.internal::MapEntryImpl::kValueTag
static const uint8 kValueTag
Definition: bloaty/third_party/protobuf/src/google/protobuf/map_entry_lite.h:175
x
int x
Definition: bloaty/third_party/googletest/googlemock/test/gmock-matchers_test.cc:3610
key_
RlsLb::RequestKey key_
Definition: rls.cc:659
google::protobuf.internal::MapEntryImpl::has_value
bool has_value() const
Definition: bloaty/third_party/protobuf/src/google/protobuf/map_entry_lite.h:512
google::protobuf.internal::WireFormatLite::FieldType
FieldType
Definition: bloaty/third_party/protobuf/src/google/protobuf/wire_format_lite.h:111
google::protobuf.internal::MapEntryImpl::GetArena
Arena * GetArena() const
Definition: protobuf/src/google/protobuf/map_entry_lite.h:494
data
char data[kBufferLength]
Definition: abseil-cpp/absl/strings/internal/str_format/float_conversion.cc:1006
google::protobuf.internal::CompareByFirstField::operator()
bool operator()(const T &a, const T &b) const
Definition: protobuf/src/google/protobuf/map_entry_lite.h:566
google::protobuf.internal::MapEntryFuncs
Definition: bloaty/third_party/protobuf/src/google/protobuf/map_entry_lite.h:108
google::protobuf.internal::MapEntryHelper< MapEntryLite< T, Key, Value, kKeyFieldType, kValueFieldType > >::_cached_size_
uint32_t _cached_size_
Definition: protobuf/src/google/protobuf/map_entry_lite.h:643
google::protobuf.internal::MapEntryImpl::Parser::entry_
MapEntryImpl * entry_
Definition: bloaty/third_party/protobuf/src/google/protobuf/map_entry_lite.h:504
b
uint64_t b
Definition: abseil-cpp/absl/container/internal/layout_test.cc:53
google::protobuf.internal::MapEntryImpl::kEntryKeyFieldType
static const WireFormatLite::FieldType kEntryKeyFieldType
Definition: bloaty/third_party/protobuf/src/google/protobuf/map_entry_lite.h:185
google::protobuf.internal.python_message.ByteSize
ByteSize
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/python_message.py:1067
google::protobuf.text_format.Merge
def Merge(text, message, allow_unknown_extension=False, allow_field_number=False, descriptor_pool=None, allow_unknown_field=False)
Definition: bloaty/third_party/protobuf/python/google/protobuf/text_format.py:659
google::protobuf::Map::size_type
size_t size_type
Definition: third_party/bloaty/third_party/protobuf/src/google/protobuf/map.h:140
tests.qps.qps_worker.dest
dest
Definition: qps_worker.py:45
grpc_core::ValidateValue
void ValidateValue(const Json &actual, const Json &expected)
Definition: json_test.cc:55
google::protobuf.internal::FromHelper< WireFormatLite::TYPE_BYTES >::From
static ArenaStringPtr From(const std::string &x)
Definition: protobuf/src/google/protobuf/map_entry_lite.h:596
google::protobuf.internal::MapEntryImpl::kTagSize
static const size_t kTagSize
Definition: bloaty/third_party/protobuf/src/google/protobuf/map_entry_lite.h:177
google::protobuf.internal::MapEntryImpl::ValueMapEntryAccessorType
ValueTypeHandler::MapEntryAccessorType ValueMapEntryAccessorType
Definition: protobuf/src/google/protobuf/map_entry_lite.h:163
google::protobuf.internal::MapEntryImpl::value
virtual const ValueMapEntryAccessorType & value() const
Definition: protobuf/src/google/protobuf/map_entry_lite.h:207
google::protobuf.internal::MapEntryImpl::New
Base * New(Arena *arena) const override
Definition: protobuf/src/google/protobuf/map_entry_lite.h:289
google::protobuf.internal::MapEntryImpl::IsInitialized
bool IsInitialized() const override
Definition: protobuf/src/google/protobuf/map_entry_lite.h:285
google::protobuf.internal::MapEntryImpl::Parser::key
const Key & key() const
Definition: protobuf/src/google/protobuf/map_entry_lite.h:437
google::protobuf.internal::MapEntryImpl::Funcs
MapEntryFuncs< Key, Value, kKeyFieldType, kValueFieldType > Funcs
Definition: protobuf/src/google/protobuf/map_entry_lite.h:146
google::protobuf.internal::MapEntryImpl::value_
ValueOnMemory value_
Definition: bloaty/third_party/protobuf/src/google/protobuf/map_entry_lite.h:520
google::protobuf.internal::MapEntryHelper< MapEntryLite< T, Key, Value, kKeyFieldType, kValueFieldType > >::MapEntryHelper
MapEntryHelper(const MapPair< Key, Value > &map_pair)
Definition: protobuf/src/google/protobuf/map_entry_lite.h:630
google::protobuf.internal::MapEntryImpl::KeyMapEntryAccessorType
KeyTypeHandler::MapEntryAccessorType KeyMapEntryAccessorType
Definition: protobuf/src/google/protobuf/map_entry_lite.h:161
value_
int value_
Definition: orphanable_test.cc:38
google::protobuf.internal::SortItem::SortItem
SortItem(PtrToKeyValuePair p)
Definition: protobuf/src/google/protobuf/map_entry_lite.h:558
google::protobuf.internal::MapEntryImpl::Parser::ValueMover
MoveHelper< ValueTypeHandler::kIsEnum, ValueTypeHandler::kIsMessage, ValueTypeHandler::kWireType==WireFormatLite::WIRETYPE_LENGTH_DELIMITED, Value > ValueMover
Definition: protobuf/src/google/protobuf/map_entry_lite.h:476
google::protobuf.internal::MapEntry
Definition: bloaty/third_party/protobuf/src/google/protobuf/map_entry.h:95
google::protobuf.internal::WireFormatLite::GetTagWireType
static WireType GetTagWireType(uint32 tag)
Definition: bloaty/third_party/protobuf/src/google/protobuf/wire_format_lite.h:788
google::protobuf.internal::MapEntryImpl::Parser::entry_key
const Key & entry_key() const
Definition: protobuf/src/google/protobuf/map_entry_lite.h:440
google::protobuf.internal::MoveHelper< false, false, true, T >::Move
static void Move(T *src, T *dest)
Definition: protobuf/src/google/protobuf/map_entry_lite.h:95
google::protobuf.internal::MapEntryImpl::Parser::MergePartialFromCodedStream
bool MergePartialFromCodedStream(io::CodedInputStream *input)
Definition: protobuf/src/google/protobuf/map_entry_lite.h:335
key
const char * key
Definition: hpack_parser_table.cc:164
testing::internal::posix::Write
int Write(int fd, const void *buf, unsigned int count)
Definition: bloaty/third_party/googletest/googletest/include/gtest/internal/gtest-port.h:2047
google::protobuf.internal::TaggedPtr< std::string >
google::protobuf.internal.python_message.Clear
Clear
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/python_message.py:1430
google::protobuf.internal::MoveHelper< false, true, is_stringlike, T >::Move
static void Move(T *src, T *dest)
Definition: protobuf/src/google/protobuf/map_entry_lite.h:90
google::protobuf.internal::MapEntryImpl::Parser::value_ptr_
Value * value_ptr_
Definition: bloaty/third_party/protobuf/src/google/protobuf/map_entry_lite.h:503
google::protobuf.internal::MapEntryFuncs::ByteSizeLong
static size_t ByteSizeLong(const Key &key, const Value &value)
Definition: protobuf/src/google/protobuf/map_entry_lite.h:123
google::protobuf.internal::MapEntryHelper< MapEntryLite< T, Key, Value, kKeyFieldType, kValueFieldType > >::ValueOnMemory
ValueTypeHandler::TypeOnMemory ValueOnMemory
Definition: protobuf/src/google/protobuf/map_entry_lite.h:628
testing::Key
internal::KeyMatcher< M > Key(M inner_matcher)
Definition: cares/cares/test/gmock-1.8.0/gmock/gmock.h:9141
google::protobuf.internal::MapEntryImpl::MapEntryImpl
MapEntryImpl(Arena *arena)
Definition: protobuf/src/google/protobuf/map_entry_lite.h:190
google::protobuf.internal::MapField::NewEntry
EntryType * NewEntry() const
Definition: bloaty/third_party/protobuf/src/google/protobuf/map_field.h:273
first
StrT first
Definition: cxa_demangle.cpp:4884
google::protobuf.internal::MoveHelper::Move
static void Move(T *src, T *dest)
Definition: protobuf/src/google/protobuf/map_entry_lite.h:77
google::protobuf.internal::MapEntryImpl::Parser::_InternalParse
const char * _InternalParse(const char *ptr, ParseContext *ctx)
Definition: protobuf/src/google/protobuf/map_entry_lite.h:377
google::protobuf.internal::FromHelper
Definition: bloaty/third_party/protobuf/src/google/protobuf/map_entry_lite.h:599
google::protobuf::io::CodedInputStream
Definition: bloaty/third_party/protobuf/src/google/protobuf/io/coded_stream.h:180
google::protobuf.internal::MapEntryHelper
Definition: bloaty/third_party/protobuf/src/google/protobuf/map_entry_lite.h:635
google::protobuf::MessageLite::_internal_metadata_
internal::InternalMetadata _internal_metadata_
Definition: protobuf/src/google/protobuf/message_lite.h:445
google::protobuf.internal::MapEntryImpl::Parser::key_
Key key_
Definition: bloaty/third_party/protobuf/src/google/protobuf/map_entry_lite.h:502
google::protobuf.internal::MapEntryImpl::_has_bits_
uint32 _has_bits_[1]
Definition: bloaty/third_party/protobuf/src/google/protobuf/map_entry_lite.h:522
google::protobuf.internal::MoveHelper< true, is_message, is_stringlike, T >::Move
static void Move(T *src, int *dest)
Definition: protobuf/src/google/protobuf/map_entry_lite.h:84
google::protobuf::Map::size
size_type size() const
Definition: third_party/bloaty/third_party/protobuf/src/google/protobuf/map.h:1045
google::protobuf.internal.python_message.IsInitialized
IsInitialized
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/python_message.py:1245
input
std::string input
Definition: bloaty/third_party/protobuf/src/google/protobuf/io/tokenizer_unittest.cc:197
google::protobuf.internal::MapEntryImpl::Parser::ParseWithEnumValidation
const char * ParseWithEnumValidation(const char *ptr, ParseContext *ctx, bool(*is_valid)(int), uint32_t field_num, InternalMetadata *metadata)
Definition: protobuf/src/google/protobuf/map_entry_lite.h:419
google::protobuf::MessageLite::MessageLite
MessageLite()
Definition: bloaty/third_party/protobuf/src/google/protobuf/message_lite.h:186
google::protobuf.internal::MapEntryImpl::_InternalParse
const char * _InternalParse(const char *ptr, ParseContext *ctx) final
Definition: protobuf/src/google/protobuf/map_entry_lite.h:230
google::protobuf.internal::MapEntryImpl::Parser::~Parser
~Parser()
Definition: protobuf/src/google/protobuf/map_entry_lite.h:327
google::protobuf::io::CodedOutputStream::WriteVarint32ToArray
static uint8 * WriteVarint32ToArray(uint32 value, uint8 *target)
Definition: bloaty/third_party/protobuf/src/google/protobuf/io/coded_stream.h:1586
google::protobuf.internal::MapEntryImpl::Parser::Parser
Parser(MapField *mf)
Definition: protobuf/src/google/protobuf/map_entry_lite.h:326
google::protobuf.internal::WireFormatLite::WIRETYPE_END_GROUP
@ WIRETYPE_END_GROUP
Definition: bloaty/third_party/protobuf/src/google/protobuf/wire_format_lite.h:106
google::protobuf.internal::MapEntryLite::MapEntryLite
MapEntryLite(Arena *arena)
Definition: protobuf/src/google/protobuf/map_entry_lite.h:525
google::protobuf::Map
Definition: third_party/bloaty/third_party/protobuf/src/google/protobuf/arena.h:79
google::protobuf.internal::MapEntryFuncs::KeyTypeHandler
MapTypeHandler< kKeyFieldType, Key > KeyTypeHandler
Definition: protobuf/src/google/protobuf/map_entry_lite.h:105
internal
Definition: benchmark/test/output_test_helper.cc:20
google::protobuf.internal::MoveHelper< true, is_message, is_stringlike, T >::Move
static void Move(int *src, T *dest)
Definition: protobuf/src/google/protobuf/map_entry_lite.h:85
google::protobuf.internal::MapEntryImpl::EntryKeyType
Key EntryKeyType
Definition: protobuf/src/google/protobuf/map_entry_lite.h:180
google::protobuf.internal::MapEntryImpl::mutable_key
KeyMapEntryAccessorType * mutable_key()
Definition: protobuf/src/google/protobuf/map_entry_lite.h:210
google::protobuf::Map::erase
size_type erase(const key_type &key)
Definition: third_party/bloaty/third_party/protobuf/src/google/protobuf/map.h:1123
google::protobuf.internal::MapEntryImpl::ValueOnMemory
ValueTypeHandler::TypeOnMemory ValueOnMemory
Definition: protobuf/src/google/protobuf/map_entry_lite.h:157
google::protobuf.internal::WireFormatLite::WriteTagToArray
static PROTOBUF_ALWAYS_INLINE uint8 * WriteTagToArray(int field_number, WireType type, uint8 *target)
Definition: bloaty/third_party/protobuf/src/google/protobuf/wire_format_lite.h:1373
google::protobuf.internal::MapEntryImpl::MapEntryHasMergeTypeTrait
void MapEntryHasMergeTypeTrait
Definition: protobuf/src/google/protobuf/map_entry_lite.h:178
google::protobuf.internal::DeconstructMapEntry< MapEntryLite< T, K, V, key, value > >::Value
V Value
Definition: protobuf/src/google/protobuf/map_entry_lite.h:544
Value
struct Value Value
Definition: bloaty/third_party/protobuf/php/ext/google/protobuf/protobuf.h:676
google::protobuf.internal::FromHelper< WireFormatLite::TYPE_STRING >::From
static ArenaStringPtr From(const std::string &x)
Definition: protobuf/src/google/protobuf/map_entry_lite.h:586
size
voidpf void uLong size
Definition: bloaty/third_party/zlib/contrib/minizip/ioapi.h:136
google::protobuf.internal::MapEntryImpl::key_
KeyOnMemory key_
Definition: bloaty/third_party/protobuf/src/google/protobuf/map_entry_lite.h:519
google::protobuf.internal::MapEntryImpl::KeyTypeHandler
MapTypeHandler< kKeyFieldType, Key > KeyTypeHandler
Definition: protobuf/src/google/protobuf/map_entry_lite.h:151
google::protobuf.internal::WireFormatLite
Definition: bloaty/third_party/protobuf/src/google/protobuf/wire_format_lite.h:84
google::protobuf.internal::MapEntryHelper< MapEntryLite< T, Key, Value, kKeyFieldType, kValueFieldType > >::ValueTypeHandler
MapTypeHandler< kValueFieldType, Value > ValueTypeHandler
Definition: protobuf/src/google/protobuf/map_entry_lite.h:623
google::protobuf.internal::MapEntryImpl::set_has_key
void set_has_key()
Definition: bloaty/third_party/protobuf/src/google/protobuf/map_entry_lite.h:508
google::protobuf.internal::DeconstructMapEntry
Definition: bloaty/third_party/protobuf/src/google/protobuf/map_entry_lite.h:559
google::protobuf.internal::MapEntryImpl::EntryType
Derived EntryType
Definition: protobuf/src/google/protobuf/map_entry_lite.h:179
google::protobuf.internal::CompareByDerefFirst::operator()
bool operator()(const T &a, const T &b) const
Definition: protobuf/src/google/protobuf/map_entry_lite.h:571
google
Definition: bloaty/third_party/protobuf/benchmarks/util/data_proto2_to_proto3_util.h:11
google::protobuf.internal::ArenaStringPtr
Definition: bloaty/third_party/protobuf/src/google/protobuf/arenastring.h:74
google::protobuf.internal::MapEntryImpl::EntryValueType
Value EntryValueType
Definition: protobuf/src/google/protobuf/map_entry_lite.h:181
google::protobuf.internal::SortItem::first
Key first
Definition: bloaty/third_party/protobuf/src/google/protobuf/map_entry_lite.h:582
GOOGLE_PROTOBUF_WIRE_FORMAT_MAKE_TAG
#define GOOGLE_PROTOBUF_WIRE_FORMAT_MAKE_TAG(FIELD_NUMBER, TYPE)
Definition: bloaty/third_party/protobuf/src/google/protobuf/wire_format_lite.h:202
google::protobuf.internal::MapEntryImpl::key
virtual const KeyMapEntryAccessorType & key() const
Definition: protobuf/src/google/protobuf/map_entry_lite.h:204
google::protobuf::MapPair
Definition: third_party/bloaty/third_party/protobuf/src/google/protobuf/map.h:92
google::protobuf.internal::MapEntryImpl::DestructorSkippable_
void DestructorSkippable_
Definition: protobuf/src/google/protobuf/map_entry_lite.h:504
google::protobuf.internal::SortItem::second
PtrToKeyValuePair second
Definition: bloaty/third_party/protobuf/src/google/protobuf/map_entry_lite.h:583
stream
voidpf stream
Definition: bloaty/third_party/zlib/contrib/minizip/ioapi.h:136


grpc
Author(s):
autogenerated on Fri May 16 2025 02:59:19