Skip to content

Commit 20dbf21

Browse files
committed
use type-safe initialization on parameter structs
And clean up a minor leak in the new_sd_ctx function.
1 parent f2cc8bb commit 20dbf21

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

stable-diffusion.cpp

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1538,7 +1538,7 @@ enum scheduler_t str_to_schedule(const char* str) {
15381538
}
15391539

15401540
void sd_ctx_params_init(sd_ctx_params_t* sd_ctx_params) {
1541-
memset((void*)sd_ctx_params, 0, sizeof(sd_ctx_params_t));
1541+
*sd_ctx_params = {};
15421542
sd_ctx_params->vae_decode_only = true;
15431543
sd_ctx_params->vae_tiling = false;
15441544
sd_ctx_params->free_params_immediately = true;
@@ -1621,7 +1621,7 @@ char* sd_ctx_params_to_str(const sd_ctx_params_t* sd_ctx_params) {
16211621
}
16221622

16231623
void sd_sample_params_init(sd_sample_params_t* sample_params) {
1624-
memset((void*)sample_params, 0, sizeof(sd_sample_params_t));
1624+
*sample_params = {};
16251625
sample_params->guidance.txt_cfg = 7.0f;
16261626
sample_params->guidance.img_cfg = INFINITY;
16271627
sample_params->guidance.distilled_guidance = 3.5f;
@@ -1668,9 +1668,9 @@ char* sd_sample_params_to_str(const sd_sample_params_t* sample_params) {
16681668
}
16691669

16701670
void sd_img_gen_params_init(sd_img_gen_params_t* sd_img_gen_params) {
1671-
memset((void*)sd_img_gen_params, 0, sizeof(sd_img_gen_params_t));
1672-
sd_img_gen_params->clip_skip = -1;
1671+
*sd_img_gen_params = {};
16731672
sd_sample_params_init(&sd_img_gen_params->sample_params);
1673+
sd_img_gen_params->clip_skip = -1;
16741674
sd_img_gen_params->ref_images_count = 0;
16751675
sd_img_gen_params->width = 512;
16761676
sd_img_gen_params->height = 512;
@@ -1725,7 +1725,7 @@ char* sd_img_gen_params_to_str(const sd_img_gen_params_t* sd_img_gen_params) {
17251725
}
17261726

17271727
void sd_vid_gen_params_init(sd_vid_gen_params_t* sd_vid_gen_params) {
1728-
memset((void*)sd_vid_gen_params, 0, sizeof(sd_vid_gen_params_t));
1728+
*sd_vid_gen_params = {};
17291729
sd_sample_params_init(&sd_vid_gen_params->sample_params);
17301730
sd_sample_params_init(&sd_vid_gen_params->high_noise_sample_params);
17311731
sd_vid_gen_params->width = 512;
@@ -1747,6 +1747,7 @@ sd_ctx_t* new_sd_ctx(const sd_ctx_params_t* sd_ctx_params) {
17471747

17481748
sd_ctx->sd = new StableDiffusionGGML();
17491749
if (sd_ctx->sd == NULL) {
1750+
free(sd_ctx);
17501751
return NULL;
17511752
}
17521753

0 commit comments

Comments
 (0)