Repository: logging-log4j2 Updated Branches: refs/heads/master ac0bf4bbe -> 424e6a0fe
Revert "Inline private StringBuilders.escapeAndDecrement" This reverts commit ac0bf4bbe85cd4a07af195b3b001717a72888794. Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/424e6a0f Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/424e6a0f Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/424e6a0f Branch: refs/heads/master Commit: 424e6a0fe4c203cfdd6e0219edc62158febb34f7 Parents: ac0bf4b Author: Carter Kozak <[email protected]> Authored: Mon Jul 16 10:47:05 2018 -0400 Committer: Carter Kozak <[email protected]> Committed: Mon Jul 16 10:47:05 2018 -0400 ---------------------------------------------------------------------- .../logging/log4j/util/StringBuilders.java | 28 +++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/424e6a0f/log4j-api/src/main/java/org/apache/logging/log4j/util/StringBuilders.java ---------------------------------------------------------------------- diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/util/StringBuilders.java b/log4j-api/src/main/java/org/apache/logging/log4j/util/StringBuilders.java index 505abf1..2a83b24 100644 --- a/log4j-api/src/main/java/org/apache/logging/log4j/util/StringBuilders.java +++ b/log4j-api/src/main/java/org/apache/logging/log4j/util/StringBuilders.java @@ -197,33 +197,28 @@ public final class StringBuilders { final char c = toAppendTo.charAt(i); switch (c) { case '\b': - toAppendTo.setCharAt(lastPos--, 'b'); - toAppendTo.setCharAt(lastPos--, '\\'); + lastPos = escapeAndDecrement(toAppendTo, lastPos, 'b'); break; + case '\t': - toAppendTo.setCharAt(lastPos--, 't'); - toAppendTo.setCharAt(lastPos--, '\\'); + lastPos = escapeAndDecrement(toAppendTo, lastPos, 't'); break; case '\f': - toAppendTo.setCharAt(lastPos--, 'f'); - toAppendTo.setCharAt(lastPos--, '\\'); + lastPos = escapeAndDecrement(toAppendTo, lastPos, 'f'); break; case '\n': - toAppendTo.setCharAt(lastPos--, 'n'); - toAppendTo.setCharAt(lastPos--, '\\'); + lastPos = escapeAndDecrement(toAppendTo, lastPos, 'n'); break; case '\r': - toAppendTo.setCharAt(lastPos--, 'r'); - toAppendTo.setCharAt(lastPos--, '\\'); + lastPos = escapeAndDecrement(toAppendTo, lastPos, 'r'); break; case '"': case '\\': - toAppendTo.setCharAt(lastPos--, c); - toAppendTo.setCharAt(lastPos--, '\\'); + lastPos = escapeAndDecrement(toAppendTo, lastPos, c); break; default: @@ -236,12 +231,19 @@ public final class StringBuilders { toAppendTo.setCharAt(lastPos--, 'u'); toAppendTo.setCharAt(lastPos--, '\\'); } else { - toAppendTo.setCharAt(lastPos--, c); + toAppendTo.setCharAt(lastPos, c); + lastPos--; } } } } + private static int escapeAndDecrement(StringBuilder toAppendTo, int lastPos, char c) { + toAppendTo.setCharAt(lastPos--, c); + toAppendTo.setCharAt(lastPos--, '\\'); + return lastPos; + } + public static void escapeXml(final StringBuilder toAppendTo, final int start) { for (int i = toAppendTo.length() - 1; i >= start; i--) { // backwards: length may change final char c = toAppendTo.charAt(i);
