From 877d64eeb1003f71d7c32788598c1f293331270f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Wed, 29 Jul 2009 10:50:43 +0000 Subject: [PATCH] * The gcc2 demangler didn't like functions without any arguments. * first_argument() never returns NULL, so we don't have to check for it. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31899 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/kernel/debugger/demangle/gcc2.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/add-ons/kernel/debugger/demangle/gcc2.cpp b/src/add-ons/kernel/debugger/demangle/gcc2.cpp index b28c56350d..b9c6efd897 100644 --- a/src/add-ons/kernel/debugger/demangle/gcc2.cpp +++ b/src/add-ons/kernel/debugger/demangle/gcc2.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2008, Axel Dörfler, axeld@pinc-software.de. + * Copyright 2008-2009, Axel Dörfler, axeld@pinc-software.de. * This file may be used under the terms of the MIT License. */ @@ -240,6 +240,9 @@ argument_length(const char** _arg) ignore_qualifiers(_arg); + if (!**_arg) + return 0; + // See if it's a built-in type if (**_arg != 'Q' && !isdigit(**_arg)) return 1; @@ -254,7 +257,7 @@ argument_length(const char** _arg) static const char* next_argument(const char* arg) { - if (arg == NULL) + if (arg == NULL || !arg[0]) return NULL; uint32 length = argument_length(&arg); @@ -331,7 +334,7 @@ get_next_argument_internal(uint32* _cookie, const char* symbol, char* name, const char* arg = first_argument(mangled); // (void) is not an argument - if (arg != NULL && arg[0] == 'v') + if (arg[0] == 'v') return B_ENTRY_NOT_FOUND; uint32 current = *_cookie;