Changeset 9

Show
Ignore:
Timestamp:
04/03/05 22:31:40 (4 years ago)
Author:
teqdruid
Message:

Made char* mangled const

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/gdb/c-lang.c

    r8 r9  
    837837} 
    838838 
    839 char* d_demangle(char* mangled, int options) { 
     839char* d_demangle(const char* mangled, int options) { 
     840  char *symbol = mangled; 
    840841  char *output = malloc(strlen(mangled)+20), *orig = output; 
    841842  unsigned char isFunc = 0; 
    842   return NULL; 
    843   if (mangled == strstr(mangled, "_D")) { 
    844     mangled += 2; 
     843  if (mangled == NULL) { 
     844    free(output); 
     845    return NULL; 
     846  } else if (strcmp(mangled, "_Dmain") == 0) { 
     847    free(output); 
     848    return strdup("D main"); 
     849  } 
     850  if (symbol == strstr(symbol, "_D")) { 
     851    symbol += 2; 
    845852    isFunc = 1; 
    846   } else if (mangled == strstr(mangled, "__Class_")) { 
    847     mangled += 8; 
    848   } else if (mangled == strstr(mangled, "__init_")) { 
    849     mangled += 7; 
    850   } else if (mangled == strstr(mangled, "__vtbl_")) { 
    851     mangled += 7; 
    852   } else if (mangled == strstr(mangled, "__modctor_")) { 
    853     mangled += 10; 
    854   } else if (mangled == strstr(mangled, "__moddtor_")) { 
    855     mangled += 10; 
    856   } else if (mangled == strstr(mangled, "__ModuleInfo_")) { 
    857     mangled += 13; 
     853  } else if (symbol == strstr(symbol, "__Class_")) { 
     854    symbol += 8; 
     855  } else if (symbol == strstr(symbol, "__init_")) { 
     856    symbol += 7; 
     857  } else if (symbol == strstr(symbol, "__vtbl_")) { 
     858    symbol += 7; 
     859  } else if (symbol == strstr(symbol, "__modctor_")) { 
     860    symbol += 10; 
     861  } else if (symbol == strstr(symbol, "__moddtor_")) { 
     862    symbol += 10; 
     863  } else if (symbol == strstr(symbol, "__ModuleInfo_")) { 
     864    symbol += 13; 
    858865  } else { 
    859866    free(orig); 
     
    861868  } 
    862869 
    863   if (extractidentifiers(&output, &mangled) < 0) { 
     870  if (extractidentifiers(&output, &symbol) < 0) { 
    864871    free(orig); 
    865872    return NULL; 
    866873  } 
    867874  append(&output, "("); 
    868   if (isFunc == 1 && *mangled == 'F') { 
    869     mangled++; 
    870     while (*mangled != '\0' && *mangled != 'Z') { 
     875  if (isFunc == 1 && *symbol == 'F') { 
     876    symbol++; 
     877    while (*symbol != '\0' && *symbol != 'Z') { 
    871878      if (isFunc == 1) { 
    872879    isFunc++; 
     
    874881    append(&output, ", "); 
    875882      } 
    876       if (extracttypeinfo(&output, &mangled) < 0) { 
     883      if (extracttypeinfo(&output, &symbol) < 0) { 
    877884    free(orig); 
    878885    return NULL; 
  • trunk/gdb/c-lang.h

    r8 r9  
    9696******************************/ 
    9797 
    98 char* d_demangle(char* mangled, int options); 
     98char* d_demangle(const char* mangled, int options); 
    9999 
    100100char* d_sym_demangle(const struct general_symbol_info *gsymbol);