Freeing the allocated buffers rather than the pointer in ggml-alloc.c

This commit is contained in:
Paul Tsochantaris 2024-01-29 22:13:34 +00:00
parent 4dc07c1c97
commit 118d2d7443

View file

@ -788,12 +788,10 @@ static bool alloc_tensor_range(struct ggml_context * ctx,
#ifndef NDEBUG #ifndef NDEBUG
fprintf(stderr, "%s: failed to allocate %s buffer of size %zu\n", __func__, ggml_backend_buft_name(buft), size); fprintf(stderr, "%s: failed to allocate %s buffer of size %zu\n", __func__, ggml_backend_buft_name(buft), size);
#endif #endif
if (buffers && *buffers) {
for (size_t i = 0; i < *n_buffers; i++) { for (size_t i = 0; i < *n_buffers; i++) {
ggml_backend_buffer_free(*buffers[i]); ggml_backend_buffer_free(*buffers[i]);
} }
free(buffers); free(*buffers);
}
return false; return false;
} }
@ -845,12 +843,10 @@ ggml_backend_buffer_t ggml_backend_alloc_ctx_tensors_from_buft(struct ggml_conte
__func__, t->name, __func__, t->name,
ggml_backend_buft_name(buft), ggml_backend_buft_name(buft),
this_size, max_size); this_size, max_size);
if(buffers && *buffers) {
for (size_t i = 0; i < n_buffers; i++) { for (size_t i = 0; i < n_buffers; i++) {
ggml_backend_buffer_free(buffers[i]); ggml_backend_buffer_free(buffers[i]);
} }
free(buffers); free(*buffers);
}
return NULL; return NULL;
} }
@ -887,7 +883,7 @@ ggml_backend_buffer_t ggml_backend_alloc_ctx_tensors_from_buft(struct ggml_conte
} else { } else {
buffer = ggml_backend_multi_buffer_alloc_buffer(buffers, n_buffers); buffer = ggml_backend_multi_buffer_alloc_buffer(buffers, n_buffers);
} }
free(buffers); free(*buffers);
return buffer; return buffer;
} }