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_commit(void);
|
||||||
SD_API const char* sd_version(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
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@ -5561,3 +5561,18 @@ SD_API bool generate_video(sd_ctx_t* sd_ctx,
|
|||||||
}
|
}
|
||||||
return true;
|
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