diff options
Diffstat (limited to 'src/dictionary.c')
-rw-r--r-- | src/dictionary.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/dictionary.c b/src/dictionary.c index b7baf05..2b995d4 100644 --- a/src/dictionary.c +++ b/src/dictionary.c | |||
@@ -48,8 +48,7 @@ static struct dictionary_descr dictionary_tab[] = { | |||
48 | struct dictionary * | 48 | struct dictionary * |
49 | dictionary_new (enum dictionary_id id, enum dictionary_type type) | 49 | dictionary_new (enum dictionary_id id, enum dictionary_type type) |
50 | { | 50 | { |
51 | struct dictionary *mp = xmalloc (sizeof mp[0]); | 51 | struct dictionary *mp = grecs_zalloc (sizeof mp[0]); |
52 | memset (mp, 0, sizeof mp[0]); | ||
53 | mp->id = id; | 52 | mp->id = id; |
54 | mp->type = type; | 53 | mp->type = type; |
55 | return mp; | 54 | return mp; |
@@ -92,6 +91,8 @@ int | |||
92 | dictionary_close (struct dictionary *dict, void *handle) | 91 | dictionary_close (struct dictionary *dict, void *handle) |
93 | { | 92 | { |
94 | struct dictionary_descr *mp = dictionary_tab + dict->type; | 93 | struct dictionary_descr *mp = dictionary_tab + dict->type; |
94 | if (mp->free) | ||
95 | mp->free (dict, handle); | ||
95 | if (!mp->close) | 96 | if (!mp->close) |
96 | return 0; | 97 | return 0; |
97 | return mp->close (dict, handle); | 98 | return mp->close (dict, handle); |
@@ -186,7 +187,7 @@ dictionary_copy_result (struct dictionary *dict, const char *res, size_t size) | |||
186 | if (dict->result_size < size + 1) | 187 | if (dict->result_size < size + 1) |
187 | { | 188 | { |
188 | dict->result_size = size + 1; | 189 | dict->result_size = size + 1; |
189 | dict->result = x2realloc (dict->result, &dict->result_size); | 190 | dict->result = grecs_realloc (dict->result, dict->result_size); |
190 | } | 191 | } |
191 | memcpy (dict->result, res, size); | 192 | memcpy (dict->result, res, size); |
192 | dict->result[size] = 0; | 193 | dict->result[size] = 0; |
@@ -206,7 +207,7 @@ dictionary_quote_string (struct dictionary *dict, void *handle, | |||
206 | 207 | ||
207 | if (!input) | 208 | if (!input) |
208 | { | 209 | { |
209 | *poutput = xmalloc (1); | 210 | *poutput = grecs_malloc (1); |
210 | (*poutput)[0] = 0; | 211 | (*poutput)[0] = 0; |
211 | *psize = 1; | 212 | *psize = 1; |
212 | return 0; | 213 | return 0; |
@@ -216,7 +217,7 @@ dictionary_quote_string (struct dictionary *dict, void *handle, | |||
216 | return mp->quote (dict, handle, input, poutput, psize); | 217 | return mp->quote (dict, handle, input, poutput, psize); |
217 | 218 | ||
218 | size = wordsplit_c_quoted_length (input, 0, "e); | 219 | size = wordsplit_c_quoted_length (input, 0, "e); |
219 | output = xmalloc (size + 1); | 220 | output = grecs_malloc (size + 1); |
220 | wordsplit_c_quote_copy (output, input, 0); | 221 | wordsplit_c_quote_copy (output, input, 0); |
221 | output[size] = 0; | 222 | output[size] = 0; |
222 | 223 | ||