فهرست منبع

Destruct CodedOutputStream instead of using Trim()

Martin Pärtel 5 سال پیش
والد
کامیت
82a057596e
1فایلهای تغییر یافته به همراه12 افزوده شده و 10 حذف شده
  1. 12 10
      src/google/protobuf/compiler/command_line_interface.cc

+ 12 - 10
src/google/protobuf/compiler/command_line_interface.cc

@@ -2229,17 +2229,19 @@ bool CommandLineInterface::WriteDescriptorSet(
 
 
   io::FileOutputStream out(fd);
   io::FileOutputStream out(fd);
 
 
-  io::CodedOutputStream coded_out(&out);
-  // Determinism is useful here because build outputs are sometimes checked
-  // into version control.
-  coded_out.SetSerializationDeterministic(true);
-  if (!file_set.SerializeToCodedStream(&coded_out)) {
-    std::cerr << descriptor_set_out_name_ << ": " << strerror(out.GetErrno())
-              << std::endl;
-    out.Close();
-    return false;
+  {
+    io::CodedOutputStream coded_out(&out);
+    // Determinism is useful here because build outputs are sometimes checked
+    // into version control.
+    coded_out.SetSerializationDeterministic(true);
+    if (!file_set.SerializeToCodedStream(&coded_out)) {
+      std::cerr << descriptor_set_out_name_ << ": " << strerror(out.GetErrno())
+                << std::endl;
+      out.Close();
+      return false;
+    }
   }
   }
-  coded_out.Trim();
+
   if (!out.Close()) {
   if (!out.Close()) {
     std::cerr << descriptor_set_out_name_ << ": " << strerror(out.GetErrno())
     std::cerr << descriptor_set_out_name_ << ": " << strerror(out.GetErrno())
               << std::endl;
               << std::endl;