Changeset 12818


Ignore:
Timestamp:
Sep 11, 2009, 8:10:22 PM (10 years ago)
Author:
rme
Message:

In handle_fault(), when handling a write to a watched object, pass both the
faulting address and the lisp object to the error callback.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/lisp-kernel/x86-exceptions.c

    r12809 r12818  
    828828        /* caught a write to a watched object */
    829829        LispObj cmain = nrs_CMAIN.vcell;
    830         LispObj object = (LispObj)a->low + fulltag_misc; /* always uvectors */
     830        LispObj obj = (LispObj)a->low + fulltag_misc; /* always uvectors */
    831831
    832832        if ((fulltag_of(cmain) == fulltag_misc) &&
     
    834834          LispObj xcf = create_exception_callback_frame(xp, tcr);
    835835          int skip;
    836           LispObj addr = (LispObj)a->low;
    837836
    838837          /* The magic 2 means this was a write to a watchd object */
    839           skip = callback_to_lisp(tcr, cmain, xp, xcf, SIGSEGV, 2, object, 0);
     838          skip = callback_to_lisp(tcr, cmain, xp, xcf, SIGSEGV, 2, addr, obj);
    840839          xpPC(xp) += skip;
    841840          return true;
Note: See TracChangeset for help on using the changeset viewer.