anv: call blob_finish when done with it
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>
This commit is contained in:
@@ -766,6 +766,7 @@ anv_device_upload_nir(struct anv_device *device,
|
||||
*/
|
||||
entry = _mesa_hash_table_search(cache->nir_cache, sha1_key);
|
||||
if (entry) {
|
||||
blob_finish(&blob);
|
||||
pthread_mutex_unlock(&cache->mutex);
|
||||
return;
|
||||
}
|
||||
@@ -776,6 +777,8 @@ anv_device_upload_nir(struct anv_device *device,
|
||||
snir->size = blob.size;
|
||||
memcpy(snir->data, blob.data, blob.size);
|
||||
|
||||
blob_finish(&blob);
|
||||
|
||||
_mesa_hash_table_insert(cache->nir_cache, snir->sha1_key, snir);
|
||||
|
||||
pthread_mutex_unlock(&cache->mutex);
|
||||
|
Reference in New Issue
Block a user