Bug in initThreads() in thread.c
Kim, Jongwon (freefish)
freefish at cselab.snu.ac.kr
Tue Sep 8 23:41:17 PDT 1998
Hi,
In testing Kaffe for Visual C++, I got exception.
The location of exception is add method in java.lang.ThreadGroup.java with JDK1.1.6.
The exception occurred at calling createInitialThread("main") in thread.c.
The instance variable, threads is not null and length is 0.
So I modified to following line.
unhand(standardGroup)->threads = 0; // (HArrayOfObject*)newArray(ThreadClass, 0); by freefish
I don't understand why others did not complain of this.
Did I misunderstand that?
thanks,
Kim, Jongwon.
-----------------------------------------------------------------
void add(Thread t) {
synchronized (this) {
if (destroyed) {
throw new IllegalThreadStateException();
}
if (threads == null) {
threads = new Thread[4];
} else if (nthreads == threads.length) {
Thread newthreads[] = new Thread[nthreads * 2];
System.arraycopy(threads, 0, newthreads, 0, nthreads); // Exception Here!!
threads = newthreads;
}
threads[nthreads] = t;
// This is done last so it doesn't matter in case the
// thread is killed
nthreads++;
}
}
----------------------------------------------------------------
initThreads(void)
{
/* Get a handle on the thread and thread group classes */
ThreadClass = lookupClass(THREADCLASS);
assert(ThreadClass != 0);
ThreadGroupClass = lookupClass(THREADGROUPCLASS);
assert(ThreadGroupClass != 0);
/* Create base group */
standardGroup = (Hjava_lang_ThreadGroup*)newObject(ThreadGroupClass);
assert(standardGroup != 0);
unhand(standardGroup)->parent = 0;
unhand(standardGroup)->name = makeJavaString("main", 4);
unhand(standardGroup)->maxPriority = java_lang_Thread_MAX_PRIORITY;
unhand(standardGroup)->destroyed = 0;
unhand(standardGroup)->daemon = 0;
unhand(standardGroup)->nthreads = 0;
unhand(standardGroup)->threads = 0; // (HArrayOfObject*)newArray(ThreadClass, 0); by freefish
unhand(standardGroup)->ngroups = 0;
unhand(standardGroup)->groups = (HArrayOfObject*)newArray(ThreadGroupClass, 0);
~~~~~~~~~~~~~~~~~~~~~~~~~~
Kim jongwon
freefish at chollian.net
freefish at netsgo.com
~~~~~~~~~~~~~~~~~~~~~~~~~~
More information about the kaffe
mailing list