javaprims.h (_Jv_RegisterClassHook): New extern declaration.
* gcj/javaprims.h (_Jv_RegisterClassHook): New extern declaration. (_Jv_RegisterClassHookDefault): Likewise. * java/lang/Class.h (_Jv_RegisterClassHookDefault): Declare as friend. * java/lang/natClassLoader.cc (_Jv_RegisterClassHook): New variable. (_Jv_RegisterClassHookDefault): New.function. (_Jv_RegisterClasses): Call _Jv_RegisterClassHook. From-SVN: r45344
This commit is contained in:
parent
8635bb79f2
commit
dee45a7f96
4 changed files with 27 additions and 3 deletions
|
@ -439,9 +439,8 @@ _Jv_RegisterClasses (jclass *classes)
|
|||
for (; *classes; ++classes)
|
||||
{
|
||||
jclass klass = *classes;
|
||||
jint hash = HASH_UTF (klass->name);
|
||||
klass->next = loaded_classes[hash];
|
||||
loaded_classes[hash] = klass;
|
||||
|
||||
(*_Jv_RegisterClassHook) (klass);
|
||||
|
||||
// registering a compiled class causes
|
||||
// it to be immediately "prepared".
|
||||
|
@ -450,6 +449,21 @@ _Jv_RegisterClasses (jclass *classes)
|
|||
}
|
||||
}
|
||||
|
||||
void
|
||||
_Jv_RegisterClassHookDefault (jclass klass)
|
||||
{
|
||||
jint hash = HASH_UTF (klass->name);
|
||||
klass->next = loaded_classes[hash];
|
||||
loaded_classes[hash] = klass;
|
||||
}
|
||||
|
||||
// A pointer to a function that actually registers a class.
|
||||
// Normally _Jv_RegisterClassHookDefault, but could be some other function
|
||||
// that registers the class in e.g. a ClassLoader-local table.
|
||||
// Should synchronize on Class:class$ while setting/restore this variable.
|
||||
|
||||
void (*_Jv_RegisterClassHook) (jclass cl) = _Jv_RegisterClassHookDefault;
|
||||
|
||||
void
|
||||
_Jv_RegisterClass (jclass klass)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue