code size optimization, moved function definition to the source file PiperOrigin-RevId: 490775181
diff --git a/src/google/protobuf/io/coded_stream.cc b/src/google/protobuf/io/coded_stream.cc index 8f08e7b..0ebc0f2 100644 --- a/src/google/protobuf/io/coded_stream.cc +++ b/src/google/protobuf/io/coded_stream.cc
@@ -722,6 +722,13 @@ // CodedOutputStream ================================================= +uint8_t* EpsCopyOutputStream::EnsureSpace(uint8_t* ptr) { + if (PROTOBUF_PREDICT_FALSE(ptr >= end_)) { + return EnsureSpaceFallback(ptr); + } + return ptr; +} + void EpsCopyOutputStream::EnableAliasing(bool enabled) { aliasing_enabled_ = enabled && stream_->AllowsAliasing(); }
diff --git a/src/google/protobuf/io/coded_stream.h b/src/google/protobuf/io/coded_stream.h index 0615941..57a171e 100644 --- a/src/google/protobuf/io/coded_stream.h +++ b/src/google/protobuf/io/coded_stream.h
@@ -674,12 +674,7 @@ // After this it's guaranteed you can safely write kSlopBytes to ptr. This // will never fail! The underlying stream can produce an error. Use HadError // to check for errors. - PROTOBUF_NODISCARD uint8_t* EnsureSpace(uint8_t* ptr) { - if (PROTOBUF_PREDICT_FALSE(ptr >= end_)) { - return EnsureSpaceFallback(ptr); - } - return ptr; - } + PROTOBUF_NODISCARD PROTOBUF_NOINLINE uint8_t* EnsureSpace(uint8_t* ptr); uint8_t* WriteRaw(const void* data, int size, uint8_t* ptr) { if (PROTOBUF_PREDICT_FALSE(end_ - ptr < size)) {