diff options
Diffstat (limited to 'src/block.c')
| -rw-r--r-- | src/block.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/src/block.c b/src/block.c index 6a7311e..c844e9b 100644 --- a/src/block.c +++ b/src/block.c @@ -5,6 +5,21 @@ #include "util.h" #include "any_log.h" +extern const block_scheme_t block_text_scheme; +extern const block_scheme_t block_group_scheme; +extern const block_scheme_t block_ram_scheme; +extern const block_scheme_t block_fs_scheme; +extern const block_scheme_t block_date_scheme; + +const block_scheme_t *block_schemes[] = { + &block_text_scheme, + &block_group_scheme, + &block_ram_scheme, + &block_fs_scheme, + &block_date_scheme, + NULL, +}; + void block_update(block_t *block) { if (block->update_fn != NULL) { @@ -34,7 +49,8 @@ void block_update(block_t *block) void block_free(block_t *block) { free(block->label); - assert(block->clean_fn != NULL); - block->clean_fn(block); + assert(block->scheme != NULL); + assert(block->scheme->clean_fn != NULL); + block->scheme->clean_fn(block); free(block); } |
