The JavaInstance API should represent a generic Java object and should be independent of JNI, to give embedders flexibility in how a Java object is provided. This means that the API should use a new JavaValue type to represent a Java value, rather than the JNI jvalue type.
See bug 55383.
This bug tracks fixing only the V8 version of JavaInstance. The JSC version can not be fixed until Bug 57023 is fixed.
Created attachment 87296 [details] Patch
LGTM View in context: https://bugs.webkit.org/attachment.cgi?id=87296&action=review > Source/WebCore/bridge/jni/v8/JavaInstanceV8.cpp:76 > + jvalue* jvalueArgs = new jvalue[numParams]; Is there a scoped_pointer for arrays? > Source/WebCore/bridge/jni/v8/JavaInstanceV8.cpp:78 > + jvalueArgs[i] = javaValueToJvalue(args[i]); Maybe add a comment to say that args is guaranteed to have at least numParams elements.
> Is there a scoped_pointer for arrays? Yes - OwnArrayPtr - fixed. > Maybe add a comment to say that args is guaranteed to have at least numParams elements. I've added a comment in the header. Note that this is not a new requirement, as previously the array was passed straight through to callJNIMethod().
Created attachment 87413 [details] Patch
Comment on attachment 87413 [details] Patch r+ based on Andrei's review
Comment on attachment 87413 [details] Patch Clearing flags on attachment: 87413 Committed r82361: <http://trac.webkit.org/changeset/82361>
All reviewed patches have been landed. Closing bug.