Mercurial > vim
annotate src/xpm_w32.c @ 11690:ce434212d682 v8.0.0728
patch 8.0.0728: the terminal structure is never freed
commit https://github.com/vim/vim/commit/96ca27a0ee8ae738cab9fb386984c75c6821e31a
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon Jul 17 23:20:24 2017 +0200
patch 8.0.0728: the terminal structure is never freed
Problem: The terminal structure is never freed.
Solution: Free the structure and unreference what it contains.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Mon, 17 Jul 2017 23:30:03 +0200 |
parents | 4aead6a9b7a9 |
children | 15539899a112 |
rev | line source |
---|---|
10042
4aead6a9b7a9
commit https://github.com/vim/vim/commit/edf3f97ae2af024708ebb4ac614227327033ca47
Christian Brabandt <cb@256bit.org>
parents:
7837
diff
changeset
|
1 /* vi:set ts=8 sts=4 sw=4 noet: |
3322 | 2 * |
7 | 3 * Load XPM image. |
4 * | |
5 * This function is placed in separate file because Xpm headers conflict with | |
6 * Vim ones :( | |
7 * | |
8 * Written by Sergey Khorev. | |
9 * http://iamphet.nm.ru/vim/index.html | |
10 */ | |
11 | |
12 #ifndef WIN32_LEAN_AND_MEAN | |
13 # define WIN32_LEAN_AND_MEAN | |
14 #endif | |
15 #include <windows.h> | |
16 | |
17 #include "xpm_w32.h" | |
18 | |
19 /* Engage Windows support in libXpm */ | |
20 #define FOR_MSW | |
21 | |
22 #include "xpm.h" | |
23 | |
24 /* | |
3322 | 25 * Tries to load an Xpm image from the file "filename". |
26 * Returns -1 on failure. | |
27 * Returns 0 on success and stores image and mask BITMAPS in "hImage" and | |
28 * "hShape". | |
7 | 29 */ |
30 int | |
7837
33ba2adb6065
commit https://github.com/vim/vim/commit/b638a7be952544ceb03052c25b84224577a6494b
Christian Brabandt <cb@256bit.org>
parents:
7807
diff
changeset
|
31 LoadXpmImage( |
33ba2adb6065
commit https://github.com/vim/vim/commit/b638a7be952544ceb03052c25b84224577a6494b
Christian Brabandt <cb@256bit.org>
parents:
7807
diff
changeset
|
32 char *filename, |
33ba2adb6065
commit https://github.com/vim/vim/commit/b638a7be952544ceb03052c25b84224577a6494b
Christian Brabandt <cb@256bit.org>
parents:
7807
diff
changeset
|
33 HBITMAP *hImage, |
33ba2adb6065
commit https://github.com/vim/vim/commit/b638a7be952544ceb03052c25b84224577a6494b
Christian Brabandt <cb@256bit.org>
parents:
7807
diff
changeset
|
34 HBITMAP *hShape) |
7 | 35 { |
3322 | 36 XImage *img; /* loaded image */ |
7 | 37 XImage *shp; /* shapeimage */ |
38 XpmAttributes attr; | |
39 int res; | |
40 HDC hdc = CreateCompatibleDC(NULL); | |
41 | |
42 attr.valuemask = 0; | |
43 res = XpmReadFileToImage(&hdc, filename, &img, &shp, &attr); | |
44 DeleteDC(hdc); | |
45 if (res < 0) | |
46 return -1; | |
3322 | 47 if (shp == NULL) |
7 | 48 { |
3935 | 49 if (img) |
3322 | 50 XDestroyImage(img); |
51 return -1; | |
7 | 52 } |
3322 | 53 *hImage = img->bitmap; |
54 *hShape = shp->bitmap; | |
55 return 0; | |
7 | 56 } |