Thank you Carter.

Gary


On Mon, Jul 16, 2018 at 8:47 AM <[email protected]> wrote:

> 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);
>
>

Reply via email to