llava: improve clip_ctx destructor to not memleak load_image_size (#12834)
This commit is contained in:
parent
a19b5cef16
commit
b32efad2bc
2 changed files with 11 additions and 0 deletions
|
@ -380,6 +380,7 @@ struct clip_ctx {
|
||||||
if (backend_cpu != backend) {
|
if (backend_cpu != backend) {
|
||||||
ggml_backend_free(backend_cpu);
|
ggml_backend_free(backend_cpu);
|
||||||
}
|
}
|
||||||
|
clip_image_size_free(load_image_size);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1618,6 +1619,12 @@ struct clip_image_f32 * clip_image_f32_init() {
|
||||||
return new clip_image_f32();
|
return new clip_image_f32();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void clip_image_size_free(struct clip_image_size * load_image_size) {
|
||||||
|
if (load_image_size == nullptr) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
delete load_image_size;
|
||||||
|
}
|
||||||
void clip_image_u8_free(struct clip_image_u8 * img) { delete img; }
|
void clip_image_u8_free(struct clip_image_u8 * img) { delete img; }
|
||||||
void clip_image_f32_free(struct clip_image_f32 * img) { delete img; }
|
void clip_image_f32_free(struct clip_image_f32 * img) { delete img; }
|
||||||
void clip_image_u8_batch_free(struct clip_image_u8_batch * batch) {
|
void clip_image_u8_batch_free(struct clip_image_u8_batch * batch) {
|
||||||
|
@ -2270,6 +2277,9 @@ ggml_tensor * clip_get_newline_tensor(const struct clip_ctx * ctx) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void clip_free(clip_ctx * ctx) {
|
void clip_free(clip_ctx * ctx) {
|
||||||
|
if (ctx == nullptr) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
delete ctx;
|
delete ctx;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -77,6 +77,7 @@ CLIP_API struct clip_image_size * clip_image_size_init();
|
||||||
CLIP_API struct clip_image_u8 * clip_image_u8_init ();
|
CLIP_API struct clip_image_u8 * clip_image_u8_init ();
|
||||||
CLIP_API struct clip_image_f32 * clip_image_f32_init();
|
CLIP_API struct clip_image_f32 * clip_image_f32_init();
|
||||||
|
|
||||||
|
CLIP_API void clip_image_size_free (struct clip_image_size * img_size);
|
||||||
CLIP_API void clip_image_u8_free (struct clip_image_u8 * img);
|
CLIP_API void clip_image_u8_free (struct clip_image_u8 * img);
|
||||||
CLIP_API void clip_image_f32_free(struct clip_image_f32 * img);
|
CLIP_API void clip_image_f32_free(struct clip_image_f32 * img);
|
||||||
CLIP_API void clip_image_u8_batch_free (struct clip_image_u8_batch * batch);
|
CLIP_API void clip_image_u8_batch_free (struct clip_image_u8_batch * batch);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue