mirror of
https://github.com/leejet/stable-diffusion.cpp.git
synced 2026-06-17 03:37:20 +00:00
feat: add free_sd_images function to manage memory for C API (#1633)
This commit is contained in:
parent
c20769b2c8
commit
1fb6b22850
@ -491,6 +491,10 @@ SD_API bool preprocess_canny(sd_image_t image,
|
||||
SD_API const char* sd_commit(void);
|
||||
SD_API const char* sd_version(void);
|
||||
|
||||
// for C API, caller needs to call free_sd_images to free the memory after use
|
||||
// This helps avoid CRT problems on Windows when memory is allocated in the library but freed in the caller, which may use a different CRT.
|
||||
SD_API void free_sd_images(sd_image_t* result_images, int num_images);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -5561,3 +5561,18 @@ SD_API bool generate_video(sd_ctx_t* sd_ctx,
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
SD_API void free_sd_images(sd_image_t* result_images, int num_images) {
|
||||
if (result_images == nullptr) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (int i = 0; i < num_images; ++i) {
|
||||
if (result_images[i].data != nullptr) {
|
||||
free(result_images[i].data);
|
||||
result_images[i].data = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
free(result_images);
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user