diff options
| author | Karl Heuer | 1994-11-18 06:49:09 +0000 |
|---|---|---|
| committer | Karl Heuer | 1994-11-18 06:49:09 +0000 |
| commit | 76437631034878f5a3ee9bd0bf58c8367708af4c (patch) | |
| tree | 1d3e76dd72b71881a4bebf642e59740703cd2a7b | |
| parent | e958fd9aca5fcf723f3552b109467c07a7f02649 (diff) | |
| download | emacs-76437631034878f5a3ee9bd0bf58c8367708af4c.tar.gz emacs-76437631034878f5a3ee9bd0bf58c8367708af4c.zip | |
(Fpurecopy): Use type test macros.
(mark_object): Use the new pseudovector convention.
| -rw-r--r-- | src/alloc.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/alloc.c b/src/alloc.c index 02587c6d906..293fc8bc914 100644 --- a/src/alloc.c +++ b/src/alloc.c | |||
| @@ -1522,10 +1522,9 @@ mark_object (objptr) | |||
| 1522 | } | 1522 | } |
| 1523 | break; | 1523 | break; |
| 1524 | 1524 | ||
| 1525 | case Lisp_Vector: | 1525 | case Lisp_Vectorlike: |
| 1526 | case Lisp_Window: | 1526 | case Lisp_Window: |
| 1527 | case Lisp_Process: | 1527 | case Lisp_Process: |
| 1528 | case Lisp_Window_Configuration: | ||
| 1529 | { | 1528 | { |
| 1530 | register struct Lisp_Vector *ptr = XVECTOR (obj); | 1529 | register struct Lisp_Vector *ptr = XVECTOR (obj); |
| 1531 | register EMACS_INT size = ptr->size; | 1530 | register EMACS_INT size = ptr->size; |
| @@ -1538,9 +1537,11 @@ mark_object (objptr) | |||
| 1538 | struct Lisp_Vector *volatile ptr1 = ptr; | 1537 | struct Lisp_Vector *volatile ptr1 = ptr; |
| 1539 | register int i; | 1538 | register int i; |
| 1540 | 1539 | ||
| 1541 | if (size & ARRAY_MARK_FLAG) break; /* Already marked */ | 1540 | if (size & ARRAY_MARK_FLAG) break; /* Already marked */ |
| 1542 | ptr->size |= ARRAY_MARK_FLAG; /* Else mark it */ | 1541 | ptr->size |= ARRAY_MARK_FLAG; /* Else mark it */ |
| 1543 | for (i = 0; i < size; i++) /* and then mark its elements */ | 1542 | if (size & PSEUDOVECTOR_FLAG) |
| 1543 | size &= PSEUDOVECTOR_SIZE_MASK; | ||
| 1544 | for (i = 0; i < size; i++) /* and then mark its elements */ | ||
| 1544 | mark_object (&ptr1->contents[i]); | 1545 | mark_object (&ptr1->contents[i]); |
| 1545 | } | 1546 | } |
| 1546 | break; | 1547 | break; |