On Jun 29, 2006, at 4:33 PM, Matthew Wringe wrote:

On Thu, 2006-06-29 at 15:36 -0700, Casey Marshall wrote:
On Jun 29, 2006, at 3:24 PM, Matthew Wringe wrote:

Hi,

I have attached a very small patch that fixes PR28204 : PBEKeySpec
incorrectly deletes the originally passed password array
(http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28204)

Instead of taking a reference to the passed password, it now creates a
copy of it.


This looks fine, except for this space here at the end:

+    System.arraycopy(password, 0, this.password, 0,
password.length );

And you can accomplish the same thing with `clone()'.

The JavaDoc should also be updated to explain that a copy of the
argument is made (the JDK documentation says this, and it is an
important API detail).

The attached patch now uses clone() instead of System.arraycopy and the
javadoc has been updated to reflect that it only stores a copy.

Out of curiosity, what is the real big difference between clone() and
arraycopy? and under what situation should one be used over another?


I think clone() can be faster for arrays, because it can combine the allocation and the copy into a single call. But really, I don't have any idea if it's actually faster on any VM (it seems like a JIT could inline both the `new' call and the array copy).

The only other advantage is that it's much more concise.

Attachment: PGP.sig
Description: This is a digitally signed message part

Reply via email to