#include <cstdint>
#include <numeric>
#include <google/protobuf/extension_set.h>
#include <google/protobuf/generated_message_tctable_decl.h>
#include <google/protobuf/generated_message_tctable_impl.h>
#include <google/protobuf/inlined_string_field.h>
#include <google/protobuf/message_lite.h>
#include <google/protobuf/parse_context.h>
#include <google/protobuf/wire_format_lite.h>
#include <google/protobuf/port_def.inc>
namespace google {
namespace protobuf {
namespace internal {
FieldEntry;
#ifndef NDEBUG
template void AlignFail<4>(uintptr_t);
template void AlignFail<8>(uintptr_t);
#endif
const char* TcParser::GenericFallbackLite(PROTOBUF_TC_PARAM_DECL) { … }
class TcParser::ScopedArenaSwap final { … };
PROTOBUF_NOINLINE const char* TcParser::ParseLoop(
MessageLite* msg, const char* ptr, ParseContext* ctx,
const TcParseTableBase* table) { … }
inline PROTOBUF_ALWAYS_INLINE const char* TcParser::TagDispatch(
PROTOBUF_TC_PARAM_DECL) { … }
inline PROTOBUF_ALWAYS_INLINE const char* TcParser::ToTagDispatch(
PROTOBUF_TC_PARAM_DECL) { … }
inline PROTOBUF_ALWAYS_INLINE const char* TcParser::ToParseLoop(
PROTOBUF_TC_PARAM_DECL) { … }
inline PROTOBUF_ALWAYS_INLINE const char* TcParser::Error(
PROTOBUF_TC_PARAM_DECL) { … }
static uint32_t FastDecodeTag(uint8_t coded_tag) { … }
static uint32_t FastDecodeTag(uint16_t coded_tag) { … }
struct SkipEntry16 { … };
const TcParseTableBase::FieldEntry* TcParser::FindFieldEntry(
const TcParseTableBase* table, uint32_t field_num) { … }
static StringPiece FindName(const char* name_data, size_t entries,
size_t index) { … }
StringPiece TcParser::MessageName(const TcParseTableBase* table) { … }
StringPiece TcParser::FieldName(const TcParseTableBase* table,
const FieldEntry* field_entry) { … }
const char* TcParser::MiniParse(PROTOBUF_TC_PARAM_DECL) { … }
namespace {
inline void* Offset(void* base, uint32_t offset) { … }
template <WireFormatLite::WireType Wt>
inline PROTOBUF_ALWAYS_INLINE void InvertPacked(TcFieldData& data) { … }
}
template <typename TagType, bool group_coding>
inline PROTOBUF_ALWAYS_INLINE
const char* TcParser::SingularParseMessageAuxImpl(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastMS1(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastMS2(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastGS1(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastGS2(PROTOBUF_TC_PARAM_DECL) { … }
template <typename TagType, bool group_coding>
inline PROTOBUF_ALWAYS_INLINE
const char* TcParser::RepeatedParseMessageAuxImpl(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastMR1(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastMR2(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastGR1(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastGR2(PROTOBUF_TC_PARAM_DECL) { … }
template <typename LayoutType, typename TagType>
PROTOBUF_ALWAYS_INLINE const char* TcParser::SingularFixed(
PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastF32S1(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastF32S2(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastF64S1(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastF64S2(PROTOBUF_TC_PARAM_DECL) { … }
template <typename LayoutType, typename TagType>
PROTOBUF_ALWAYS_INLINE const char* TcParser::RepeatedFixed(
PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastF32R1(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastF32R2(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastF64R1(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastF64R2(PROTOBUF_TC_PARAM_DECL) { … }
template <typename LayoutType, typename TagType>
const char* TcParser::PackedFixed(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastF32P1(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastF32P2(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastF64P1(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastF64P2(PROTOBUF_TC_PARAM_DECL) { … }
namespace {
template <int n>
inline PROTOBUF_ALWAYS_INLINE uint64_t
shift_left_fill_with_ones(uint64_t byte, uint64_t ones) { … }
template <int n>
inline PROTOBUF_ALWAYS_INLINE bool shift_left_fill_with_ones_was_negative(
uint64_t byte, uint64_t ones, int64_t& res) { … }
inline PROTOBUF_ALWAYS_INLINE std::pair<const char*, uint64_t>
Parse64FallbackPair(const char* p, int64_t res1) { … }
inline PROTOBUF_ALWAYS_INLINE const char* ParseVarint(const char* p,
uint64_t* value) { … }
template <typename FieldType, bool zigzag = false>
inline FieldType ZigZagDecodeHelper(uint64_t value) { … }
template <>
inline int32_t ZigZagDecodeHelper<int32_t, true>(uint64_t value) { … }
template <>
inline int64_t ZigZagDecodeHelper<int64_t, true>(uint64_t value) { … }
bool EnumIsValidAux(int32_t val, uint16_t xform_val,
TcParseTableBase::FieldAux aux) { … }
}
template <typename FieldType, typename TagType, bool zigzag>
PROTOBUF_ALWAYS_INLINE const char* TcParser::SingularVarint(
PROTOBUF_TC_PARAM_DECL) { … }
template <typename FieldType, typename TagType, bool zigzag>
PROTOBUF_NOINLINE const char* TcParser::SingularVarBigint(
PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastV8S1(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastV8S2(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastV32S1(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastV32S2(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastV64S1(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastV64S2(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastZ32S1(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastZ32S2(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastZ64S1(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastZ64S2(PROTOBUF_TC_PARAM_DECL) { … }
template <typename FieldType, typename TagType, bool zigzag>
PROTOBUF_ALWAYS_INLINE const char* TcParser::RepeatedVarint(
PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastV8R1(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastV8R2(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastV32R1(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastV32R2(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastV64R1(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastV64R2(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastZ32R1(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastZ32R2(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastZ64R1(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastZ64R2(PROTOBUF_TC_PARAM_DECL) { … }
template <typename FieldType, typename TagType, bool zigzag>
const char* TcParser::PackedVarint(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastV8P1(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastV8P2(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastV32P1(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastV32P2(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastV64P1(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastV64P2(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastZ32P1(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastZ32P2(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastZ64P1(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastZ64P2(PROTOBUF_TC_PARAM_DECL) { … }
PROTOBUF_NOINLINE const char* TcParser::FastUnknownEnumFallback(
PROTOBUF_TC_PARAM_DECL) { … }
template <typename TagType, uint16_t xform_val>
PROTOBUF_ALWAYS_INLINE const char* TcParser::SingularEnum(
PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastErS1(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastErS2(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastEvS1(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastEvS2(PROTOBUF_TC_PARAM_DECL) { … }
template <typename TagType, uint16_t xform_val>
PROTOBUF_ALWAYS_INLINE const char* TcParser::RepeatedEnum(
PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastErR1(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastErR2(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastEvR1(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastEvR2(PROTOBUF_TC_PARAM_DECL) { … }
void PrintUTF8ErrorLog(StringPiece message_name,
StringPiece field_name, const char* operation_str,
bool emit_stacktrace);
void TcParser::ReportFastUtf8Error(uint32_t decoded_tag,
const TcParseTableBase* table) { … }
namespace {
PROTOBUF_NOINLINE
const char* SingularStringParserFallback(ArenaStringPtr* s, const char* ptr,
EpsCopyInputStream* stream) { … }
}
template <typename TagType, TcParser::Utf8Type utf8>
PROTOBUF_ALWAYS_INLINE const char* TcParser::SingularString(
PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastBS1(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastBS2(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastSS1(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastSS2(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastUS1(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastUS2(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastBiS1(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastBiS2(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastSiS1(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastSiS2(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastUiS1(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastUiS2(PROTOBUF_TC_PARAM_DECL) { … }
template <typename TagType, TcParser::Utf8Type utf8>
PROTOBUF_ALWAYS_INLINE const char* TcParser::RepeatedString(
PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastBR1(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastBR2(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastSR1(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastSR2(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastUR1(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::FastUR2(PROTOBUF_TC_PARAM_DECL) { … }
namespace {
inline void SetHas(const TcParseTableBase* table, const FieldEntry& entry,
MessageLite* msg, uint64_t& hasbits) { … }
}
bool TcParser::ChangeOneof(const TcParseTableBase* table,
const TcParseTableBase::FieldEntry& entry,
uint32_t field_num, ParseContext* ctx,
MessageLite* msg) { … }
const char* TcParser::MpFixed(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::MpRepeatedFixed(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::MpPackedFixed(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::MpVarint(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::MpRepeatedVarint(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::MpPackedVarint(PROTOBUF_TC_PARAM_DECL) { … }
bool TcParser::MpVerifyUtf8(StringPiece wire_bytes,
const TcParseTableBase* table,
const FieldEntry& entry, uint16_t xform_val) { … }
const char* TcParser::MpString(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::MpRepeatedString(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::MpMessage(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::MpRepeatedMessage(PROTOBUF_TC_PARAM_DECL) { … }
const char* TcParser::MpMap(PROTOBUF_TC_PARAM_DECL) { … }
}
}
}