Commit 4a04773b authored by Sergey Geyn's avatar Sergey Geyn Committed by sergey.geyn

fixed a bug in protogen causing

"CSC : fatal error CS1647: An expression is too long or complex to compile"
when building auto-generated code
parent d63096d1
......@@ -143,6 +143,7 @@ namespace Google.ProtocolBuffers.ProtoGen
writer.WriteLine("#region Designer generated code");
writer.WriteLine();
writer.WriteLine("using System;");
writer.WriteLine("using pb = global::Google.ProtocolBuffers;");
writer.WriteLine("using pbc = global::Google.ProtocolBuffers.Collections;");
writer.WriteLine("using pbd = global::Google.ProtocolBuffers.Descriptors;");
......@@ -206,16 +207,17 @@ namespace Google.ProtocolBuffers.ProtoGen
writer.WriteLine("byte[] descriptorData = global::System.Convert.FromBase64String(");
writer.Indent();
writer.Indent();
writer.WriteLine("String.Concat(");
// TODO(jonskeet): Consider a C#-escaping format here instead of just Base64.
byte[] bytes = Descriptor.Proto.ToByteArray();
string base64 = Convert.ToBase64String(bytes);
while (base64.Length > 60)
{
writer.WriteLine("\"{0}\" + ", base64.Substring(0, 60));
writer.WriteLine("\"{0}\" , ", base64.Substring(0, 60));
base64 = base64.Substring(60);
}
writer.WriteLine("\"{0}\") );", base64);
writer.WriteLine("\"{0}\");", base64);
writer.Outdent();
writer.Outdent();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment