Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c3d546cc authored by Jayant Chowdhary's avatar Jayant Chowdhary
Browse files

Reapply "camera2 jni: nativeReadValues() can use camera_metadata_ro_entry...


Reapply "camera2 jni: nativeReadValues() can use camera_metadata_ro_entry instead of camera_metadata_entry"

This reverts commit a5dbb9b15325d240ee1b8c8272ee32c3aeefd61b.

With this updated commit we don't return a NULL array instead of a 0
sized array in case entry.count is 0. Camera clients may be expecting a
non-null zero sized array for these cases as well.

Bug: 371223465

Flag: EXEMPT bugfix

Test: Manual GCA
Change-Id: Id06671aa0f78a96c757e587443f73e93ef46ce74
Signed-off-by: default avatarJayant Chowdhary <jchowdhary@google.com>
parent 4ee1ab41
Loading
Loading
Loading
Loading
+9 −10
Original line number Diff line number Diff line
@@ -336,7 +336,7 @@ static void CameraMetadata_swap(JNIEnv *env, jclass thiz, jlong ptr, jlong other
static jbyteArray CameraMetadata_readValues(JNIEnv *env, jclass thiz, jint tag, jlong ptr) {
    ALOGV("%s (tag = %d)", __FUNCTION__, tag);

    CameraMetadata* metadata = CameraMetadata_getPointerThrow(env, ptr);
    const CameraMetadata *metadata = CameraMetadata_getPointerThrow(env, ptr);
    if (metadata == NULL) return NULL;

    const camera_metadata_t *metaBuffer = metadata->getAndLock();
@@ -349,15 +349,14 @@ static jbyteArray CameraMetadata_readValues(JNIEnv *env, jclass thiz, jint tag,
    }
    size_t tagSize = Helpers::getTypeSize(tagType);

    camera_metadata_entry entry = metadata->find(tag);
    camera_metadata_ro_entry entry = metadata->find(tag);
    if (entry.count == 0) {
        if (!metadata->exists(tag)) {
            ALOGV("%s: Tag %d does not have any entries", __FUNCTION__, tag);
            return NULL;
        } else {
            // OK: we will return a 0-sized array.
             ALOGV("%s: Tag %d had an entry, but it had 0 data", __FUNCTION__,
                   tag);
            ALOGV("%s: Tag %d had an entry, but it had 0 data", __FUNCTION__, tag);
        }
    }