Hallo zusammen,
ich nutze folgendes Beispiel (JNI)
Ich benutze die jfieldID und das jstring Objekt also mehrfach... meine Frage ist muss ich am Ende nur einmal
env->ReleaseStringUTFChars(strObj, stringLast)
aufrufen
oder
für jede char* Variable einzeln
...
Was wird denn genau released ? der Speicherplatz des Char* , der jstring oder die Bindung also die Adresse?
Danke schonmal im Voraus.
ich nutze folgendes Beispiel (JNI)
Code:
// String 1 from Java jfieldID javaFieldID = env->GetFieldID(dataCls, "string1", "Ljava/lang/String;"); jstring strObj = (jstring) env->GetObjectField(data, javaFieldID); const char* cStr1 = env->GetStringUTFChars(strObj, NULL);// String 2 from JavajavaFieldID = env->GetFieldID(dataCls, "string2", "Ljava/lang/String;"); strObj = (jstring) env->GetObjectField(data, javaFieldID); const char* cStr2= env->GetStringUTFChars(strObj, NULL); ...
env->ReleaseStringUTFChars(strObj, stringLast)
aufrufen
oder
für jede char* Variable einzeln
env->ReleaseStringUTFChars(strObj, string1);
env->ReleaseStringUTFChars(strObj, string2);
env->ReleaseStringUTFChars(strObj, string2);
...
(oder auch als 3 Variante nach jedem Aufruf ??? )
Was wird denn genau released ? der Speicherplatz des Char* , der jstring oder die Bindung also die Adresse?
Danke schonmal im Voraus.
Comment