Loading hal/audio_hw.c +4 −5 Original line number Diff line number Diff line Loading @@ -6284,12 +6284,10 @@ static int adev_verify_devices(struct audio_device *adev) static int adev_close(hw_device_t *device) { size_t i; struct audio_device *adev_temp = (struct audio_device *)device; if (!adev_temp) return 0; pthread_mutex_lock(&adev_init_lock); if (!device || ((struct audio_device *)device != adev)) goto done; if ((--audio_device_ref_count) == 0) { audio_extn_snd_mon_unregister_listener(adev); Loading @@ -6308,10 +6306,11 @@ static int adev_close(hw_device_t *device) adev->adm_deinit(adev->adm_data); pthread_mutex_destroy(&adev->lock); free(device); adev = NULL; } done: pthread_mutex_unlock(&adev_init_lock); return 0; } Loading post_proc/volume_listener.c +3 −18 Original line number Diff line number Diff line Loading @@ -764,9 +764,6 @@ static int vol_prc_lib_release(effect_handle_t handle) int status = -EINVAL; bool recompute_flag = false; int active_stream_count = 0; uint32_t session_id; uint32_t stream_type; effect_uuid_t uuid; ALOGV("%s context %p", __func__, handle); Loading @@ -774,32 +771,20 @@ static int vol_prc_lib_release(effect_handle_t handle) return status; } pthread_mutex_lock(&vol_listner_init_lock); session_id = recv_contex->session_id; stream_type = recv_contex->stream_type; if (recv_contex->desc == NULL) { ALOGE("%s: Got NULL descriptor, session %u, stream type %u", __func__, session_id, stream_type); dump_list_l(); pthread_mutex_unlock(&vol_listner_init_lock); return status; } uuid = recv_contex->desc->uuid; // check if the handle/context provided is valid list_for_each_safe(node, temp_node_next, &vol_effect_list) { context = node_to_item(node, struct vol_listener_context_s, effect_list_node); if ((memcmp(&(context->desc->uuid), &uuid, sizeof(effect_uuid_t)) == 0) && (context->session_id == session_id) && (context->stream_type == stream_type)) { if (context == recv_contex) { ALOGV("--- Found something to remove ---"); list_remove(node); PRINT_STREAM_TYPE(context->stream_type); if (valid_dev_in_context(context)) { recompute_flag = true; } list_remove(&context->effect_list_node); free(context); status = 0; break; } else { ++active_stream_count; } Loading Loading
hal/audio_hw.c +4 −5 Original line number Diff line number Diff line Loading @@ -6284,12 +6284,10 @@ static int adev_verify_devices(struct audio_device *adev) static int adev_close(hw_device_t *device) { size_t i; struct audio_device *adev_temp = (struct audio_device *)device; if (!adev_temp) return 0; pthread_mutex_lock(&adev_init_lock); if (!device || ((struct audio_device *)device != adev)) goto done; if ((--audio_device_ref_count) == 0) { audio_extn_snd_mon_unregister_listener(adev); Loading @@ -6308,10 +6306,11 @@ static int adev_close(hw_device_t *device) adev->adm_deinit(adev->adm_data); pthread_mutex_destroy(&adev->lock); free(device); adev = NULL; } done: pthread_mutex_unlock(&adev_init_lock); return 0; } Loading
post_proc/volume_listener.c +3 −18 Original line number Diff line number Diff line Loading @@ -764,9 +764,6 @@ static int vol_prc_lib_release(effect_handle_t handle) int status = -EINVAL; bool recompute_flag = false; int active_stream_count = 0; uint32_t session_id; uint32_t stream_type; effect_uuid_t uuid; ALOGV("%s context %p", __func__, handle); Loading @@ -774,32 +771,20 @@ static int vol_prc_lib_release(effect_handle_t handle) return status; } pthread_mutex_lock(&vol_listner_init_lock); session_id = recv_contex->session_id; stream_type = recv_contex->stream_type; if (recv_contex->desc == NULL) { ALOGE("%s: Got NULL descriptor, session %u, stream type %u", __func__, session_id, stream_type); dump_list_l(); pthread_mutex_unlock(&vol_listner_init_lock); return status; } uuid = recv_contex->desc->uuid; // check if the handle/context provided is valid list_for_each_safe(node, temp_node_next, &vol_effect_list) { context = node_to_item(node, struct vol_listener_context_s, effect_list_node); if ((memcmp(&(context->desc->uuid), &uuid, sizeof(effect_uuid_t)) == 0) && (context->session_id == session_id) && (context->stream_type == stream_type)) { if (context == recv_contex) { ALOGV("--- Found something to remove ---"); list_remove(node); PRINT_STREAM_TYPE(context->stream_type); if (valid_dev_in_context(context)) { recompute_flag = true; } list_remove(&context->effect_list_node); free(context); status = 0; break; } else { ++active_stream_count; } Loading