diff options
| author | 2020-07-09 19:29:25 +0000 | |
|---|---|---|
| committer | 2020-07-09 21:45:22 +0000 | |
| commit | 8fc3b0aa17398b8475866923008cf463b535bfb7 (patch) | |
| tree | 043646ad5bf50da99eaa9bdf1522d0b32e5776f0 | |
| parent | 1fb9633fb313f51a12056590c9dd35125ddd4b52 (diff) | |
docs: Clarify the lifetime of AHardwareBuffer_toHardwareBuffer in docs. See
generated output in cl/320449087.
Bug: 140885254
Test: m ndk
Change-Id: I5b27dcedd5b0d20003b46c05c40a8c7c26dd9d28
| -rw-r--r-- | include/android/hardware_buffer_jni.h | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/include/android/hardware_buffer_jni.h b/include/android/hardware_buffer_jni.h index 293e5ac469..ae208a6e75 100644 --- a/include/android/hardware_buffer_jni.h +++ b/include/android/hardware_buffer_jni.h @@ -39,9 +39,9 @@ __BEGIN_DECLS * Return the AHardwareBuffer wrapped by a Java HardwareBuffer object. * * This method does not acquire any additional reference to the AHardwareBuffer - * that is returned. To keep the AHardwareBuffer live after the Java - * HardwareBuffer object got garbage collected, be sure to use AHardwareBuffer_acquire() - * to acquire an additional reference. + * that is returned. To keep the AHardwareBuffer alive after the Java + * HardwareBuffer object is closed, explicitly or by the garbage collector, be + * sure to use AHardwareBuffer_acquire() to acquire an additional reference. * * Available since API level 26. */ @@ -50,7 +50,18 @@ AHardwareBuffer* AHardwareBuffer_fromHardwareBuffer(JNIEnv* env, /** * Return a new Java HardwareBuffer object that wraps the passed native - * AHardwareBuffer object. + * AHardwareBuffer object. The Java HardwareBuffer will acquire a reference to + * the internal buffer and manage its lifetime. For example: + * + * <pre><code> + * AHardwareBuffer* buffer; + * AHardwareBuffer_allocate(..., &buffer); // `buffer` has reference count 1 + * jobject java_result = AHardwareBuffer_toHardwareBuffer(buffer); // `buffer` has reference count 2. + * AHardwareBuffer_release(buffer); // `buffer` has reference count 1 + * return result; // The underlying buffer is kept alive by `java_result` and + * // will be set to 0 when it is closed on the Java side with + * // HardwareBuffer::close(). + * </code></pre> * * Available since API level 26. */ |