Browse Source

Fix issue 403, issue 456, issue 462

xiaofeng@google.com 12 years ago
parent
commit
de3494fe5c

+ 6 - 0
src/google/protobuf/compiler/java/java_service.cc

@@ -88,6 +88,12 @@ void ServiceGenerator::Generate(io::Printer* printer) {
   GenerateStub(printer);
   GenerateStub(printer);
   GenerateBlockingStub(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->Outdent();
   printer->Print("}\n\n");
   printer->Print("}\n\n");
 }
 }

+ 6 - 2
src/google/protobuf/io/coded_stream_inl.h

@@ -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);
-    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;
     return true;
   }
   }
 
 

+ 1 - 1
src/google/protobuf/message.cc

@@ -32,7 +32,7 @@
 //  Based on original Protocol Buffers design by
 //  Based on original Protocol Buffers design by
 //  Sanjay Ghemawat, Jeff Dean, and others.
 //  Sanjay Ghemawat, Jeff Dean, and others.
 
 
-#include <iostream>
+#include <istream>
 #include <stack>
 #include <stack>
 #include <google/protobuf/stubs/hash.h>
 #include <google/protobuf/stubs/hash.h>