changeset 1882:39ef93f82f04

Free container row data memory on item delete on Windows.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Tue, 13 Aug 2013 20:41:59 +0000
parents 653ccb517aa1
children 0fecaedb83fa
files win/dw.c
diffstat 1 files changed, 22 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/win/dw.c	Sat Aug 10 06:57:00 2013 +0000
+++ b/win/dw.c	Tue Aug 13 20:41:59 2013 +0000
@@ -2276,6 +2276,28 @@
 
             _resize_notebook_page(tem->hwndFrom, num);
          }
+         else if(tem->code == LVN_DELETEITEM)
+         {
+            NMLISTVIEW FAR *lem=(NMLISTVIEW FAR *)mp2;
+            LV_ITEM lvi;
+            void **params;
+
+            memset(&lvi, 0, sizeof(LV_ITEM));
+
+            lvi.iItem = lem->iItem;
+            lvi.mask = LVIF_PARAM;
+
+            ListView_GetItem(lem->hdr.hwndFrom, &lvi);
+            params = (void **)lvi.lParam;
+
+            /* Free row data */
+            if(params)
+            {
+               if(params[_DW_DATA_TYPE_STRING])
+                  free(params[_DW_DATA_TYPE_STRING]);
+               free(params);
+            }
+         }
       }
       break;
    case WM_HSCROLL: