Mercurial > vim
comparison src/digraph.c @ 13121:3321582cae78 v8.0.1435
patch 8.0.1435: memory leak in test_arabic
commit https://github.com/vim/vim/commit/501383236d203bacad758e82e47a07b877a3b63b
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Jan 28 17:05:16 2018 +0100
patch 8.0.1435: memory leak in test_arabic
Problem: Memory leak in test_arabic.
Solution: Free the from and to parts. (Christian Brabandt, closes https://github.com/vim/vim/issues/2569)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 28 Jan 2018 17:15:05 +0100 |
parents | 351cf7c67bbe |
children | 81c348d40312 |
comparison
equal
deleted
inserted
replaced
13120:9a04f8e88adc | 13121:3321582cae78 |
---|---|
2450 kp = (kmap_T *)curbuf->b_kmap_ga.ga_data; | 2450 kp = (kmap_T *)curbuf->b_kmap_ga.ga_data; |
2451 for (i = 0; i < curbuf->b_kmap_ga.ga_len; ++i) | 2451 for (i = 0; i < curbuf->b_kmap_ga.ga_len; ++i) |
2452 { | 2452 { |
2453 vim_snprintf((char *)buf, sizeof(buf), "<buffer> %s", kp[i].from); | 2453 vim_snprintf((char *)buf, sizeof(buf), "<buffer> %s", kp[i].from); |
2454 (void)do_map(1, buf, LANGMAP, FALSE); | 2454 (void)do_map(1, buf, LANGMAP, FALSE); |
2455 vim_free(kp[i].from); | |
2456 vim_free(kp[i].to); | |
2457 } | 2455 } |
2456 keymap_clear(&curbuf->b_kmap_ga); | |
2458 | 2457 |
2459 p_cpo = save_cpo; | 2458 p_cpo = save_cpo; |
2460 | 2459 |
2461 ga_clear(&curbuf->b_kmap_ga); | 2460 ga_clear(&curbuf->b_kmap_ga); |
2462 curbuf->b_kmap_state &= ~KEYMAP_LOADED; | 2461 curbuf->b_kmap_state &= ~KEYMAP_LOADED; |
2463 status_redraw_curbuf(); | 2462 status_redraw_curbuf(); |
2464 } | 2463 } |
2465 | 2464 |
2465 void | |
2466 keymap_clear(garray_T *kmap) | |
2467 { | |
2468 int i; | |
2469 kmap_T *kp = (kmap_T *)kmap->ga_data; | |
2470 | |
2471 for (i = 0; i < kmap->ga_len; ++i) | |
2472 { | |
2473 vim_free(kp[i].from); | |
2474 vim_free(kp[i].to); | |
2475 } | |
2476 } | |
2466 #endif /* FEAT_KEYMAP */ | 2477 #endif /* FEAT_KEYMAP */ |