Hugh McMaster : regedit: Use heap_xrealloc() for consistency.

Alexandre Julliard julliard at winehq.org
Thu Jul 27 15:26:15 CDT 2017


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

Author: Hugh McMaster <hugh.mcmaster at outlook.com>
Date:   Thu Jul 27 12:25:07 2017 +0000

regedit: Use heap_xrealloc() for consistency.

Signed-off-by: Hugh McMaster <hugh.mcmaster at outlook.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 programs/regedit/regproc.c | 45 +++++++++++++++++++++++----------------------
 1 file changed, 23 insertions(+), 22 deletions(-)

diff --git a/programs/regedit/regproc.c b/programs/regedit/regproc.c
index b686714..6f94c0f 100644
--- a/programs/regedit/regproc.c
+++ b/programs/regedit/regproc.c
@@ -55,6 +55,24 @@ static void *heap_xalloc(size_t size)
     return buf;
 }
 
+static void *heap_xrealloc(void *buf, size_t size)
+{
+    void *new_buf;
+
+    if (buf)
+        new_buf = HeapReAlloc(GetProcessHeap(), 0, buf, size);
+    else
+        new_buf = HeapAlloc(GetProcessHeap(), 0, size);
+
+    if (!new_buf)
+    {
+        ERR("Out of memory!\n");
+        exit(1);
+    }
+
+    return new_buf;
+}
+
 static BOOL heap_free(void *buf)
 {
     return HeapFree(GetProcessHeap(), 0, buf);
@@ -226,19 +244,6 @@ static inline enum parser_state set_state(struct parser *parser, enum parser_sta
     return ret;
 }
 
-static void *resize_buffer(void *buf, size_t count)
-{
-    void *new_buf;
-
-    if (buf)
-        new_buf = HeapReAlloc(GetProcessHeap(), 0, buf, count);
-    else
-        new_buf = HeapAlloc(GetProcessHeap(), 0, count);
-
-    CHECK_ENOUGH_MEMORY(new_buf);
-    return new_buf;
-}
-
 /******************************************************************************
  * Converts a hex representation of a DWORD into a DWORD.
  */
@@ -286,7 +291,7 @@ static BOOL convert_hex_csv_to_hex(struct parser *parser, WCHAR **str)
 
     /* The worst case is 1 digit + 1 comma per byte */
     size = ((lstrlenW(*str) + 1) / 2) + parser->data_size;
-    parser->data = resize_buffer(parser->data, size);
+    parser->data = heap_xrealloc(parser->data, size);
 
     s = *str;
     d = (BYTE *)parser->data + parser->data_size;
@@ -985,10 +990,8 @@ static WCHAR *get_lineA(FILE *fp)
             memmove(buf, next, len + 1);
             if (size - len < 3)
             {
-                char *new_buf = HeapReAlloc(GetProcessHeap(), 0, buf, size * 2);
-                CHECK_ENOUGH_MEMORY(new_buf);
-                buf = new_buf;
                 size *= 2;
+                buf = heap_xrealloc(buf, size);
             }
             if (!(count = fread(buf + len, 1, size - len - 1, fp)))
             {
@@ -1043,10 +1046,8 @@ static WCHAR *get_lineW(FILE *fp)
             memmove(buf, next, (len + 1) * sizeof(WCHAR));
             if (size - len < 3)
             {
-                WCHAR *new_buf = HeapReAlloc(GetProcessHeap(), 0, buf, (size * 2) * sizeof(WCHAR));
-                CHECK_ENOUGH_MEMORY(new_buf);
-                buf = new_buf;
                 size *= 2;
+                buf = heap_xrealloc(buf, size * sizeof(WCHAR));
             }
             if (!(count = fread(buf + len, sizeof(WCHAR), size - len - 1, fp)))
             {
@@ -1396,12 +1397,12 @@ static int export_registry_data(FILE *fp, HKEY key, WCHAR *path, BOOL unicode)
             if (data_size > max_data_bytes)
             {
                 max_data_bytes = data_size;
-                data = resize_buffer(data, max_data_bytes);
+                data = heap_xrealloc(data, max_data_bytes);
             }
             else
             {
                 max_value_len *= 2;
-                value_name = resize_buffer(value_name, max_value_len * sizeof(WCHAR));
+                value_name = heap_xrealloc(value_name, max_value_len * sizeof(WCHAR));
             }
         }
         else break;




More information about the wine-cvs mailing list