Changeset 3667

Show
Ignore:
Timestamp:
04/03/05 16:43:58 (4 years ago)
Author:
miyoshi
Message:

* alloc.c (MARK_STRING): Sync up with Emacs CVS HEAD.
(UNMARK_STRING): Ditto.
(STRING_MARKED_P): Ditto.
(GC_STRING_BYTES): Ditto.
(GC_STRING_CHARS): Ditto.
(string_bytes): Ditto.
(init_float): Ditto.
(init_cons): Ditto.
(init_symbol): Ditto.
(init_marker): Ditto.

* lisp.h: Sync up with Emacs CVS HEAD.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/2.2/src/ChangeLog.Meadow

    r3666 r3667  
    112005-04-03  MIYOSHI Masanori  <miyoshi@meadowy.org> 
    22 
     3        * alloc.c (MARK_STRING): Sync up with Emacs CVS HEAD. 
     4        (UNMARK_STRING): Ditto. 
     5        (STRING_MARKED_P): Ditto. 
     6        (GC_STRING_BYTES): Ditto. 
     7        (GC_STRING_CHARS): Ditto. 
     8        (string_bytes): Ditto. 
     9        (init_float): Ditto. 
     10        (init_cons): Ditto. 
     11        (init_symbol): Ditto. 
     12        (init_marker): Ditto. 
     13 
    314        * lisp.h: Sync up with Emacs CVS HEAD. 
     15 
     162005-04-03  MIYOSHI Masanori  <miyoshi@meadowy.org> 
    417 
    518        * keyboard.c: New external lisp object `Vthrow_on_input'. 
  • branches/2.2/src/alloc.c

    r3665 r3667  
    142142   to a struct Lisp_String.  */ 
    143143 
    144 #define MARK_STRING(S)          ((S)->size |= MARKBIT
    145 #define UNMARK_STRING(S)        ((S)->size &= ~MARKBIT
    146 #define STRING_MARKED_P(S)      (((S)->size & MARKBIT) != 0) 
     144#define MARK_STRING(S)          ((S)->size |= ARRAY_MARK_FLAG
     145#define UNMARK_STRING(S)        ((S)->size &= ~ARRAY_MARK_FLAG
     146#define STRING_MARKED_P(S)      (((S)->size & ARRAY_MARK_FLAG) != 0) 
    147147 
    148148#define VECTOR_MARK(V)          ((V)->size |= ARRAY_MARK_FLAG) 
     
    155155   strings.  */ 
    156156 
    157 #define GC_STRING_BYTES(S)      (STRING_BYTES (S) & ~MARKBIT
    158 #define GC_STRING_CHARS(S)      ((S)->size & ~MARKBIT
     157#define GC_STRING_BYTES(S)      (STRING_BYTES (S)
     158#define GC_STRING_CHARS(S)      ((S)->size & ~ARRAY_MARK_FLAG
    159159 
    160160/* Number of bytes of consing done since the last gc.  */ 
     
    17541754     struct Lisp_String *s; 
    17551755{ 
    1756   int nbytes = (s->size_byte < 0 ? s->size : s->size_byte) & ~MARKBIT
     1756  int nbytes = (s->size_byte < 0 ? s->size & ~ARRAY_MARK_FLAG : s->size_byte)
    17571757  if (!PURE_POINTER_P (s) 
    17581758      && s->data 
     
    25142514init_float () 
    25152515{ 
    2516   float_block = (struct float_block *) lisp_malloc (sizeof *float_block, 
    2517                                                     MEM_TYPE_FLOAT); 
    2518   float_block->next = 0; 
    2519   bzero ((char *) float_block->floats, sizeof float_block->floats); 
    2520   float_block_index = 0; 
     2516  float_block = NULL; 
     2517  float_block_index = FLOAT_BLOCK_SIZE; /* Force alloc of new float_block.   */ 
    25212518  float_free_list = 0; 
    2522   n_float_blocks = 1
     2519  n_float_blocks = 0
    25232520} 
    25242521 
     
    26262623init_cons () 
    26272624{ 
    2628   cons_block = (struct cons_block *) lisp_malloc (sizeof *cons_block, 
    2629                                                   MEM_TYPE_CONS); 
    2630   cons_block->next = 0; 
    2631   bzero ((char *) cons_block->conses, sizeof cons_block->conses); 
    2632   cons_block_index = 0; 
     2625  cons_block = NULL; 
     2626  cons_block_index = CONS_BLOCK_SIZE; /* Force alloc of new cons_block.  */ 
    26332627  cons_free_list = 0; 
    2634   n_cons_blocks = 1
     2628  n_cons_blocks = 0
    26352629} 
    26362630 
     
    31153109init_symbol () 
    31163110{ 
    3117   symbol_block = (struct symbol_block *) lisp_malloc (sizeof *symbol_block, 
    3118                                                       MEM_TYPE_SYMBOL); 
    3119   symbol_block->next = 0; 
    3120   bzero ((char *) symbol_block->symbols, sizeof symbol_block->symbols); 
    3121   symbol_block_index = 0; 
     3111  symbol_block = NULL; 
     3112  symbol_block_index = SYMBOL_BLOCK_SIZE; 
    31223113  symbol_free_list = 0; 
    3123   n_symbol_blocks = 1
     3114  n_symbol_blocks = 0
    31243115} 
    31253116 
     
    32033194init_marker () 
    32043195{ 
    3205   marker_block = (struct marker_block *) lisp_malloc (sizeof *marker_block, 
    3206                                                       MEM_TYPE_MISC); 
    3207   marker_block->next = 0; 
    3208   bzero ((char *) marker_block->markers, sizeof marker_block->markers); 
    3209   marker_block_index = 0; 
     3196  marker_block = NULL; 
     3197  marker_block_index = MARKER_BLOCK_SIZE; 
    32103198  marker_free_list = 0; 
    3211   n_marker_blocks = 1
     3199  n_marker_blocks = 0
    32123200} 
    32133201 
  • branches/2.2/src/lisp.h

    r3666 r3667  
    195195      { 
    196196        EMACS_INT val  : VALBITS; 
    197         enum Lisp_Type type : GCTYPEBITS + 1
     197        enum Lisp_Type type : GCTYPEBITS
    198198      } s; 
    199199    struct 
    200200      { 
    201201        EMACS_UINT val : VALBITS; 
    202         enum Lisp_Type type : GCTYPEBITS + 1
     202        enum Lisp_Type type : GCTYPEBITS
    203203      } u; 
    204204  } 
     
    216216    struct 
    217217      { 
    218         enum Lisp_Type type : GCTYPEBITS + 1
     218        enum Lisp_Type type : GCTYPEBITS
    219219        EMACS_INT val  : VALBITS; 
    220220      } s; 
    221221    struct 
    222222      { 
    223         enum Lisp_Type type : GCTYPEBITS + 1
     223        enum Lisp_Type type : GCTYPEBITS
    224224        EMACS_UINT val : VALBITS; 
    225225      } u; 
     
    256256   are defined differently by the m- file.  */ 
    257257 
    258 #ifndef MARKBIT 
    259258#define MARKBIT ((EMACS_INT) ((EMACS_UINT) 1 << (VALBITS + GCTYPEBITS))) 
    260 #endif /*MARKBIT */ 
    261259 
    262260/* In the size word of a vector, this bit means the vector has been marked.  */ 
    263261 
    264262#ifndef ARRAY_MARK_FLAG 
    265 #define ARRAY_MARK_FLAG ((MARKBIT >> 1) & ~MARKBIT
     263#define ARRAY_MARK_FLAG ((EMACS_INT) ((EMACS_UINT) 1 << (VALBITS + GCTYPEBITS - 2))
    266264#endif /* no ARRAY_MARK_FLAG */ 
    267265 
     
    359357 XCONS (tem) is the struct Lisp_Cons * pointing to the memory for that cons.  */ 
    360358 
     359#ifdef NO_UNION_TYPE 
     360 
     361#ifdef USE_LSB_TAG 
     362 
    361363#define VALMASK ((((EMACS_INT) 1) << VALBITS) - 1) 
    362 #define GCTYPEMASK ((((EMACS_INT) 1) << GCTYPEBITS) - 1) 
    363  
    364 #ifdef NO_UNION_TYPE 
    365  
    366 #ifdef USE_LSB_TAG 
    367364 
    368365#define XTYPE(a) ((enum Lisp_Type) ((a) >> VALBITS)) 
     
    378375   positive, in which case the implementation can sometimes be faster 
    379376   depending on the tagging scheme.  With USE_LSB_TAG, there's no benefit.  */ 
    380 #define XFASTINT(a) ((a) + 0
    381 #define XSETFASTINT(a, b) ((a) = (b)) 
     377#define XFASTINT(a) XINT (a
     378#define XSETFASTINT(a, b) ((a) = make_number (b)) 
    382379 
    383380#ifdef HAVE_SHM 
     
    398395#endif 
    399396#endif /* not HAVE_SHM */ 
    400  
    401397#else  /* not USE_LSB_TAG */ 
     398 
     399#define VALMASK ((((EMACS_INT) 1) << VALBITS) - 1) 
    402400 
    403401/* One need to override this if there must be high bits set in data space 
     
    441439#define EQ(x, y) ((x) == (y)) 
    442440 
    443 #if VALBITS + GCTYPEBITS == BITS_PER_EMACS_INT - 1 
    444 /* Make XMARKBIT faster if mark bit is sign bit.  */ 
    445 #ifndef XMARKBIT 
    446441#define XMARKBIT(a) ((a) < 0) 
    447 #endif 
    448 #endif /* markbit is sign bit */ 
    449  
    450 #ifndef XMARKBIT 
    451 #define XMARKBIT(a) ((a) & MARKBIT) 
    452 #endif 
    453  
    454 #ifndef XSETMARKBIT 
    455442#define XSETMARKBIT(a,b) ((a) = ((a) & ~MARKBIT) | ((b) ? MARKBIT : 0)) 
    456 #endif 
    457  
    458 #ifndef XMARK 
    459443#define XMARK(a) ((a) |= MARKBIT) 
    460 #endif 
    461  
    462 #ifndef XUNMARK 
    463444#define XUNMARK(a) ((a) &= ~MARKBIT) 
    464 #endif 
    465445 
    466446#else /* not NO_UNION_TYPE */ 
     
    505485 
    506486#ifndef XGCTYPE 
    507 #define XGCTYPE(a) ((enum Lisp_Type) (((a) >> VALBITS) & GCTYPEMASK)) 
     487/* The distinction does not exist now that the MARKBIT has been eliminated.  */ 
     488#define XGCTYPE(a) XTYPE (a) 
    508489#endif 
    509490