Fixes leaks from anv_device_upload_nir: ==7345== 8,192 bytes in 2 blocks are definitely lost in loss record 24 of 24 ==7345== at 0x4C2ED78: malloc (vg_replace_malloc.c:308) ==7345== by 0x4C31393: realloc (vg_replace_malloc.c:836) ==7345== by 0x54E0848: grow_to_fit (blob.c:67) ==7345== by 0x54E0BE5: blob_reserve_bytes (blob.c:166) ==7345== by 0x54E0C7C: blob_reserve_intptr (blob.c:186) ==7345== by 0x54704A7: nir_serialize (nir_serialize.c:1091) ==7345== by 0x512F97D: anv_device_upload_nir (anv_pipeline_cache.c:756) Signed-off-by: Tapani Pälli <tapani.palli@intel.com> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>tags/19.1-branchpoint
| */ | */ | ||||
| entry = _mesa_hash_table_search(cache->nir_cache, sha1_key); | entry = _mesa_hash_table_search(cache->nir_cache, sha1_key); | ||||
| if (entry) { | if (entry) { | ||||
| blob_finish(&blob); | |||||
| pthread_mutex_unlock(&cache->mutex); | pthread_mutex_unlock(&cache->mutex); | ||||
| return; | return; | ||||
| } | } | ||||
| snir->size = blob.size; | snir->size = blob.size; | ||||
| memcpy(snir->data, blob.data, blob.size); | memcpy(snir->data, blob.data, blob.size); | ||||
| blob_finish(&blob); | |||||
| _mesa_hash_table_insert(cache->nir_cache, snir->sha1_key, snir); | _mesa_hash_table_insert(cache->nir_cache, snir->sha1_key, snir); | ||||
| pthread_mutex_unlock(&cache->mutex); | pthread_mutex_unlock(&cache->mutex); |