On 08/01/2014 18:48, Dan Xu wrote:
Hi Alan,

Btw, I am wondering whether I need pass a variable to see if the returned char* is a copy or not, and basing on that to do the release.

For example,

jboolean isCopy;
const char *fname = JNU_GetStringPlatformChars(env, java_fname, &isCopy);
if (isCopy == JNI_TRUE)
   JNU_ReleaseStringPlatformChars(env, java_fname, fname);

But according to the definition of JNU_GetStringPlatformChars(), it seems always to set *isCopy to JNI_TRUE currently. Because nativeGetStringPlatformChars() does nothing now.
As things stand then JNU_GetStringPlatformChars always returned a copy. If it were changed to conditionally return a copy then every usage would need to specify isCopy and handle as you suggest. So it doesn't matter if you specify NULL or &isCopy, both will work here.

-Alan

Reply via email to