mirror of
https://github.com/varun-r-mallya/sysprof.git
synced 2026-02-12 16:10:54 +00:00
elfparser: Remove Rust legacy symbol demangling support from the C++ demangler
It isn't reachable anymore now that the rust symbol demangler supports them.
This commit is contained in:
@ -27,8 +27,6 @@ sysprof_cplus_demangle (const char *name)
|
|||||||
char *real_name;
|
char *real_name;
|
||||||
char *ret;
|
char *ret;
|
||||||
int status;
|
int status;
|
||||||
guint i;
|
|
||||||
guint j;
|
|
||||||
|
|
||||||
if (name == NULL)
|
if (name == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -38,35 +36,7 @@ sysprof_cplus_demangle (const char *name)
|
|||||||
if (real_name == NULL)
|
if (real_name == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
/* We need to return a string that is guaranteed it can be freed with
|
ret = g_strdup (real_name);
|
||||||
* g_free() rather than free(), so we might as well look for Legacy
|
|
||||||
* Rust mangling like '$LT$' and '$GT$' while we're at it.
|
|
||||||
*/
|
|
||||||
|
|
||||||
ret = (char *)g_malloc (strlen (real_name) + 1);
|
|
||||||
|
|
||||||
for (i = 0, j = 0; real_name[i]; i++)
|
|
||||||
{
|
|
||||||
if (real_name[i] == '$')
|
|
||||||
{
|
|
||||||
if (real_name[i+1] == 'L' && real_name[i+2] == 'T' && real_name[i+3] == '$')
|
|
||||||
ret[j++] = '<', i += 3;
|
|
||||||
else if (real_name[i+1] == 'G' && real_name[i+2] == 'T' && real_name[i+3] == '$')
|
|
||||||
ret[j++] = '>', i += 3;
|
|
||||||
}
|
|
||||||
else if (real_name[i] == '.' && real_name[i+1] == '.')
|
|
||||||
{
|
|
||||||
ret[j++] = ':', i++;
|
|
||||||
ret[j++] = ':';
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ret[j++] = real_name[i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ret[j] = 0;
|
|
||||||
|
|
||||||
free (real_name);
|
free (real_name);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
|||||||
Reference in New Issue
Block a user