반응형
GetStringUTFChars가 복사본을 반환하면 ReleaseStringUTFChars를 호출해야합니까?
Rob Gordon의 "Essential JNI : Java Native Interface"책에는 jstring을 C 문자열로 변환하는 다음 코드 예제가 포함되어 있습니다.
const char* utf_string;
jboolean isCopy;
utf_string = env->GetStringUTFChars(str, &isCopy);
/* ... use string ... */
if (isCopy == JNI_TRUE) {
env->ReleaseStringUTFChars(str, utf_string);
}
true 인 ReleaseStringUTFChars
경우 에만 호출 isCopy
합니다.
그러나 Java Native Interface : Programmer 's Guide and Specification (대체 링크 :) 책 http://192.9.162.55/docs/books/jni/html/objtypes.html#5161
은 다음과 같이 말합니다.
ReleaseString-Chars 호출은 GetStringChars가 * isCopy를 JNI_TRUE 또는 JNI_FALSE로 설정했는지 여부에 관계없이 필요합니다. ReleaseStringChars는 GetStringChars가 복사본을 반환했는지 여부에 따라 복사본을 해제하거나 인스턴스 고정을 해제합니다.
이것이 Gordon의 책에있는 버그라고 가정하는 것이 맞습니까?
예, 가정이 맞습니다 (항상 ReleaseStringUTFChars를 호출해야 함).
반응형
'Program Tip' 카테고리의 다른 글
매달린 포인터를 비교하는 것이 합법적입니까? (0) | 2020.11.02 |
---|---|
PHP 클래스 인스턴스화. (0) | 2020.11.02 |
Python 스크립트에서 사용할 암호를 안전하게 저장 (0) | 2020.11.02 |
Selenium 오류-원격 WebDriver에 대한 HTTP 요청이 60 초 후에 시간 초과되었습니다. (0) | 2020.11.02 |
Selenium은 헤드리스 브라우저 테스트를 지원합니까? (0) | 2020.11.02 |