From e119a432a8d1a1f0041b90949f25e41e8b509884 Mon Sep 17 00:00:00 2001 From: Sydney Acksman Date: Wed, 30 Oct 2019 13:02:46 -0500 Subject: [PATCH] Use 3 parameter Encoding.FromBytes for default string values --- .../TestProtos/Unittest.cs | 36 +++++++++---------- .../compiler/csharp/csharp_field_base.cc | 2 +- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/csharp/src/Google.Protobuf.Test/TestProtos/Unittest.cs b/csharp/src/Google.Protobuf.Test/TestProtos/Unittest.cs index 5daf9fb8e2..2e1930d3c0 100644 --- a/csharp/src/Google.Protobuf.Test/TestProtos/Unittest.cs +++ b/csharp/src/Google.Protobuf.Test/TestProtos/Unittest.cs @@ -888,7 +888,7 @@ namespace Google.Protobuf.TestProtos.Proto2 { public static readonly pb::Extension DefaultBoolExtension = new pb::Extension(73, pb::FieldCodec.ForBool(584, true)); public static readonly pb::Extension DefaultStringExtension = - new pb::Extension(74, pb::FieldCodec.ForString(594, global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("aGVsbG8=")))); + new pb::Extension(74, pb::FieldCodec.ForString(594, global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("aGVsbG8="), 0, 5))); public static readonly pb::Extension DefaultBytesExtension = new pb::Extension(75, pb::FieldCodec.ForBytes(602, pb::ByteString.FromBase64("d29ybGQ="))); public static readonly pb::Extension DefaultNestedEnumExtension = @@ -898,9 +898,9 @@ namespace Google.Protobuf.TestProtos.Proto2 { public static readonly pb::Extension DefaultImportEnumExtension = new pb::Extension(83, pb::FieldCodec.ForEnum(664, x => (int) x, x => (global::Google.Protobuf.TestProtos.Proto2.ImportEnum) x, global::Google.Protobuf.TestProtos.Proto2.ImportEnum.ImportBar)); public static readonly pb::Extension DefaultStringPieceExtension = - new pb::Extension(84, pb::FieldCodec.ForString(674, global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("YWJj")))); + new pb::Extension(84, pb::FieldCodec.ForString(674, global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("YWJj"), 0, 3))); public static readonly pb::Extension DefaultCordExtension = - new pb::Extension(85, pb::FieldCodec.ForString(682, global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("MTIz")))); + new pb::Extension(85, pb::FieldCodec.ForString(682, global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("MTIz"), 0, 3))); /// /// For oneof test /// @@ -2421,7 +2421,7 @@ namespace Google.Protobuf.TestProtos.Proto2 { /// Field number for the "default_string" field. public const int DefaultStringFieldNumber = 74; - private readonly static string DefaultStringDefaultValue = global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("aGVsbG8=")); + private readonly static string DefaultStringDefaultValue = global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("aGVsbG8="), 0, 5); private string defaultString_; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -2539,7 +2539,7 @@ namespace Google.Protobuf.TestProtos.Proto2 { /// Field number for the "default_string_piece" field. public const int DefaultStringPieceFieldNumber = 84; - private readonly static string DefaultStringPieceDefaultValue = global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("YWJj")); + private readonly static string DefaultStringPieceDefaultValue = global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("YWJj"), 0, 3); private string defaultStringPiece_; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -2562,7 +2562,7 @@ namespace Google.Protobuf.TestProtos.Proto2 { /// Field number for the "default_cord" field. public const int DefaultCordFieldNumber = 85; - private readonly static string DefaultCordDefaultValue = global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("MTIz")); + private readonly static string DefaultCordDefaultValue = global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("MTIz"), 0, 3); private string defaultCord_; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -6312,7 +6312,7 @@ namespace Google.Protobuf.TestProtos.Proto2 { /// compile. /// public static readonly pb::Extension Test = - new pb::Extension(1002, pb::FieldCodec.ForString(8018, global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("dGVzdA==")))); + new pb::Extension(1002, pb::FieldCodec.ForString(8018, global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("dGVzdA=="), 0, 4))); /// /// Used to test if generated extension name is correct when there are /// underscores. @@ -13126,7 +13126,7 @@ namespace Google.Protobuf.TestProtos.Proto2 { /// Field number for the "utf8_string" field. public const int Utf8StringFieldNumber = 6; - private readonly static string Utf8StringDefaultValue = global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("4Yi0")); + private readonly static string Utf8StringDefaultValue = global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("4Yi0"), 0, 3); private string utf8String_; /// @@ -13475,7 +13475,7 @@ namespace Google.Protobuf.TestProtos.Proto2 { /// Field number for the "cpp_trigraph" field. public const int CppTrigraphFieldNumber = 20; - private readonly static string CppTrigraphDefaultValue = global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("PyA/ID8/ID8/ID8/PyA/Py8gPz8t")); + private readonly static string CppTrigraphDefaultValue = global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("PyA/ID8/ID8/ID8/PyA/Py8gPz8t"), 0, 21); private string cppTrigraph_; /// @@ -13505,7 +13505,7 @@ namespace Google.Protobuf.TestProtos.Proto2 { /// Field number for the "string_with_zero" field. public const int StringWithZeroFieldNumber = 23; - private readonly static string StringWithZeroDefaultValue = global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("aGVsAGxv")); + private readonly static string StringWithZeroDefaultValue = global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("aGVsAGxv"), 0, 6); private string stringWithZero_; /// @@ -13554,7 +13554,7 @@ namespace Google.Protobuf.TestProtos.Proto2 { /// Field number for the "string_piece_with_zero" field. public const int StringPieceWithZeroFieldNumber = 25; - private readonly static string StringPieceWithZeroDefaultValue = global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("YWIAYw==")); + private readonly static string StringPieceWithZeroDefaultValue = global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("YWIAYw=="), 0, 4); private string stringPieceWithZero_; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -13577,7 +13577,7 @@ namespace Google.Protobuf.TestProtos.Proto2 { /// Field number for the "cord_with_zero" field. public const int CordWithZeroFieldNumber = 26; - private readonly static string CordWithZeroDefaultValue = global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("MTIAMw==")); + private readonly static string CordWithZeroDefaultValue = global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("MTIAMw=="), 0, 4); private string cordWithZero_; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -13600,7 +13600,7 @@ namespace Google.Protobuf.TestProtos.Proto2 { /// Field number for the "replacement_string" field. public const int ReplacementStringFieldNumber = 27; - private readonly static string ReplacementStringDefaultValue = global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("JHt1bmtub3dufQ==")); + private readonly static string ReplacementStringDefaultValue = global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("JHt1bmtub3dufQ=="), 0, 10); private string replacementString_; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -16816,7 +16816,7 @@ namespace Google.Protobuf.TestProtos.Proto2 { public const int BarStringFieldNumber = 13; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public string BarString { - get { return HasBarString ? (string) bar_ : global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("U1RSSU5H")); } + get { return HasBarString ? (string) bar_ : global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("U1RSSU5H"), 0, 6); } set { bar_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); barCase_ = BarOneofCase.BarString; @@ -16839,7 +16839,7 @@ namespace Google.Protobuf.TestProtos.Proto2 { public const int BarCordFieldNumber = 14; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public string BarCord { - get { return HasBarCord ? (string) bar_ : global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("Q09SRA==")); } + get { return HasBarCord ? (string) bar_ : global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("Q09SRA=="), 0, 4); } set { bar_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); barCase_ = BarOneofCase.BarCord; @@ -16862,7 +16862,7 @@ namespace Google.Protobuf.TestProtos.Proto2 { public const int BarStringPieceFieldNumber = 15; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public string BarStringPiece { - get { return HasBarStringPiece ? (string) bar_ : global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("U1BJRUNF")); } + get { return HasBarStringPiece ? (string) bar_ : global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("U1BJRUNF"), 0, 6); } set { bar_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); barCase_ = BarOneofCase.BarStringPiece; @@ -16953,7 +16953,7 @@ namespace Google.Protobuf.TestProtos.Proto2 { /// Field number for the "baz_string" field. public const int BazStringFieldNumber = 19; - private readonly static string BazStringDefaultValue = global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("QkFa")); + private readonly static string BazStringDefaultValue = global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("QkFa"), 0, 3); private string bazString_; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -21501,7 +21501,7 @@ namespace Google.Protobuf.TestProtos.Proto2 { /// Field number for the "a" field. public const int AFieldNumber = 1; - private readonly static string ADefaultValue = global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("Ki8gPC0gTmVpdGhlciBzaG91bGQgdGhpcy4=")); + private readonly static string ADefaultValue = global::System.Text.Encoding.UTF8.GetString(global::System.Convert.FromBase64String("Ki8gPC0gTmVpdGhlciBzaG91bGQgdGhpcy4="), 0, 26); private string a_; /// diff --git a/src/google/protobuf/compiler/csharp/csharp_field_base.cc b/src/google/protobuf/compiler/csharp/csharp_field_base.cc index d23372d4b0..454f4cb144 100644 --- a/src/google/protobuf/compiler/csharp/csharp_field_base.cc +++ b/src/google/protobuf/compiler/csharp/csharp_field_base.cc @@ -308,7 +308,7 @@ std::string FieldGeneratorBase::GetStringDefaultValueInternal(const FieldDescrip else return "global::System.Text.Encoding.UTF8.GetString(global::System." "Convert.FromBase64String(\"" + - StringToBase64(descriptor->default_value_string()) + "\"))"; + StringToBase64(descriptor->default_value_string()) + "\"), 0, " + StrCat(descriptor->default_value_string().length()) + ")"; } std::string FieldGeneratorBase::GetBytesDefaultValueInternal(const FieldDescriptor* descriptor) {