DbgHelp: Don't Use exit(0) when OOM

Robert Shearman rob at codeweavers.com
Wed Sep 29 19:26:16 CDT 2004


Changelog:
Rewrite a section of code so that it doesn't use exit(0) when out of memory.
-------------- next part --------------
Index: wine/dlls/dbghelp/elf_module.c
===================================================================
RCS file: /home/wine/wine/dlls/dbghelp/elf_module.c,v
retrieving revision 1.9
diff -u -p -r1.9 elf_module.c
--- wine/dlls/dbghelp/elf_module.c	30 Aug 2004 19:31:14 -0000	1.9
+++ wine/dlls/dbghelp/elf_module.c	29 Sep 2004 23:46:18 -0000
@@ -733,18 +889,19 @@ static BOOL elf_load_file(struct process
 
     if (elf_info->flags & ELF_INFO_MODULE)
     {
+        struct elf_module_info *elf_module_info = 
+            HeapAlloc(GetProcessHeap(), 0, sizeof(struct elf_module_info));
+        if (!elf_module_info) goto leave;
         elf_info->module = module_new(pcs, filename, DMT_ELF, 
-                                      (load_offset) ? load_offset : start, 
-                                      size, 0, 0);
-        if (!elf_info->module) goto leave;
-        elf_info->module->elf_info = HeapAlloc(GetProcessHeap(), 
-                                               0, sizeof(struct elf_module_info));
-        if (elf_info->module->elf_info == NULL) 
+                                        (load_offset) ? load_offset : start, 
+                                        size, 0, 0);
+        if (!elf_info->module)
         {
-            ERR("OOM\n");
-            exit(0); /* FIXME */
+            HeapFree(GetProcessHeap(), 0, elf_module_info);
+            goto leave;
         }
-            elf_info->module->elf_info->elf_addr = load_offset;
+        elf_info->module->elf_info = elf_module_info;
+        elf_info->module->elf_info->elf_addr = load_offset;
 
         if (dbghelp_options & SYMOPT_DEFERRED_LOADS)
         {


More information about the wine-patches mailing list