|
|
@ -50,8 +50,12 @@ inline bool CodedInputStream::InternalReadStringInline(string* buffer, |
|
|
|
|
|
|
|
|
|
|
|
if (BufferSize() >= size) { |
|
|
|
if (BufferSize() >= size) { |
|
|
|
STLStringResizeUninitialized(buffer, size); |
|
|
|
STLStringResizeUninitialized(buffer, size); |
|
|
|
memcpy(string_as_array(buffer), buffer_, size); |
|
|
|
// When buffer is empty, string_as_array(buffer) will return NULL but memcpy
|
|
|
|
Advance(size); |
|
|
|
// requires non-NULL pointers even when size is 0. Hench this check.
|
|
|
|
|
|
|
|
if (size > 0) { |
|
|
|
|
|
|
|
memcpy(string_as_array(buffer), buffer_, size); |
|
|
|
|
|
|
|
Advance(size); |
|
|
|
|
|
|
|
} |
|
|
|
return true; |
|
|
|
return true; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|