Skip to content

Commit 4c8f35b

Browse files
committed
Use conventions from JavaGenerator in CSharpGenerator where possible.
Note that the `BuildString` methods are still unsafe to use during group iteration.
1 parent 4ddf522 commit 4c8f35b

File tree

2 files changed

+18
-14
lines changed

2 files changed

+18
-14
lines changed

csharp/sbe-tests/Issue992Tests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public void SetUp()
2828
}
2929

3030
[TestMethod]
31-
public void CheckToStringDontMessWithGroupIteration()
31+
public void CheckToStringDoesNotBreakGroupIteration()
3232
{
3333
var encoder = new MDIncrementalRefreshBook46()
3434
.WrapForEncodeAndApplyHeader(_buffer, Offset, _messageHeader);

sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/csharp/CSharpGenerator.java

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2406,22 +2406,26 @@ private int writeTokenDisplay(
24062406
return lengthBeforeFieldSeparator;
24072407
}
24082408

2409-
private void appendToString(final StringBuilder sb, final String indent, final String className)
2409+
private void appendToString(final StringBuilder sb, final String indent)
24102410
{
24112411
sb.append('\n');
24122412
append(sb, indent, "public override string ToString()");
24132413
append(sb, indent, "{");
24142414
append(sb, indent, " var sb = new StringBuilder(100);");
2415-
if(null != className)
2416-
{
2417-
append(sb, indent, " var m = new " + className + "();");
2418-
append(sb, indent, " m.WrapForDecode(_buffer, _offset, _actingBlockLength, _actingVersion);");
2419-
append(sb, indent, " m.BuildString(sb);");
2420-
}
2421-
else
2422-
{
2423-
append(sb, indent, " this.BuildString(sb);");
2424-
}
2415+
append(sb, indent, " this.BuildString(sb);");
2416+
append(sb, indent, " return sb.ToString();");
2417+
append(sb, indent, "}");
2418+
}
2419+
2420+
private void appendMessageToString(final StringBuilder sb, final String indent, final String className)
2421+
{
2422+
sb.append('\n');
2423+
append(sb, indent, "public override string ToString()");
2424+
append(sb, indent, "{");
2425+
append(sb, indent, " var sb = new StringBuilder(100);");
2426+
append(sb, indent, " var m = new " + className + "();");
2427+
append(sb, indent, " m.WrapForDecode(_buffer, _offset, _actingBlockLength, _actingVersion);");
2428+
append(sb, indent, " m.BuildString(sb);");
24252429
append(sb, indent, " return sb.ToString();");
24262430
append(sb, indent, "}");
24272431
}
@@ -2454,7 +2458,7 @@ private CharSequence generateDisplay(
24542458
{
24552459
final StringBuilder sb = new StringBuilder(100);
24562460

2457-
appendToString(sb, TWO_INDENT, className);
2461+
appendMessageToString(sb, TWO_INDENT, className);
24582462
sb.append('\n');
24592463
append(sb, TWO_INDENT, "internal void BuildString(StringBuilder builder)");
24602464
append(sb, TWO_INDENT, "{");
@@ -2512,7 +2516,7 @@ private CharSequence generateCompositeDisplay(final List<Token> tokens)
25122516
{
25132517
final StringBuilder sb = new StringBuilder();
25142518

2515-
appendToString(sb, TWO_INDENT, null);
2519+
appendToString(sb, TWO_INDENT);
25162520
sb.append('\n');
25172521
append(sb, TWO_INDENT, "internal void BuildString(StringBuilder builder)");
25182522
append(sb, TWO_INDENT, "{");

0 commit comments

Comments
 (0)