aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/menu.c
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2014-12-11 19:05:58 -0500
committerJustin M. Keyes <justinkz@gmail.com>2014-12-11 19:05:58 -0500
commitab1f0bd119a7adf36c59ee389dc7115d0204eacf (patch)
treefa092586a053b42d83052f51b9baac8f36b29817 /src/nvim/menu.c
parent951d00a492c58449d3c241fa710a83051f45dcb7 (diff)
parente11a5699be83684294c8c235a5f5030e12666206 (diff)
downloadrneovim-ab1f0bd119a7adf36c59ee389dc7115d0204eacf.tar.gz
rneovim-ab1f0bd119a7adf36c59ee389dc7115d0204eacf.tar.bz2
rneovim-ab1f0bd119a7adf36c59ee389dc7115d0204eacf.zip
Merge pull request #1643 from philix/ga_deep_clear
GA_DEEP_CLEAR macro for garray memory deallocation
Diffstat (limited to 'src/nvim/menu.c')
-rw-r--r--src/nvim/menu.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/nvim/menu.c b/src/nvim/menu.c
index 1573aaae84..b31b6c1cec 100644
--- a/src/nvim/menu.c
+++ b/src/nvim/menu.c
@@ -1424,6 +1424,12 @@ typedef struct {
static garray_T menutrans_ga = GA_EMPTY_INIT_VALUE;
+#define FREE_MENUTRANS(mt) \
+ menutrans_T* _mt = (mt); \
+ free(_mt->from); \
+ free(_mt->from_noamp); \
+ free(_mt->to)
+
/*
* ":menutrans".
* This function is also defined without the +multi_lang feature, in which
@@ -1441,13 +1447,8 @@ void ex_menutranslate(exarg_T *eap)
* ":menutrans clear": clear all translations.
*/
if (STRNCMP(arg, "clear", 5) == 0 && ends_excmd(*skipwhite(arg + 5))) {
- menutrans_T *tp = (menutrans_T *)menutrans_ga.ga_data;
- for (int i = 0; i < menutrans_ga.ga_len; ++i) {
- free(tp[i].from);
- free(tp[i].from_noamp);
- free(tp[i].to);
- }
- ga_clear(&menutrans_ga);
+ GA_DEEP_CLEAR(&menutrans_ga, menutrans_T, FREE_MENUTRANS);
+
/* Delete all "menutrans_" global variables. */
del_menutrans_vars();
} else {