From 2a012f868785aecb72b13d96d9f54c96ffaec417 Mon Sep 17 00:00:00 2001 From: olly Date: Fri, 14 Feb 2020 21:16:57 +0000 Subject: [PATCH] gav1_jni: fix pointer->int conversion warnings fixes: gav1_jni.cc:446:25: error: cast from pointer to smaller type 'int' loses information const int buffer_id = reinterpret_cast(buffer_private_data); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ gav1_jni.cc:730:9: error: cast from pointer to smaller type 'int' loses information reinterpret_cast(decoder_buffer->buffer_private_data); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ after https://github.com/google/ExoPlayer/commit/0915998add5918214fa0282a69b50a159168a6d5 PiperOrigin-RevId: 295211245 --- extensions/av1/src/main/jni/gav1_jni.cc | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/extensions/av1/src/main/jni/gav1_jni.cc b/extensions/av1/src/main/jni/gav1_jni.cc index 6e1f8c75b6..05c2c6ffbc 100644 --- a/extensions/av1/src/main/jni/gav1_jni.cc +++ b/extensions/av1/src/main/jni/gav1_jni.cc @@ -27,6 +27,8 @@ #endif // CPU_FEATURES_COMPILED_ANY_ARM_NEON #include +#include +#include #include #include #include // NOLINT @@ -443,8 +445,10 @@ int Libgav1GetFrameBuffer(void* callback_private_data, int bitdepth, void Libgav1ReleaseFrameBuffer(void* callback_private_data, void* buffer_private_data) { JniContext* const context = static_cast(callback_private_data); - const int buffer_id = reinterpret_cast(buffer_private_data); - context->jni_status_code = context->buffer_manager.ReleaseBuffer(buffer_id); + const intptr_t buffer_id = reinterpret_cast(buffer_private_data); + assert(buffer_id <= INT_MAX); + context->jni_status_code = + context->buffer_manager.ReleaseBuffer(static_cast(buffer_id)); if (context->jni_status_code != kJniStatusOk) { LOGE("%s", GetJniErrorMessage(context->jni_status_code)); } @@ -726,11 +730,12 @@ DECODER_FUNC(jint, gav1GetFrame, jlong jContext, jobject jOutputBuffer, return kStatusError; } - const int buffer_id = - reinterpret_cast(decoder_buffer->buffer_private_data); - context->buffer_manager.AddBufferReference(buffer_id); + const intptr_t buffer_id = + reinterpret_cast(decoder_buffer->buffer_private_data); + assert(buffer_id <= INT_MAX); + context->buffer_manager.AddBufferReference(static_cast(buffer_id)); JniFrameBuffer* const jni_buffer = - context->buffer_manager.GetBuffer(buffer_id); + context->buffer_manager.GetBuffer(static_cast(buffer_id)); jni_buffer->SetFrameData(*decoder_buffer); env->CallVoidMethod(jOutputBuffer, context->init_for_private_frame_method, decoder_buffer->displayed_width[kPlaneY], @@ -739,7 +744,8 @@ DECODER_FUNC(jint, gav1GetFrame, jlong jContext, jobject jOutputBuffer, // Exception is thrown in Java when returning from the native call. return kStatusError; } - env->SetIntField(jOutputBuffer, context->decoder_private_field, buffer_id); + env->SetIntField(jOutputBuffer, context->decoder_private_field, + static_cast(buffer_id)); } return kStatusOk;