summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'extract/src/document.c')
-rw-r--r--extract/src/document.c34
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);
+}