comparison src/alloc.c @ 21244:50929073a0ba

Use STRING_BYTES and SET_STRING_BYTES.
author Richard M. Stallman <rms@gnu.org>
date Sat, 21 Mar 1998 07:06:14 +0000
parents ce12eac1ee45
children 693573ac0944
comparison
equal deleted inserted replaced
21243:e82a4a4fa12a 21244:50929073a0ba
1374 (struct Lisp_String *) current_string_block->chars); 1374 (struct Lisp_String *) current_string_block->chars);
1375 } 1375 }
1376 1376
1377 string_chars_consed += fullsize; 1377 string_chars_consed += fullsize;
1378 XSTRING (val)->size = length; 1378 XSTRING (val)->size = length;
1379 XSTRING (val)->size_byte = length_byte; 1379 SET_STRING_BYTES (XSTRING (val), length_byte);
1380 XSTRING (val)->data[length_byte] = 0; 1380 XSTRING (val)->data[length_byte] = 0;
1381 INITIALIZE_INTERVAL (XSTRING (val), NULL_INTERVAL); 1381 INITIALIZE_INTERVAL (XSTRING (val), NULL_INTERVAL);
1382 1382
1383 return val; 1383 return val;
1384 } 1384 }
1440 1440
1441 if (pureptr + size > PURESIZE) 1441 if (pureptr + size > PURESIZE)
1442 error ("Pure Lisp storage exhausted"); 1442 error ("Pure Lisp storage exhausted");
1443 XSETSTRING (new, PUREBEG + pureptr); 1443 XSETSTRING (new, PUREBEG + pureptr);
1444 XSTRING (new)->size = length; 1444 XSTRING (new)->size = length;
1445 XSTRING (new)->size_byte = length_byte; 1445 SET_STRING_BYTES (XSTRING (new), length_byte);
1446 bcopy (data, XSTRING (new)->data, length_byte); 1446 bcopy (data, XSTRING (new)->data, length_byte);
1447 XSTRING (new)->data[length_byte] = 0; 1447 XSTRING (new)->data[length_byte] = 0;
1448 1448
1449 /* We must give strings in pure storage some kind of interval. So we 1449 /* We must give strings in pure storage some kind of interval. So we
1450 give them a null one. */ 1450 give them a null one. */
1546 else if (FLOATP (obj)) 1546 else if (FLOATP (obj))
1547 return make_pure_float (XFLOAT (obj)->data); 1547 return make_pure_float (XFLOAT (obj)->data);
1548 #endif /* LISP_FLOAT_TYPE */ 1548 #endif /* LISP_FLOAT_TYPE */
1549 else if (STRINGP (obj)) 1549 else if (STRINGP (obj))
1550 return make_pure_string (XSTRING (obj)->data, XSTRING (obj)->size, 1550 return make_pure_string (XSTRING (obj)->data, XSTRING (obj)->size,
1551 XSTRING (obj)->size_byte); 1551 STRING_BYTES (XSTRING (obj)));
1552 else if (COMPILEDP (obj) || VECTORP (obj)) 1552 else if (COMPILEDP (obj) || VECTORP (obj))
1553 { 1553 {
1554 register struct Lisp_Vector *vec; 1554 register struct Lisp_Vector *vec;
1555 register int i, size; 1555 register int i, size;
1556 1556
2644 register struct Lisp_String *nextstr 2644 register struct Lisp_String *nextstr
2645 = (struct Lisp_String *) &from_sb->chars[pos]; 2645 = (struct Lisp_String *) &from_sb->chars[pos];
2646 2646
2647 register struct Lisp_String *newaddr; 2647 register struct Lisp_String *newaddr;
2648 register EMACS_INT size = nextstr->size; 2648 register EMACS_INT size = nextstr->size;
2649 EMACS_INT size_byte = nextstr->size_byte; 2649 EMACS_INT size_byte = STRING_BYTES (nextstr);
2650 2650
2651 /* NEXTSTR is the old address of the next string. 2651 /* NEXTSTR is the old address of the next string.
2652 Just skip it if it isn't marked. */ 2652 Just skip it if it isn't marked. */
2653 if (((EMACS_UINT) size & ~DONT_COPY_FLAG) > STRING_BLOCK_SIZE) 2653 if (((EMACS_UINT) size & ~DONT_COPY_FLAG) > STRING_BLOCK_SIZE)
2654 { 2654 {