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