#java-native-interface
#java-native-interface
Вопрос:
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, amp;content);
env->ReleaseStringUTFChars(pdf_path, pdf);
const char *result = content.c_str();
jstring str = env->NewStringUTF(result);
return str;
}
Нужно ли мне повторно использовать str
и content
здесь? И почему?
Ответ №1:
Номер. str
относится к объекту Java, который продолжает существовать за пределами этого метода JNI, поскольку это возвращаемое значение. content
является локальным объектом C , который автоматически уничтожается при выходе из области его объявления.
Комментарии:
1. Я знаю, что это немного старый поток, но когда
str
в op не будет возвращен, нужно ли его освобождать явно?