diff options
Diffstat (limited to 'extract/src/document.c')
-rw-r--r-- | extract/src/document.c | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/extract/src/document.c b/extract/src/document.c index d501f259..1999c009 100644 --- a/extract/src/document.c +++ b/extract/src/document.c @@ -66,11 +66,11 @@ void extract_cell_free(extract_alloc_t* alloc, cell_t** pcell) int p; cell_t* cell = *pcell; if (!cell) return; - + outf("cell->lines_num=%i", cell->lines_num); outf("cell->paragraphs_num=%i", cell->paragraphs_num); extract_lines_free(alloc, &cell->lines, cell->lines_num); - + outf("cell=%p cell->paragraphs_num=%i", cell, cell->paragraphs_num); for (p=0; p<cell->paragraphs_num; ++p) { @@ -85,4 +85,34 @@ void extract_cell_free(extract_alloc_t* alloc, cell_t** pcell) extract_free(alloc, pcell); } +int +extract_split_alloc(extract_alloc_t* alloc, split_type_t type, int count, split_t** psplit) +{ + split_t *split; + + if (extract_malloc(alloc, psplit, sizeof(*split) + (count-1) * sizeof(split_t *))) + { + return -1; + } + + split = *psplit; + split->type = type; + split->weight = 0; + split->count = count; + memset(&split->split[0], 0, sizeof(split_t *) * count); + return 0; +} + +void extract_split_free(extract_alloc_t *alloc, split_t **psplit) +{ + int i; + split_t *split = *psplit; + + if (!split) + return; + + for (i = 0; i < split->count; i++) + extract_split_free(alloc, &split->split[i]); + extract_free(alloc, psplit); +} |