Edwin Steiner
Christian Thalinger
- $Id: linker.c 3351 2005-10-05 11:53:28Z edwin $
+ $Id: linker.c 3685 2005-11-16 13:28:59Z twisti $
*/
/* has not yet been recorded as an initiating loader for the class */
/* this is needed so subsequent code can assume that self-refs */
/* will always resolve lazily */
- classcache_store(c->classloader,c,false);
+ /* No need to do it for the bootloader - it is always registered */
+ /* as initiating loader for the classes it loads. */
+ if (c->classloader)
+ classcache_store(c->classloader,c,false);
/* ok, this class is somewhat linked */
switch (c->name->text[1]) {
case '[':
/* c is an array of arrays. */
- u = utf_new_intern(c->name->text + 1, namelen - 1);
+ u = utf_new(c->name->text + 1, namelen - 1);
if (!(comp = load_class_from_classloader(u, c->classloader)))
return NULL;
break;
case 'L':
/* c is an array of objects. */
- u = utf_new_intern(c->name->text + 2, namelen - 3);
+ u = utf_new(c->name->text + 2, namelen - 3);
if (!(comp = load_class_from_classloader(u, c->classloader)))
return NULL;
break;
break;
default:
- *exceptionptr = new_classnotfoundexception(c->name);
+ *exceptionptr = new_noclassdeffounderror(c->name);
return NULL;
}