diff options
Diffstat (limited to 'gdb/utils.c')
-rw-r--r-- | gdb/utils.c | 78 |
1 files changed, 29 insertions, 49 deletions
diff --git a/gdb/utils.c b/gdb/utils.c index d0f2edd..6d62f1c 100644 --- a/gdb/utils.c +++ b/gdb/utils.c @@ -1073,16 +1073,15 @@ xmmalloc (void *md, size_t size) { void *val; + /* See libiberty/xmalloc.c. This function need's to match that's + semantics. It never returns NULL. */ if (size == 0) - { - val = NULL; - } - else - { - val = mmalloc (md, size); - if (val == NULL) - nomem (size); - } + size = 1; + + val = mmalloc (md, size); + if (val == NULL) + nomem (size); + return (val); } @@ -1091,27 +1090,18 @@ xmrealloc (void *md, void *ptr, size_t size) { void *val; + /* See libiberty/xmalloc.c. This function need's to match that's + semantics. It never returns NULL. */ if (size == 0) - { - if (ptr != NULL) - mfree (md, ptr); - val = NULL; - } + size = 1; + + if (ptr != NULL) + val = mrealloc (md, ptr, size); else - { - if (ptr != NULL) - { - val = mrealloc (md, ptr, size); - } - else - { - val = mmalloc (md, size); - } - if (val == NULL) - { - nomem (size); - } - } + val = mmalloc (md, size); + if (val == NULL) + nomem (size); + return (val); } @@ -1119,14 +1109,19 @@ void * xmcalloc (void *md, size_t number, size_t size) { void *mem; + + /* See libiberty/xmalloc.c. This function need's to match that's + semantics. It never returns NULL. */ if (number == 0 || size == 0) - mem = NULL; - else { - mem = mcalloc (md, number, size); - if (mem == NULL) - nomem (number * size); + number = 1; + size = 1; } + + mem = mcalloc (md, number, size); + if (mem == NULL) + nomem (number * size); + return mem; } @@ -2299,22 +2294,7 @@ fprintf_symbol_filtered (struct ui_file *stream, const char *name, } else { - switch (lang) - { - case language_cplus: - demangled = cplus_demangle (name, arg_mode); - break; - case language_java: - demangled = cplus_demangle (name, arg_mode | DMGL_JAVA); - break; - case language_objc: - /* Commented out until ObjC handling is enabled. */ - /*demangled = objc_demangle (name); */ - /*break; */ - default: - demangled = NULL; - break; - } + demangled = language_demangle (language_def (lang), name, arg_mode); fputs_filtered (demangled ? demangled : name, stream); if (demangled != NULL) { |