bug in processClass()

Patrick Tullmann tullmann at cs.utah.edu
Mon Aug 9 12:52:10 PDT 1999


Godmar Back wrote:

> If class->superclass is 0, you check its state 'field' (?) --- this
> may not be what you want.  It may segfault at this point, try to
> load NullPointerException.class and deadlock.

D'oh, that's embarassing.  Would anyone belive that I was just trying
to see if folks out there were paying attention?  :) You pass, of
course.  :)


> > @@ -385,6 +387,8 @@
> > 					     CSTATE_COMPLETE, einfo);
> > 			classLock = lockMutex(class);
> > 			if (success == false) {
> > +				if (class->superclass->state == CSTATE_INIT_FAILED)
> > +					SET_CLASS_STATE(CSTATE_INIT_FAILED);
> > 				goto done;
> > 			}
> > 		}
> 
> This looks better --- maybe try only this part of the patch(?)

Using just this bit of the patch, both my new test and
ProcessClassTest pass!

Thanks Godmar!

-Pat

----- ----- ---- ---  ---  --   -    -      -         -               -
Pat Tullmann                                       tullmann at cs.utah.edu
	    He who dies with the most toys is still dead.



More information about the kaffe mailing list