2016-10-20 5 views
1
JNIEXPORT jstring JNICALL Java_com_xxx_xpdf_PdfToText_getTextOnly(JNIEnv *env, jclass obj, 
                   jstring pdf_path) { 
    const char *pdf = env->GetStringUTFChars(pdf_path, 0); 

    std::string content; 
    unsigned int i = getTextFromPDF(pdf, &content); 

    env->ReleaseStringUTFChars(pdf_path, pdf); 

    const char *result = content.c_str(); 
    jstring str = env->NewStringUTF(result); 

    return str; 
} 

Muss ich hier str und content freigeben? Und warum ?JNI: Wann sollte ich Ressourcen freigeben?

Antwort

2

Nr. str bezieht sich auf ein Java-Objekt, das über diese JNI-Methode hinaus existiert, da es der Rückgabewert ist. content ist ein lokales C++ - Objekt, das automatisch gelöscht wird, wenn der deklarierende Bereich beendet wird.

Verwandte Themen