re PR libgcj/8142 ('$' in class names vs. dlopen 'dynamic string tokens')
Fix for PR libgcj/8142 * java/lang/natClassLoader.cc (findClass): Skip inner classes when loading native modules. From-SVN: r58066
This commit is contained in:
parent
45c7cbd930
commit
9dac635528
2 changed files with 14 additions and 1 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
2002-10-11 Mark Wielaard <mark@klomp.org>
|
||||||
|
|
||||||
|
Fix for PR libgcj/8142
|
||||||
|
* java/lang/natClassLoader.cc (findClass): Skip inner classes when
|
||||||
|
loading native modules.
|
||||||
|
|
||||||
2002-10-10 Michael Koch <konqueror@gmx.de>
|
2002-10-10 Michael Koch <konqueror@gmx.de>
|
||||||
|
|
||||||
* javax/swing/AbstractListModel.java
|
* javax/swing/AbstractListModel.java
|
||||||
|
|
|
@ -204,7 +204,14 @@ gnu::gcj::runtime::VMClassLoader::findClass (jstring name)
|
||||||
// by `lib-gnu-pkg.so' and `lib-gnu.so'. If loading one of
|
// by `lib-gnu-pkg.so' and `lib-gnu.so'. If loading one of
|
||||||
// these causes the class to appear in the cache, then use it.
|
// these causes the class to appear in the cache, then use it.
|
||||||
java::lang::StringBuffer *sb = new java::lang::StringBuffer (JvNewStringLatin1("lib-"));
|
java::lang::StringBuffer *sb = new java::lang::StringBuffer (JvNewStringLatin1("lib-"));
|
||||||
jstring so_base_name = (sb->append (name)->toString ())->replace ('.', '-');
|
// Skip inner classes
|
||||||
|
jstring cn;
|
||||||
|
jint ci = name->indexOf('$');
|
||||||
|
if (ci == -1)
|
||||||
|
cn = name;
|
||||||
|
else
|
||||||
|
cn = name->substring (0, ci);
|
||||||
|
jstring so_base_name = (sb->append (cn)->toString ())->replace ('.', '-');
|
||||||
|
|
||||||
// Compare against `3' because that is the length of "lib".
|
// Compare against `3' because that is the length of "lib".
|
||||||
while (! klass && so_base_name && so_base_name->length() > 3)
|
while (! klass && so_base_name && so_base_name->length() > 3)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue