[kaffe] Re: flestmail - daily - 365/365 passed (100.0%) (0 errors, 0 failures)

Archie Cobbs archie@dellroad.org
Tue, 17 Sep 2002 11:08:12 -0700 (PDT)


Patrick Tullmann writes:
> I was reading the VM spec last night, and it says that the end of an
> exception range is exclusive, vs. the start being inclusive.  Since
> that's exactly what's happening (the exception is being re-tossed at
> the very end of the coverage), I changed:
> 	if (pc < start_pc || pc > end_pc) {
> 	       continue;
> 	}
> to:
> 	if (pc < start_pc || pc >= end_pc) {
> 	       continue;
> 	}
> in the loop over the available exception handlers in
> findExceptionBlockInMethod.  This "fixed" the problem.  However, that
> comparison hasn't been touched since December `98.  I have a hard time
> believing the interpreter has never encountered this situation
> before...  (Perhaps the end_pc's were fixed up elsewhere at some
> point?)
> 
> Hmm.... compiling it with kcj 'Version 2.1B released 17. July 2002' or
> jikes 'Version 1.13 3/1/2001' doesn't make any difference...  Also,
> Sun's JDK1.4 can complete either compiled version of the test just
> fine.
> 
> So, I think that's the fix.  I'm still wary because I wonder why it
> ever worked... :)

This seems reasonable to me.. as it's probably unlikely in practice
for an exception to occur exactly on the very first instruction
after an exception range.

Good catch, I'd say :-)

-Archie

__________________________________________________________________________
Archie Cobbs     *     Packet Design     *     http://www.packetdesign.com