Bruno Jesus : regedit: Fix item text reading in regedit.

Alexandre Julliard julliard at winehq.org
Fri Apr 27 10:55:45 CDT 2012


Module: wine
Branch: master
Commit: c3821f6c6389e8087a916b6a313d94c39e08abf5
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=c3821f6c6389e8087a916b6a313d94c39e08abf5

Author: Bruno Jesus <00cpxxx at gmail.com>
Date:   Thu Apr 26 23:51:08 2012 -0300

regedit: Fix item text reading in regedit.

---

 programs/regedit/listview.c |   11 ++++-------
 1 files changed, 4 insertions(+), 7 deletions(-)

diff --git a/programs/regedit/listview.c b/programs/regedit/listview.c
index bbd5dd6..6559116 100644
--- a/programs/regedit/listview.c
+++ b/programs/regedit/listview.c
@@ -58,20 +58,17 @@ LPWSTR GetItemText(HWND hwndLV, UINT item)
 {
     LPWSTR newStr, curStr;
     unsigned int maxLen = 128;
+    if (item == 0) return NULL; /* first item is ALWAYS a default */
 
     curStr = HeapAlloc(GetProcessHeap(), 0, maxLen * sizeof(WCHAR));
     if (!curStr) return NULL;
-    if (item == 0) { /* first item is ALWAYS a default */
-        HeapFree(GetProcessHeap(), 0, curStr);
-        return NULL;
-    }
     do {
-        ListView_GetItemTextW(hwndLV, item, 0, curStr, maxLen * sizeof(WCHAR));
+        ListView_GetItemTextW(hwndLV, item, 0, curStr, maxLen);
         if (lstrlenW(curStr) < maxLen - 1) return curStr;
-        newStr = HeapReAlloc(GetProcessHeap(), 0, curStr, maxLen * 2 * sizeof(WCHAR));
+        maxLen *= 2;
+        newStr = HeapReAlloc(GetProcessHeap(), 0, curStr, maxLen * sizeof(WCHAR));
         if (!newStr) break;
         curStr = newStr;
-        maxLen *= 2;
     } while (TRUE);
     HeapFree(GetProcessHeap(), 0, curStr);
     return NULL;




More information about the wine-cvs mailing list