[PATCH 3/7] regedit: Use a helper function to free allocated memory

Hugh McMaster hugh.mcmaster at outlook.com
Wed Jul 26 08:16:30 CDT 2017


Signed-off-by: Hugh McMaster <hugh.mcmaster at outlook.com>
---
 programs/regedit/regproc.c | 49 +++++++++++++++++++++++++---------------------
 1 file changed, 27 insertions(+), 22 deletions(-)

diff --git a/programs/regedit/regproc.c b/programs/regedit/regproc.c
index dd254bd923..4ebfdb728d 100644
--- a/programs/regedit/regproc.c
+++ b/programs/regedit/regproc.c
@@ -57,6 +57,11 @@ static void *heap_alloc(size_t size)
     return buf;
 }
 
+static BOOL heap_free(void *buf)
+{
+    return HeapFree(GetProcessHeap(), 0, buf);
+}
+
 /******************************************************************************
  * Allocates memory and converts input from multibyte to wide chars
  * Returned string must be freed by the caller
@@ -459,7 +464,7 @@ static void close_key(struct parser *parser)
 {
     if (parser->hkey)
     {
-        HeapFree(GetProcessHeap(), 0, parser->key_name);
+        heap_free(parser->key_name);
         parser->key_name = NULL;
 
         RegCloseKey(parser->hkey);
@@ -500,7 +505,7 @@ static LONG open_key(struct parser *parser, WCHAR *path)
 static void free_parser_data(struct parser *parser)
 {
     if (parser->parse_type == REG_DWORD || parser->parse_type == REG_BINARY)
-        HeapFree(GetProcessHeap(), 0, parser->data);
+        heap_free(parser->data);
 
     parser->data = NULL;
     parser->data_size = 0;
@@ -522,7 +527,7 @@ static void prepare_hex_string_data(struct parser *parser)
         {
             parser->data = GetWideStringN(parser->data, parser->data_size, &parser->data_size);
             parser->data_size *= sizeof(WCHAR);
-            HeapFree(GetProcessHeap(), 0, data);
+            heap_free(data);
         }
     }
 }
@@ -580,7 +585,7 @@ static WCHAR *header_state(struct parser *parser, WCHAR *pos)
         header[1] = parser->two_wchars[1];
         lstrcpyW(header + 2, line);
         parser->reg_version = parse_file_header(header);
-        HeapFree(GetProcessHeap(), 0, header);
+        heap_free(header);
     }
     else parser->reg_version = parse_file_header(line);
 
@@ -710,7 +715,7 @@ static WCHAR *delete_key_state(struct parser *parser, WCHAR *pos)
 /* handler for parser DEFAULT_VALUE_NAME state */
 static WCHAR *default_value_name_state(struct parser *parser, WCHAR *pos)
 {
-    HeapFree(GetProcessHeap(), 0, parser->value_name);
+    heap_free(parser->value_name);
     parser->value_name = NULL;
 
     set_state(parser, DATA_START);
@@ -724,7 +729,7 @@ static WCHAR *quoted_value_name_state(struct parser *parser, WCHAR *pos)
 
     if (parser->value_name)
     {
-        HeapFree(GetProcessHeap(), 0, parser->value_name);
+        heap_free(parser->value_name);
         parser->value_name = NULL;
     }
 
@@ -959,7 +964,7 @@ static WCHAR *get_lineA(FILE *fp)
     static char *buf, *next;
     char *line;
 
-    HeapFree(GetProcessHeap(), 0, lineW);
+    heap_free(lineW);
 
     if (!fp) goto cleanup;
 
@@ -1007,7 +1012,7 @@ static WCHAR *get_lineA(FILE *fp)
 
 cleanup:
     lineW = NULL;
-    if (size) HeapFree(GetProcessHeap(), 0, buf);
+    if (size) heap_free(buf);
     size = 0;
     return NULL;
 }
@@ -1062,7 +1067,7 @@ static WCHAR *get_lineW(FILE *fp)
     }
 
 cleanup:
-    if (size) HeapFree(GetProcessHeap(), 0, buf);
+    if (size) heap_free(buf);
     size = 0;
     return NULL;
 }
@@ -1105,7 +1110,7 @@ BOOL import_registry_file(FILE *reg_file)
     if (parser.reg_version == REG_VERSION_FUZZY || parser.reg_version == REG_VERSION_INVALID)
         return parser.reg_version == REG_VERSION_FUZZY;
 
-    HeapFree(GetProcessHeap(), 0, parser.value_name);
+    heap_free(parser.value_name);
     close_key(&parser);
 
     return TRUE;
@@ -1146,7 +1151,7 @@ static void REGPROC_write_line(FILE *fp, const WCHAR *str, BOOL unicode)
     {
         char *strA = GetMultiByteString(str);
         fputs(strA, fp);
-        HeapFree(GetProcessHeap(), 0, strA);
+        heap_free(strA);
     }
 }
 
@@ -1212,8 +1217,8 @@ static size_t export_value_name(FILE *fp, WCHAR *name, size_t len, BOOL unicode)
         WCHAR *buf = heap_alloc((line_len + 4) * sizeof(WCHAR));
         line_len = sprintfW(buf, quoted_fmt, str);
         REGPROC_write_line(fp, buf, unicode);
-        HeapFree(GetProcessHeap(), 0, buf);
-        HeapFree(GetProcessHeap(), 0, str);
+        heap_free(buf);
+        heap_free(str);
     }
     else
     {
@@ -1234,7 +1239,7 @@ static void export_string_data(WCHAR **buf, WCHAR *data, size_t size)
     str = REGPROC_escape_string(data, len, &line_len);
     *buf = heap_alloc((line_len + 3) * sizeof(WCHAR));
     sprintfW(*buf, fmt, str);
-    HeapFree(GetProcessHeap(), 0, str);
+    heap_free(str);
 }
 
 static void export_dword_data(WCHAR **buf, DWORD *data)
@@ -1261,7 +1266,7 @@ static size_t export_hex_data_type(FILE *fp, DWORD type, BOOL unicode)
         WCHAR *buf = heap_alloc(15 * sizeof(WCHAR));
         line_len = sprintfW(buf, hexp_fmt, type);
         REGPROC_write_line(fp, buf, unicode);
-        HeapFree(GetProcessHeap(), 0, buf);
+        heap_free(buf);
     }
 
     return line_len;
@@ -1333,7 +1338,7 @@ static void export_data(FILE *fp, WCHAR *value_name, DWORD value_len, DWORD type
     }
 
     REGPROC_write_line(fp, buf, unicode);
-    HeapFree(GetProcessHeap(), 0, buf);
+    heap_free(buf);
     export_newline(fp, unicode);
 }
 
@@ -1356,7 +1361,7 @@ static void export_key_name(FILE *fp, WCHAR *name, BOOL unicode)
     buf = heap_alloc((lstrlenW(name) + 7) * sizeof(WCHAR));
     sprintfW(buf, fmt, name);
     REGPROC_write_line(fp, buf, unicode);
-    HeapFree(GetProcessHeap(), 0, buf);
+    heap_free(buf);
 }
 
 #define MAX_SUBKEY_LEN   257
@@ -1404,8 +1409,8 @@ static int export_registry_data(FILE *fp, HKEY key, WCHAR *path, BOOL unicode)
         else break;
     }
 
-    HeapFree(GetProcessHeap(), 0, data);
-    HeapFree(GetProcessHeap(), 0, value_name);
+    heap_free(data);
+    heap_free(value_name);
 
     subkey_name = heap_alloc(MAX_SUBKEY_LEN * sizeof(WCHAR));
 
@@ -1424,13 +1429,13 @@ static int export_registry_data(FILE *fp, HKEY key, WCHAR *path, BOOL unicode)
                 export_registry_data(fp, subkey, subkey_path, unicode);
                 RegCloseKey(subkey);
             }
-            HeapFree(GetProcessHeap(), 0, subkey_path);
+            heap_free(subkey_path);
             i++;
         }
         else break;
     }
 
-    HeapFree(GetProcessHeap(), 0, subkey_name);
+    heap_free(subkey_name);
     return 0;
 }
 
@@ -1532,7 +1537,7 @@ static BOOL export_all(WCHAR *file_name, WCHAR *path, BOOL unicode)
 
         export_registry_data(fp, classes[i], class_name, unicode);
 
-        HeapFree(GetProcessHeap(), 0, class_name);
+        heap_free(class_name);
         RegCloseKey(key);
     }
 
-- 
2.13.2




More information about the wine-patches mailing list