Ignore:
Timestamp:
Jul 27, 2010, 12:59:48 AM (9 years ago)
Author:
gz
Message:

Misc tweaks and fixes from trunk (r13550,r13560,r13568,r13569,r13581,r13583,r13633-13636,r13647,r13648,r13657-r13659,r13675,r13678,r13688,r13743,r13744,r13769,r13773,r13782,r13813,r13814,r13869,r13870,r13873,r13901,r13930,r13943,r13946,r13954,r13961,r13974,r13975,r13978,r13990,r14010,r14012,r14020,r14028-r14030)

Location:
branches/qres/ccl
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • branches/qres/ccl

  • branches/qres/ccl/lisp-kernel/gc-common.c

    r13294 r14049  
    12761276    pkg = 0,
    12771277    itabvec = 0;
    1278   BytePtr oldfree = a->active;
     1278  BytePtr oldfree = a->active, last_zeroed_addr;
    12791279  TCR *other_tcr;
    12801280  natural static_dnodes;
     
    15851585    }
    15861586
    1587     zero_memory_range(a->active, oldfree);
    15881587
    15891588    resize_dynamic_heap(a->active,
    15901589                        (GCephemeral_low == 0) ? lisp_heap_gc_threshold : 0);
     1590
     1591    if (oldfree < a->high) {
     1592      last_zeroed_addr = oldfree;
     1593    } else {
     1594      last_zeroed_addr = a->high;
     1595    }
     1596    zero_memory_range(a->active, last_zeroed_addr);
    15911597
    15921598    /*
  • branches/qres/ccl/lisp-kernel/lisp-debug.c

    r13867 r14049  
    300300          dsisr & (1<<27) ? "protected" : "unmapped",
    301301          addr);
    302 #elif defined(WINDOWS)
     302#elif defined(WINDOWS) || defined(FREEBSD)
     303  /*
     304   * It's not surprising that Windows doesn't have this signal stuff.
     305   * It is somewhat surprising that FreeBSD 6.x lacks the si_code
     306   * constants.  (Subsequent FreeBSD versions define them, though.)
     307   */
    303308#else
    304309  fprintf(dbgout, "received signal %d; faulting address: %p\n",
  • branches/qres/ccl/lisp-kernel/pmcl-kernel.c

    r14048 r14049  
    444444{
    445445  if (len != 0) {
    446     if (CommitMemory(start, len)) {
    447       if (touch_all_pages(start, len)) {
    448         return true;
    449       }
     446    if (!CommitMemory(start, len)) {
     447      return false;
     448    }
     449    if (!touch_all_pages(start, len)) {
     450      return false;
    450451    }
    451452  }
  • branches/qres/ccl/lisp-kernel/thread_manager.c

    r13502 r14049  
    100100      (!((where < (pc)lisp_global(HEAP_END)) &&
    101101         (where >= (pc)lisp_global(HEAP_START))) &&
     102       (!((where < (pc)(managed_static_area->active)) &&
     103         (where >= (pc)(readonly_area->low)))) &&
    102104       !((where < spentry_end) && (where >= spentry_start)) &&
    103105       !((where < subprims_end) && (where >= subprims_start)) &&
     
    19481950    *pcontext = * (CONTEXT *)(pcontext->Rcx);
    19491951#else
    1950     *pcontext = * (CONTEXT *)(pcontext->Ecx);
     1952    if (where == restore_windows_context_start) {
     1953      *pcontext = * (CONTEXT *)((pcontext->Esp)+4);
     1954    } else {
     1955      *pcontext = * (CONTEXT *)(pcontext->Ecx);
     1956    }
    19511957#endif
    19521958  } else {
     
    19711977  }
    19721978  tcr->pending_exception_context = NULL;
     1979  /* We basically never return from an exception unless we
     1980     were executing lisp code when the exception returned.
     1981     If that ever changes, we need to know what valence
     1982     would have been restored here.*/
     1983  tcr->valence = TCR_STATE_LISP;
    19731984}
    19741985
     
    20172028        if (!((where < (pc)lisp_global(HEAP_END)) &&
    20182029              (where >= (pc)lisp_global(HEAP_START))) &&
     2030            (!((where < (pc)(managed_static_area->active)) &&
     2031              (where >= (pc)(readonly_area->low)))) &&
    20192032            !((where < spentry_end) && (where >= spentry_start)) &&
    20202033            !((where < subprims_end) && (where >= subprims_start)) &&
  • branches/qres/ccl/lisp-kernel/windows-calls.c

    r13070 r14049  
    718718}
    719719
    720 #ifdef WIN_64
    721 
    722720/* Make sure that the lisp calls these functions, when they do something */
    723721/* This code is taken from the 32-bit mingw library and is in the
     
    871869}
    872870
    873 #endif
    874871
    875872typedef struct {
  • branches/qres/ccl/lisp-kernel/x86-exceptions.c

    r13867 r14049  
    473473  xpPC(xp) += skip;
    474474}
     475
     476#ifndef SIGTRAP
     477#define SIGTRAP 5
     478#endif
    475479
    476480/*
     
    32873291      case EXC_ARITHMETIC:
    32883292        signum = SIGFPE;
     3293        if (code == EXC_I386_DIV)
     3294          code = FPE_INTDIV;
    32893295        break;
    32903296       
Note: See TracChangeset for help on using the changeset viewer.