This is an automated email from the ASF dual-hosted git repository.
remm pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/main by this push:
new f3ebf6b Avoid copying useless bytes using asSlice
f3ebf6b is described below
commit f3ebf6beef5520780d5be54e4ebd24a0db3bfea2
Author: remm <[email protected]>
AuthorDate: Mon Nov 8 16:06:16 2021 +0100
Avoid copying useless bytes using asSlice
---
.../org/apache/tomcat/util/net/openssl/panama/OpenSSLEngine.java | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git
a/modules/openssl-java17/src/main/java/org/apache/tomcat/util/net/openssl/panama/OpenSSLEngine.java
b/modules/openssl-java17/src/main/java/org/apache/tomcat/util/net/openssl/panama/OpenSSLEngine.java
index 68ffe30..d8d827f 100644
---
a/modules/openssl-java17/src/main/java/org/apache/tomcat/util/net/openssl/panama/OpenSSLEngine.java
+++
b/modules/openssl-java17/src/main/java/org/apache/tomcat/util/net/openssl/panama/OpenSSLEngine.java
@@ -401,8 +401,8 @@ public final class OpenSSLEngine extends SSLEngine
implements SSLUtil.ProtocolIn
MemorySegment bufSegment =
allocator.allocateArray(CLinker.C_CHAR, len);
final int sslRead = SSL_read(ssl, bufSegment, len);
if (sslRead > 0) {
- byte[] buf = bufSegment.toByteArray();
- dst.put(buf, 0, sslRead);
+
MemorySegment.ofByteBuffer(dst).copyFrom(bufSegment.asSlice(0, sslRead));
+ dst.position(dst.position() + sslRead);
return sslRead;
} else {
checkLastError();
@@ -419,8 +419,8 @@ public final class OpenSSLEngine extends SSLEngine
implements SSLUtil.ProtocolIn
*/
private int readEncryptedData(final MemoryAddress networkBIO, final
ByteBuffer dst, final int pending) throws SSLException {
clearLastError();
+ final int pos = dst.position();
if (dst.isDirect()) {
- final int pos = dst.position();
final int bioRead = BIO_read(networkBIO,
MemorySegment.ofByteBuffer(dst), pending);
if (bioRead > 0) {
dst.position(pos + bioRead);
@@ -436,7 +436,7 @@ public final class OpenSSLEngine extends SSLEngine
implements SSLUtil.ProtocolIn
if (bioRead > 0) {
buf.limit(bioRead);
int oldLimit = dst.limit();
- dst.limit(dst.position() + bioRead);
+ dst.limit(pos + bioRead);
dst.put(buf);
dst.limit(oldLimit);
return bioRead;
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]