Changeset 777
- Timestamp:
- 12/05/10 05:23:42 (14 years ago)
- Files:
-
- branches/dmd-1.x/src/mangle.c (modified) (1 diff)
- trunk/src/mangle.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
branches/dmd-1.x/src/mangle.c
r428 r777 205 205 parent = NULL; 206 206 207 207 char *id = Dsymbol::mangle(); 208 208 parent = parentsave; 209 209 return id; 210 210 } 211 211 212 212 213 213 char *TemplateInstance::mangle() 214 214 { 215 215 OutBuffer buf; 216 216 char *id; 217 217 218 218 #if 0 219 219 printf("TemplateInstance::mangle() %s", toChars()); 220 220 if (parent) 221 221 printf(" parent = %s %s", parent->kind(), parent->toChars()); 222 222 printf("\n"); 223 223 #endif 224 224 id = ident ? ident->toChars() : toChars(); 225 Dsymbol *par = isnested || isTemplateMixin() ? parent : tempdecl->parent; 225 226 if (!tempdecl) 226 227 error("is not defined"); 227 else if ( tempdecl->parent)228 { 229 char *p = tempdecl->parent->mangle();228 else if (par) 229 { 230 char *p = par->mangle(); 230 231 if (p[0] == '_' && p[1] == 'D') 231 232 p += 2; 232 233 buf.writestring(p); 233 234 } 234 235 buf.printf("%zu%s", strlen(id), id); 235 236 id = buf.toChars(); 236 237 buf.data = NULL; 237 238 //printf("TemplateInstance::mangle() %s = %s\n", toChars(), id); 238 239 return id; 239 240 } 240 241 241 242 242 243 243 244 char *Dsymbol::mangle() 244 245 { 245 246 OutBuffer buf; 246 247 char *id; 247 248 248 249 #if 0 249 250 printf("Dsymbol::mangle() '%s'", toChars()); trunk/src/mangle.c
r428 r777 199 199 ident == Id::TypeInfo_Tuple || 200 200 this == object || 201 201 this == classinfo || 202 202 this == Module::moduleinfo || 203 203 memcmp(ident->toChars(), "TypeInfo_", 9) == 0 204 204 ) 205 205 parent = NULL; 206 206 207 207 char *id = Dsymbol::mangle(); 208 208 parent = parentsave; 209 209 return id; 210 210 } 211 211 212 212 213 213 char *TemplateInstance::mangle() 214 214 { 215 215 OutBuffer buf; 216 216 char *id; 217 217 218 218 #if 0 219 printf("TemplateInstance::mangle() % s", toChars());219 printf("TemplateInstance::mangle() %p %s", this, toChars()); 220 220 if (parent) 221 221 printf(" parent = %s %s", parent->kind(), parent->toChars()); 222 222 printf("\n"); 223 223 #endif 224 224 id = ident ? ident->toChars() : toChars(); 225 Dsymbol *par = isnested || isTemplateMixin() ? parent : tempdecl->parent; 225 226 if (!tempdecl) 226 227 error("is not defined"); 227 else if ( tempdecl->parent)228 { 229 char *p = tempdecl->parent->mangle();228 else if (par) 229 { 230 char *p = par->mangle(); 230 231 if (p[0] == '_' && p[1] == 'D') 231 232 p += 2; 232 233 buf.writestring(p); 233 234 } 234 235 buf.printf("%zu%s", strlen(id), id); 235 236 id = buf.toChars(); 236 237 buf.data = NULL; 237 238 //printf("TemplateInstance::mangle() %s = %s\n", toChars(), id); 238 239 return id; 239 240 } 240 241 241 242 242 243 243 244 char *Dsymbol::mangle() 244 245 { 245 246 OutBuffer buf; 246 247 char *id; 247 248 248 249 #if 0 249 250 printf("Dsymbol::mangle() '%s'", toChars());
