From 3e397a65d29de99c6bbb2e78a0ccc2ca10b3e6fc Mon Sep 17 00:00:00 2001 From: Geert Bevin Date: Sat, 31 Dec 2022 13:14:23 -0500 Subject: [PATCH] Prevent string allocation when not passing in any allowed characters. --- .../java/com/uwyn/urlencoder/UrlEncoder.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/lib/src/main/java/com/uwyn/urlencoder/UrlEncoder.java b/lib/src/main/java/com/uwyn/urlencoder/UrlEncoder.java index d751011..080af04 100644 --- a/lib/src/main/java/com/uwyn/urlencoder/UrlEncoder.java +++ b/lib/src/main/java/com/uwyn/urlencoder/UrlEncoder.java @@ -126,6 +126,20 @@ public final class UrlEncoder { return out.toString(); } + /** + * Transforms a provided String object into a new string, + * containing only valid URL characters in the UTF-8 encoding. + * + * @param source The string that has to be transformed into a valid URL + * string. + * @return The encoded String object. + * @see #decode(String) + * @since 1.0 + */ + public static String encode(String source) { + return encode(source, (String)null); + } + /** * Transforms a provided String object into a new string, * containing only valid URL characters in the UTF-8 encoding. @@ -162,7 +176,7 @@ public final class UrlEncoder { var i = 0; while(i < source.length()) { ch = source.charAt(i); - if (isUnreservedUriChar(ch) || allow.indexOf(ch) != -1) { + if (isUnreservedUriChar(ch) || (allow != null && allow.indexOf(ch) != -1)) { if (out != null) { out.append(ch); }