review: fix a memory leak introduced by review modification which explained in https://github.com/zhouwg/llama.cpp/pull/1
This commit is contained in:
parent
fdf0272dfb
commit
3e8b61f970
1 changed files with 7 additions and 5 deletions
12
ggml-qnn.cpp
12
ggml-qnn.cpp
|
@ -2771,6 +2771,7 @@ GGML_CALL static bool ggml_backend_buffer_is_qnn(ggml_backend_buffer_t buffer) {
|
||||||
|
|
||||||
GGML_CALL static void ggml_backend_qnn_buffer_free_buffer(ggml_backend_buffer_t buffer) {
|
GGML_CALL static void ggml_backend_qnn_buffer_free_buffer(ggml_backend_buffer_t buffer) {
|
||||||
ggml_backend_qnn_buffer_context * ctx = (ggml_backend_qnn_buffer_context *) buffer->context;
|
ggml_backend_qnn_buffer_context * ctx = (ggml_backend_qnn_buffer_context *) buffer->context;
|
||||||
|
|
||||||
delete ctx;
|
delete ctx;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3105,12 +3106,14 @@ ggml_backend_buffer_type_t ggml_backend_qnn_buffer_type(size_t device) {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//ref:https://github.com/zhouwg/llama.cpp/pull/1
|
||||||
|
static ggml_backend_qnn_buffer_type_context ggml_backend_qnn_buffer_type_contexts[GGML_QNN_MAX_DEVICES];
|
||||||
static ggml_backend_buffer_type ggml_backend_qnn_buffer_types[GGML_QNN_MAX_DEVICES];
|
static ggml_backend_buffer_type ggml_backend_qnn_buffer_types[GGML_QNN_MAX_DEVICES];
|
||||||
|
|
||||||
static bool ggml_backend_qnn_buffer_type_initialized = false;
|
static bool ggml_backend_qnn_buffer_type_initialized = false;
|
||||||
|
|
||||||
if (!ggml_backend_qnn_buffer_type_initialized) {
|
if (!ggml_backend_qnn_buffer_type_initialized) {
|
||||||
for (int i = 0; i < GGML_QNN_MAX_DEVICES; i++) {
|
for (size_t i = 0; i < GGML_QNN_MAX_DEVICES; i++) {
|
||||||
|
auto & context = ggml_backend_qnn_buffer_type_contexts[i];
|
||||||
|
context = { i, std::string(GGML_QNN_NAME) + std::to_string(i) };
|
||||||
ggml_backend_qnn_buffer_types[i] = {
|
ggml_backend_qnn_buffer_types[i] = {
|
||||||
/* .iface = */ {
|
/* .iface = */ {
|
||||||
/* .get_name = */ ggml_backend_qnn_buffer_type_name,
|
/* .get_name = */ ggml_backend_qnn_buffer_type_name,
|
||||||
|
@ -3121,8 +3124,7 @@ ggml_backend_buffer_type_t ggml_backend_qnn_buffer_type(size_t device) {
|
||||||
/* .supports_backend = */ ggml_backend_qnn_buffer_type_supports_backend,
|
/* .supports_backend = */ ggml_backend_qnn_buffer_type_supports_backend,
|
||||||
/* .is_host = */ ggml_backend_qnn_buffer_is_host
|
/* .is_host = */ ggml_backend_qnn_buffer_is_host
|
||||||
},
|
},
|
||||||
/* .context = */ new ggml_backend_qnn_buffer_type_context { device,
|
/* .context = */ & context,
|
||||||
GGML_QNN_NAME + std::to_string(device)},
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
ggml_backend_qnn_buffer_type_initialized = true;
|
ggml_backend_qnn_buffer_type_initialized = true;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue