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 */