transliteration: drop syllable chain when not needed

This commit is contained in:
Vlasta Vesely 2018-05-18 10:09:06 +02:00
parent abffd96948
commit 8c4061e171
3 changed files with 16 additions and 1 deletions

View file

@ -69,3 +69,14 @@ char *syllable_chain_to_string(struct syllable *head)
return buffer;
}
void syllable_chain_drop(struct syllable *head)
{
struct syllable *walk = head, *next;
while (walk) {
next = walk->next;
syllable_drop(walk);
walk = next;
}
}

View file

@ -17,5 +17,6 @@ struct syllable *syllable_append(struct syllable *tail, const char *data);
unsigned int syllable_chain_length(struct syllable *head);
char *syllable_chain_to_string(struct syllable *head);
void syllable_chain_drop(struct syllable *head);
#endif /* __SYLLABE_H */

View file

@ -85,7 +85,10 @@ char *transliterate_devanagari_to_latin(const char *text,
apply_transliteration_filters(head, context->filters);
return syllable_chain_to_string(head);
tmp = syllable_chain_to_string(head);
syllable_chain_drop(head);
return tmp;
}
void transliteration_context_drop(struct transliteration_context *context)