From de3494fe5cbfdb75631bd07877341d56d721730c Mon Sep 17 00:00:00 2001 From: "xiaofeng@google.com" Date: Mon, 25 Feb 2013 10:24:11 +0000 Subject: Fix issue 403, issue 456, issue 462 --- src/google/protobuf/compiler/java/java_service.cc | 6 ++++++ src/google/protobuf/io/coded_stream_inl.h | 8 ++++++-- src/google/protobuf/message.cc | 2 +- 3 files changed, 13 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/google/protobuf/compiler/java/java_service.cc b/src/google/protobuf/compiler/java/java_service.cc index bbd24806..bcd80359 100644 --- a/src/google/protobuf/compiler/java/java_service.cc +++ b/src/google/protobuf/compiler/java/java_service.cc @@ -88,6 +88,12 @@ void ServiceGenerator::Generate(io::Printer* printer) { GenerateStub(printer); GenerateBlockingStub(printer); + // Add an insertion point. + printer->Print( + "\n" + "// @@protoc_insertion_point(class_scope:$full_name$)\n", + "full_name", descriptor_->full_name()); + printer->Outdent(); printer->Print("}\n\n"); } diff --git a/src/google/protobuf/io/coded_stream_inl.h b/src/google/protobuf/io/coded_stream_inl.h index 94495fb8..144f44f0 100644 --- a/src/google/protobuf/io/coded_stream_inl.h +++ b/src/google/protobuf/io/coded_stream_inl.h @@ -50,8 +50,12 @@ inline bool CodedInputStream::InternalReadStringInline(string* buffer, if (BufferSize() >= size) { STLStringResizeUninitialized(buffer, size); - memcpy(string_as_array(buffer), buffer_, size); - Advance(size); + // When buffer is empty, string_as_array(buffer) will return NULL but memcpy + // 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; } diff --git a/src/google/protobuf/message.cc b/src/google/protobuf/message.cc index b3f8024c..ab7efa99 100644 --- a/src/google/protobuf/message.cc +++ b/src/google/protobuf/message.cc @@ -32,7 +32,7 @@ // Based on original Protocol Buffers design by // Sanjay Ghemawat, Jeff Dean, and others. -#include +#include #include #include -- cgit v1.2.3