diff options
Diffstat (limited to 'entry.c')
-rw-r--r-- | entry.c | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/entry.c b/entry.c index 5714978..756a62e 100644 --- a/entry.c +++ b/entry.c @@ -190,21 +190,26 @@ int entry_get_text(struct entry *entry) { return 0; } -void free_entry(struct entry entry) { - if(entry.path != NULL) { - free(entry.path); +void entry_unget_text(struct entry *entry) { + if(entry->text_size > 0 && entry->text != NULL && + munmap(entry->text, entry->text_size) != -1) { + entry->text_size = -1; + entry->text = NULL; } +} - if(entry.link != NULL) { - free(entry.link); +void free_entry(struct entry *entry) { + if(entry->path != NULL) { + free(entry->path); } - if(entry.title != NULL) { - free(entry.title); + if(entry->link != NULL) { + free(entry->link); } - if(entry.text != NULL) { - // TODO return value - munmap(entry.text, entry.text_size); + if(entry->title != NULL) { + free(entry->title); } + + entry_get_text(entry); } |