public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug libgcj/17738] New: Binary Compatibility: _Jv_FindClassInCache
@ 2004-09-29 20:54 tromey at gcc dot gnu dot org
2004-09-29 22:47 ` [Bug libgcj/17738] " pinskia at gcc dot gnu dot org
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: tromey at gcc dot gnu dot org @ 2004-09-29 20:54 UTC (permalink / raw)
To: gcc-bugs
Right now I think interpreted classes and other things
loaded by the system class loader are stored in the
internal class cache.
First, this seems incorrect. I think it would be better
to use this only for classes that are linked into the
application and thus registered before the VM has been
brought up. Once the VM is up, new classes should be
registered with the system ClassLoader (via the loadedClasses
map).
Second, I believe we do multiple calls to _Jv_FindClassInCache
when trying to load a class. With the change above we should
only need one, at the very lowest level of the search.
--
Summary: Binary Compatibility: _Jv_FindClassInCache
Product: gcc
Version: 4.0.0
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: libgcj
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: tromey at gcc dot gnu dot org
CC: gcc-bugs at gcc dot gnu dot org,java-prs at gcc dot gnu
dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17738
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug libgcj/17738] Binary Compatibility: _Jv_FindClassInCache
2004-09-29 20:54 [Bug libgcj/17738] New: Binary Compatibility: _Jv_FindClassInCache tromey at gcc dot gnu dot org
@ 2004-09-29 22:47 ` pinskia at gcc dot gnu dot org
2005-01-07 23:52 ` tromey at gcc dot gnu dot org
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-09-29 22:47 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From pinskia at gcc dot gnu dot org 2004-09-29 22:47 -------
Confirmed.
--
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Ever Confirmed| |1
Last reconfirmed|0000-00-00 00:00:00 |2004-09-29 22:47:03
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17738
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug libgcj/17738] Binary Compatibility: _Jv_FindClassInCache
2004-09-29 20:54 [Bug libgcj/17738] New: Binary Compatibility: _Jv_FindClassInCache tromey at gcc dot gnu dot org
2004-09-29 22:47 ` [Bug libgcj/17738] " pinskia at gcc dot gnu dot org
@ 2005-01-07 23:52 ` tromey at gcc dot gnu dot org
2005-01-10 19:40 ` cvs-commit at gcc dot gnu dot org
2005-01-10 19:41 ` tromey at gcc dot gnu dot org
3 siblings, 0 replies; 5+ messages in thread
From: tromey at gcc dot gnu dot org @ 2005-01-07 23:52 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From tromey at gcc dot gnu dot org 2005-01-07 23:52 -------
I'm testing a fix
--
What |Removed |Added
----------------------------------------------------------------------------
AssignedTo|unassigned at gcc dot gnu |tromey at gcc dot gnu dot
|dot org |org
Status|NEW |ASSIGNED
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17738
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug libgcj/17738] Binary Compatibility: _Jv_FindClassInCache
2004-09-29 20:54 [Bug libgcj/17738] New: Binary Compatibility: _Jv_FindClassInCache tromey at gcc dot gnu dot org
2004-09-29 22:47 ` [Bug libgcj/17738] " pinskia at gcc dot gnu dot org
2005-01-07 23:52 ` tromey at gcc dot gnu dot org
@ 2005-01-10 19:40 ` cvs-commit at gcc dot gnu dot org
2005-01-10 19:41 ` tromey at gcc dot gnu dot org
3 siblings, 0 replies; 5+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2005-01-10 19:40 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From cvs-commit at gcc dot gnu dot org 2005-01-10 19:39 -------
Subject: Bug 17738
CVSROOT: /cvs/gcc
Module name: gcc
Changes by: tromey@gcc.gnu.org 2005-01-10 19:39:26
Modified files:
libjava : ChangeLog defineclass.cc prims.cc
libjava/gnu/gcj/runtime: VMClassLoader.java natVMClassLoader.cc
libjava/include: jvm.h
libjava/java/lang: Class.h Package.java VMClassLoader.java
natClassLoader.cc natVMClassLoader.cc
Log message:
PR libgcj/12016, PR libgcj/18405, PR libgcj/17738:
* java/lang/Package.java (getPackages): Use VMClassLoader when
appropriate.
(getPackage): Likewise.
* prims.cc (_Jv_CreateJavaVM): Call
_Jv_RegisterBootstrapPackages.
* include/jvm.h (_Jv_RegisterBootstrapPackages): Declare.
* java/lang/VMClassLoader.java (getPackage): Rewrote.
(getPackages): Likewise.
(definedPackages): New field.
(definePackageForNative): New method.
* java/lang/Class.h (_Jv_FindClassInCache): Updated.
* java/lang/natVMClassLoader.cc (loadClass): Updated.
* defineclass.cc (handleClassBegin): Use
ClassLoader.findLoadedClass.
* java/lang/natClassLoader.cc (_Jv_RegisterInitiatingLoader):
Rewrote.
(struct _Jv_LoaderInfo): Removed.
(initiated_classes): Likewise.
(_Jv_UnregisterClass): Don't use initiated_classes.
(_Jv_FindClassInCache): Likewise. Removed 'loader' argument.
(_Jv_FindClass): Register classes found during boostrap.
(BOOTSTRAP_CLASS_LIST_SIZE): New define.
(bootstrap_class_list): New global.
(bootstrap_index): Likewise.
(_Jv_RegisterBootstrapPackages): New function.
* gnu/gcj/runtime/natVMClassLoader.cc (findClass): Call
definePackageForNative.
(findClass): Updated.
* gnu/gcj/runtime/VMClassLoader.java (definePackageForNative):
New method.
Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libjava/ChangeLog.diff?cvsroot=gcc&r1=1.3280&r2=1.3281
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libjava/defineclass.cc.diff?cvsroot=gcc&r1=1.42&r2=1.43
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libjava/prims.cc.diff?cvsroot=gcc&r1=1.100&r2=1.101
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libjava/gnu/gcj/runtime/VMClassLoader.java.diff?cvsroot=gcc&r1=1.16&r2=1.17
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libjava/gnu/gcj/runtime/natVMClassLoader.cc.diff?cvsroot=gcc&r1=1.2&r2=1.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libjava/include/jvm.h.diff?cvsroot=gcc&r1=1.72&r2=1.73
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libjava/java/lang/Class.h.diff?cvsroot=gcc&r1=1.74&r2=1.75
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libjava/java/lang/Package.java.diff?cvsroot=gcc&r1=1.9&r2=1.10
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libjava/java/lang/VMClassLoader.java.diff?cvsroot=gcc&r1=1.11&r2=1.12
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libjava/java/lang/natClassLoader.cc.diff?cvsroot=gcc&r1=1.73&r2=1.74
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libjava/java/lang/natVMClassLoader.cc.diff?cvsroot=gcc&r1=1.3&r2=1.4
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17738
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug libgcj/17738] Binary Compatibility: _Jv_FindClassInCache
2004-09-29 20:54 [Bug libgcj/17738] New: Binary Compatibility: _Jv_FindClassInCache tromey at gcc dot gnu dot org
` (2 preceding siblings ...)
2005-01-10 19:40 ` cvs-commit at gcc dot gnu dot org
@ 2005-01-10 19:41 ` tromey at gcc dot gnu dot org
3 siblings, 0 replies; 5+ messages in thread
From: tromey at gcc dot gnu dot org @ 2005-01-10 19:41 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From tromey at gcc dot gnu dot org 2005-01-10 19:40 -------
I've checked in the fix
--
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution| |FIXED
Target Milestone|--- |4.0.0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17738
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2005-01-10 19:41 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-09-29 20:54 [Bug libgcj/17738] New: Binary Compatibility: _Jv_FindClassInCache tromey at gcc dot gnu dot org
2004-09-29 22:47 ` [Bug libgcj/17738] " pinskia at gcc dot gnu dot org
2005-01-07 23:52 ` tromey at gcc dot gnu dot org
2005-01-10 19:40 ` cvs-commit at gcc dot gnu dot org
2005-01-10 19:41 ` tromey at gcc dot gnu dot org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).