diff options
Diffstat (limited to 'src/blocks')
| -rw-r--r-- | src/blocks/date.c | 10 | ||||
| -rw-r--r-- | src/blocks/fs.c | 10 | ||||
| -rw-r--r-- | src/blocks/group.c | 7 | ||||
| -rw-r--r-- | src/blocks/ram.c | 10 | ||||
| -rw-r--r-- | src/blocks/script.c | 10 | ||||
| -rw-r--r-- | src/blocks/text.c | 7 |
6 files changed, 26 insertions, 28 deletions
diff --git a/src/blocks/date.c b/src/blocks/date.c index 4fcdb2a..c9ffb55 100644 --- a/src/blocks/date.c +++ b/src/blocks/date.c @@ -31,13 +31,12 @@ static void block_date_update(block_t *block) assert(date->block.text != NULL); } -static block_t *block_date_alloc(const block_scheme_t *scheme) +static void block_date_init(block_t *block, const block_scheme_t *scheme) { - block_t *block = calloc(1, sizeof(block_date_t)); - block->type = BLOCK_TEXT; + extern const block_scheme_t block_text_scheme; + block_text_scheme.init_fn(block, scheme); block->update_interval = block_date_interval; block->update_fn = block_date_update; - return block; } static void block_date_clean(block_t *block) @@ -65,7 +64,8 @@ static int block_date_validate(block_t *block, const block_scheme_t *scheme) const block_scheme_t block_date_scheme = { .name = "date", .entries = NULL, - .alloc_fn = block_date_alloc, + .size = sizeof(block_date_t), + .init_fn = block_date_init, .clean_fn = block_date_clean, .validate_fn = block_date_validate, }; diff --git a/src/blocks/fs.c b/src/blocks/fs.c index 6069d3e..39b669a 100644 --- a/src/blocks/fs.c +++ b/src/blocks/fs.c @@ -119,13 +119,12 @@ static void block_fs_update(block_t *block) assert(fs->block.text != NULL); } -static block_t *block_fs_alloc(const block_scheme_t *scheme) +static void block_fs_init(block_t *block, const block_scheme_t *scheme) { - block_t *block = calloc(1, sizeof(block_fs_t)); - block->type = BLOCK_TEXT; + extern const block_scheme_t block_text_scheme; + block_text_scheme.init_fn(block, scheme); block->update_interval = block_fs_interval; block->update_fn = block_fs_update; - return block; } static void block_fs_clean(block_t *block) @@ -180,7 +179,8 @@ static const config_entry_t block_fs_entries[] = { const block_scheme_t block_fs_scheme = { .name = "fs", .entries = block_fs_entries, - .alloc_fn = block_fs_alloc, + .size = sizeof(block_fs_t), + .init_fn = block_fs_init, .clean_fn = block_fs_clean, .validate_fn = block_fs_validate, }; diff --git a/src/blocks/group.c b/src/blocks/group.c index 4fdff64..d56ed9a 100644 --- a/src/blocks/group.c +++ b/src/blocks/group.c @@ -1,10 +1,8 @@ #include "../block.h" -static block_t *block_group_alloc(const block_scheme_t *scheme) +static void block_group_init(block_t *block, const block_scheme_t *scheme) { - block_t *block = calloc(1, sizeof(block_group_t)); block->type = BLOCK_GROUP; - return block; } static void block_group_clean(block_t *block) @@ -16,7 +14,8 @@ static void block_group_clean(block_t *block) const block_scheme_t block_group_scheme = { .name = "group", .entries = NULL, - .alloc_fn = block_group_alloc, + .size = sizeof(block_group_t), + .init_fn = block_group_init, .clean_fn = block_group_clean, .validate_fn = NULL, }; diff --git a/src/blocks/ram.c b/src/blocks/ram.c index 46ec361..ed7465f 100644 --- a/src/blocks/ram.c +++ b/src/blocks/ram.c @@ -128,13 +128,12 @@ static void block_ram_update(block_t *block) assert(ram->block.text != NULL); } -static block_t *block_ram_alloc(const block_scheme_t *scheme) +static void block_ram_init(block_t *block, const block_scheme_t *scheme) { - block_t *block = calloc(1, sizeof(block_ram_t)); - block->type = BLOCK_TEXT; + extern const block_scheme_t block_text_scheme; + block_text_scheme.init_fn(block, scheme); block->update_interval = block_ram_interval; block->update_fn = block_ram_update; - return block; } static void block_ram_clean(block_t *block) @@ -176,7 +175,8 @@ static int block_ram_validate(block_t *block, const block_scheme_t *scheme) const block_scheme_t block_ram_scheme = { .name = "ram", .entries = NULL, - .alloc_fn = block_ram_alloc, + .size = sizeof(block_ram_t), + .init_fn = block_ram_init, .clean_fn = block_ram_clean, .validate_fn = block_ram_validate, }; diff --git a/src/blocks/script.c b/src/blocks/script.c index 08ed9e3..51e5328 100644 --- a/src/blocks/script.c +++ b/src/blocks/script.c @@ -43,13 +43,12 @@ static void block_script_update(block_t *block) assert(script->block.text != NULL); } -static block_t *block_script_alloc(const block_scheme_t *scheme) +static void block_script_init(block_t *block, const block_scheme_t *scheme) { - block_t *block = calloc(1, sizeof(block_script_t)); - block->type = BLOCK_TEXT; + extern const block_scheme_t block_text_scheme; + block_text_scheme.init_fn(block, scheme); block->update_interval = block_script_interval; block->update_fn = block_script_update; - return block; } static void block_script_clean(block_t *block) @@ -81,7 +80,8 @@ static const config_entry_t block_script_entries[] = { const block_scheme_t block_script_scheme = { .name = "script", .entries = block_script_entries, - .alloc_fn = block_script_alloc, + .size = sizeof(block_script_t), + .init_fn = block_script_init, .clean_fn = block_script_clean, .validate_fn = block_script_validate, }; diff --git a/src/blocks/text.c b/src/blocks/text.c index 0acb1de..3eba8f4 100644 --- a/src/blocks/text.c +++ b/src/blocks/text.c @@ -2,11 +2,9 @@ #include "../any_log.h" -static block_t *block_text_alloc(const block_scheme_t *scheme) +static void block_text_init(block_t *block, const block_scheme_t *scheme) { - block_t *block = calloc(1, sizeof(block_text_t)); block->type = BLOCK_TEXT; - return block; } static void block_text_clean(block_t *block) @@ -31,7 +29,8 @@ static int block_text_validate(block_t *block, const block_scheme_t *scheme) const block_scheme_t block_text_scheme = { .name = "text", .entries = NULL, - .alloc_fn = block_text_alloc, + .size = sizeof(block_text_t), + .init_fn = block_text_init, .clean_fn = block_text_clean, .validate_fn = block_text_validate, }; |
