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 acopy 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 thejavadoc 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.
PGP.sig
Description: This is a digitally signed message part