changeset 12372:236022dfb0c9

8173581: performance regression in com/sun/crypto/provider/OutputFeedback.java Summary: Corrected the problem in OutputFeedback class Reviewed-by: valeriep Contributed-by: rasbold@google.com
author rasbold
date Tue, 31 Jan 2017 21:33:54 +0000
parents a4c7243016e5
children d0f01adb6915
files src/share/classes/com/sun/crypto/provider/OutputFeedback.java
diffstat 1 files changed, 5 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/classes/com/sun/crypto/provider/OutputFeedback.java	Tue Jul 14 16:46:28 2015 +0100
+++ b/src/share/classes/com/sun/crypto/provider/OutputFeedback.java	Tue Jan 31 21:33:54 2017 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -162,11 +162,11 @@
             for (int i = 0; i < numBytes; i++) {
                 cipher[i + cipherOffset] =
                     (byte)(k[i] ^ plain[i + plainOffset]);
-                if (nShift != 0) {
-                    System.arraycopy(register, numBytes, register, 0, nShift);
-                }
-                System.arraycopy(k, 0, register, nShift, numBytes);
             }
+            if (nShift != 0) {
+                System.arraycopy(register, numBytes, register, 0, nShift);
+            }
+            System.arraycopy(k, 0, register, nShift, numBytes);
         }
         return plainLen;
     }