Skip to content

Commit

Permalink
review: fix a memory leak introduced by review modification which exp…
Browse files Browse the repository at this point in the history
…lained in zhouwg#1
  • Loading branch information
zhou.weiguo committed Jun 9, 2024
1 parent fdf0272 commit 3e8b61f
Showing 1 changed file with 7 additions and 5 deletions.
12 changes: 7 additions & 5 deletions ggml-qnn.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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_backend_qnn_buffer_context * ctx = (ggml_backend_qnn_buffer_context *) buffer->context;

delete ctx;
}

Expand Down Expand Up @@ -3105,12 +3106,14 @@ ggml_backend_buffer_type_t ggml_backend_qnn_buffer_type(size_t device) {
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 bool ggml_backend_qnn_buffer_type_initialized = false;

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] = {
/* .iface = */ {
/* .get_name = */ ggml_backend_qnn_buffer_type_name,
Expand All @@ -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,
/* .is_host = */ ggml_backend_qnn_buffer_is_host
},
/* .context = */ new ggml_backend_qnn_buffer_type_context { device,
GGML_QNN_NAME + std::to_string(device)},
/* .context = */ & context,
};
}
ggml_backend_qnn_buffer_type_initialized = true;
Expand Down

0 comments on commit 3e8b61f

Please sign in to comment.