Ivan, could this enumeration scenario be possible?

1) JIT reports a base to GC
2) GC relocates the base and updates references.
3) JIT reports MPTR, looks for the base, founds the patched base on the
stack and the resulting offset becomes invalid?

The previous GC (gcv4) did not relocate object during the enumeration
process. If gcv4.1 does this is the reason of the problem.
?

On 10/5/06, Ivan Volosyuk <[EMAIL PROTECTED]> wrote:

On 10/5/06, Mikhail Fursov <[EMAIL PROTECTED]> wrote:
> On 10/5/06, Ivan Volosyuk <[EMAIL PROTECTED]> wrote:
> >
> > Is this can be a problem? If the base pointer is optimized out and we
> > will find different object base?
> > --
> > Ivan
> >
> > The base pointer for mptr with unknown offset must live as long as
mptr is
> alive.
> The 'gcpoint' pass adds pseudo usages for such bases after every call
> instruction where mptr with unknown offset is used.
> So if base pointer is lost this is a bug.

I can make a patch which will check this assertion in the GC enumeration
code.
--
Ivan

---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




--
Mikhail Fursov

Reply via email to