Skip to content

Commit ba60d0c

Browse files
committed
#884 Eliminate new string creation for empty strings
1 parent c10c760 commit ba60d0c

2 files changed

Lines changed: 4 additions & 4 deletions

File tree

src/main/org/firebirdsql/encodings/EncodingGeneric.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// SPDX-FileCopyrightText: Copyright 2003 Blas Rodriguez Somoza
22
// SPDX-FileCopyrightText: Copyright 2004 Roman Rokytskyy
3-
// SPDX-FileCopyrightText: Copyright 2012-2020 Mark Rotteveel
3+
// SPDX-FileCopyrightText: Copyright 2012-2025 Mark Rotteveel
44
// SPDX-License-Identifier: LGPL-2.1-or-later
55
package org.firebirdsql.encodings;
66

@@ -11,6 +11,7 @@
1111
* Implementation of {@link Encoding} which uses the default functionality of {@link java.nio.charset.Charset} and
1212
* {@link java.lang.String}.
1313
*/
14+
@SuppressWarnings("ClassCanBeRecord")
1415
final class EncodingGeneric implements Encoding {
1516

1617
private final Charset charset;
@@ -26,12 +27,12 @@ public byte[] encodeToCharset(final String in) {
2627

2728
@Override
2829
public String decodeFromCharset(final byte[] in) {
29-
return new String(in, charset);
30+
return decodeFromCharset(in, 0, in.length);
3031
}
3132

3233
@Override
3334
public String decodeFromCharset(final byte[] in, final int offset, final int length) {
34-
return new String(in, offset, length, charset);
35+
return length == 0 ? "" : new String(in, offset, length, charset);
3536
}
3637

3738
@Override

src/main/org/firebirdsql/gds/ng/StatementInfoProcessor.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,6 @@ private int readIntValue(StatementInfo info) {
214214
private String readStringValue(StatementInfo info) {
215215
int len = iscVaxInteger2(info.buffer, info.currentIndex);
216216
info.currentIndex += 2;
217-
if (len == 0) return "";
218217
// TODO Is it correct to use the connection encoding here, or should we use UTF-8 always?
219218
String value = database.getEncoding().decodeFromCharset(info.buffer, info.currentIndex, len);
220219
info.currentIndex += len;

0 commit comments

Comments
 (0)