Rollback to use demangle_name_gcc3() for gcc3+ to get qualified method demangling.

+ Cleanup coding style violations.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31263 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Philippe Houdoin
2009-06-26 23:23:02 +00:00
parent d157bf8522
commit a71dfdd88c
2 changed files with 15 additions and 11 deletions
@@ -7,15 +7,13 @@
#include <SupportDefs.h> #include <SupportDefs.h>
const char*
demangle_symbol(const char* mangledName, char* buffer, size_t bufferSize, const char* demangle_symbol(const char* mangledName, char* buffer, size_t bufferSize,
bool* _isObjectMethod); bool* _isObjectMethod);
status_t status_t get_next_argument(uint32* _cookie, const char* mangledName, char* name,
get_next_argument(uint32* _cookie, const char* mangledName, char* name,
size_t nameSize, int32* _type, size_t* _argumentLength); size_t nameSize, int32* _type, size_t* _argumentLength);
// gcc 2 // gcc 2
const char* demangle_symbol_gcc2(const char* name, char* buffer, const char* demangle_symbol_gcc2(const char* name, char* buffer,
size_t bufferSize, bool* _isObjectMethod); size_t bufferSize, bool* _isObjectMethod);
+12 -6
View File
@@ -3,10 +3,10 @@
* Distributed under the terms of the MIT License. * Distributed under the terms of the MIT License.
*/ */
#include <TypeConstants.h>
#include "Demangler.h" #include "Demangler.h"
#include <TypeConstants.h>
#include "demangle.h" #include "demangle.h"
@@ -17,11 +17,17 @@ Demangler::Demangle(const BString& mangledName)
char buffer[1024]; char buffer[1024];
const char* demangled; const char* demangled;
demangled = demangle_symbol(mangledName.String(), buffer, if (mangledName.Compare("_Z", 2) == 0)
demangled = demangle_name_gcc3(mangledName.String(), buffer,
sizeof(buffer));
else
demangled = demangle_symbol_gcc2(mangledName.String(), buffer,
sizeof(buffer), NULL); sizeof(buffer), NULL);
if (demangled == NULL) if (demangled == NULL)
return mangledName; // name not mangled
return mangledName;
demangledName << demangled << "("; demangledName << demangled << "(";
size_t length; size_t length;
@@ -29,7 +35,7 @@ Demangler::Demangle(const BString& mangledName)
uint32 cookie = 0; uint32 cookie = 0;
while (get_next_argument(&cookie, mangledName.String(), buffer, while (get_next_argument(&cookie, mangledName.String(), buffer,
sizeof(buffer), &type, &length) == B_OK) { sizeof(buffer), &type, &length) == B_OK) {
if (i++ > 0) if (i++ > 0)
demangledName << ", "; demangledName << ", ";