Announcement

Collapse
No announcement yet.

ReleaseStringUTFChars

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • ReleaseStringUTFChars

    Hallo zusammen,
    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 Java
    javaFieldID = env->GetFieldID(dataCls, "string2", "Ljava/lang/String;"); strObj = (jstring) env->GetObjectField(data, javaFieldID); const char* cStr2= env->GetStringUTFChars(strObj, NULL); ...
    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
    env->ReleaseStringUTFChars(strObj, string1);
    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.
    Zuletzt editiert von DeBubchie; 30.04.2020, 11:40.

  • #2
    ReleaseStringUTFChars -> Informs the VM that the native code no longer needs access to utf. The utf argument is a pointer derived from string using GetStringUTFChars().

    Das würde bedeuten für jede char* Variable einzeln
    Christian

    Comment

    Working...
    X