help-smalltalk
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Help-smalltalk] JIT crashes due non-executable memory


From: Holger Hans Peter Freyther
Subject: Re: [Help-smalltalk] JIT crashes due non-executable memory
Date: Sun, 9 Jun 2013 08:45:56 +0200
User-agent: Mutt/1.5.21 (2010-09-15)

On Sun, Jun 09, 2013 at 08:25:34AM +0200, Holger Hans Peter Freyther wrote:

> d.) Mark the OOP when it is put into the context?
> 
> But then again, why is the CompiledMethod GCed? It should be reachable
> from the Method Dictionary of the method?

    if UNCOMMON (oop->flags & F_CONTEXT)
      {
        gst_method_context ctx;
        intptr_t methodSP;
        ctx = (gst_method_context) object;
        methodSP = TO_INT (ctx->spOffset);
        /* printf("setting up for loop on context %x, sp = %d\n", 
           ctx, methodSP); */
        TAIL_MARK_OOPRANGE (&ctx->objClass,
                            ctx->contextStack + methodSP + 1);

      }

The code is already "walking" the context (if it is present). Now the
code is doing a tail recursion and just doing ctx->method->flags |= for
the F_REACHABLE attribute made more harm than it fixed but I think this
is what should happen (or we put the method OOP onto the stack as well)?


what do you think?

        holger



reply via email to

[Prev in Thread] Current Thread [Next in Thread]