diff options
| author | Richard M. Stallman | 1995-01-11 01:17:49 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 1995-01-11 01:17:49 +0000 |
| commit | 5bfac5a98e0fc78f460bf2fdbdba8db5d5a61f59 (patch) | |
| tree | c23c2434a1ddcb04f89bfc3bbec688345d60963d /src | |
| parent | cd9bbed5a2d712e815ebb1b5df0759b03e2af07e (diff) | |
| download | emacs-5bfac5a98e0fc78f460bf2fdbdba8db5d5a61f59.tar.gz emacs-5bfac5a98e0fc78f460bf2fdbdba8db5d5a61f59.zip | |
(struct Lisp_Free, struct Lisp_Marker, etc.):
Make the `type' field just 16 bits, and declare as int.
Add explicit spacer field after it.
(struct Lisp_Marker): New field insertion_type.
Diffstat (limited to 'src')
| -rw-r--r-- | src/lisp.h | 31 |
1 files changed, 22 insertions, 9 deletions
diff --git a/src/lisp.h b/src/lisp.h index a154e4d5ce4..ed8aab5d4ab 100644 --- a/src/lisp.h +++ b/src/lisp.h | |||
| @@ -553,14 +553,19 @@ struct Lisp_Subr | |||
| 553 | /* A miscellaneous object, when it's on the free list. */ | 553 | /* A miscellaneous object, when it's on the free list. */ |
| 554 | struct Lisp_Free | 554 | struct Lisp_Free |
| 555 | { | 555 | { |
| 556 | enum Lisp_Misc_Type type; /* = Lisp_Misc_Free */ | 556 | int type : 16; /* = Lisp_Misc_Free */ |
| 557 | int spacer : 16; | ||
| 557 | union Lisp_Misc *chain; | 558 | union Lisp_Misc *chain; |
| 558 | }; | 559 | }; |
| 559 | 560 | ||
| 560 | /* In a marker, the markbit of the chain field is used as the gc mark bit */ | 561 | /* In a marker, the markbit of the chain field is used as the gc mark bit */ |
| 561 | struct Lisp_Marker | 562 | struct Lisp_Marker |
| 562 | { | 563 | { |
| 563 | enum Lisp_Misc_Type type; /* = Lisp_Misc_Marker */ | 564 | int type : 16; /* = Lisp_Misc_Marker */ |
| 565 | int spacer : 15; | ||
| 566 | /* 1 means normal insertion at the marker's position | ||
| 567 | leaves the marker after the inserted text. */ | ||
| 568 | int insertion_type : 1; | ||
| 564 | struct buffer *buffer; | 569 | struct buffer *buffer; |
| 565 | Lisp_Object chain; | 570 | Lisp_Object chain; |
| 566 | int bufpos; | 571 | int bufpos; |
| @@ -572,7 +577,8 @@ struct Lisp_Marker | |||
| 572 | specified int variable. */ | 577 | specified int variable. */ |
| 573 | struct Lisp_Intfwd | 578 | struct Lisp_Intfwd |
| 574 | { | 579 | { |
| 575 | enum Lisp_Misc_Type type; /* = Lisp_Misc_Intfwd */ | 580 | int type : 16; /* = Lisp_Misc_Intfwd */ |
| 581 | int spacer : 16; | ||
| 576 | int *intvar; | 582 | int *intvar; |
| 577 | }; | 583 | }; |
| 578 | 584 | ||
| @@ -582,7 +588,8 @@ struct Lisp_Intfwd | |||
| 582 | nil if it is zero. */ | 588 | nil if it is zero. */ |
| 583 | struct Lisp_Boolfwd | 589 | struct Lisp_Boolfwd |
| 584 | { | 590 | { |
| 585 | enum Lisp_Misc_Type type; /* = Lisp_Misc_Boolfwd */ | 591 | int type : 16; /* = Lisp_Misc_Boolfwd */ |
| 592 | int spacer : 16; | ||
| 586 | int *boolvar; | 593 | int *boolvar; |
| 587 | }; | 594 | }; |
| 588 | 595 | ||
| @@ -592,7 +599,8 @@ struct Lisp_Boolfwd | |||
| 592 | specified variable. */ | 599 | specified variable. */ |
| 593 | struct Lisp_Objfwd | 600 | struct Lisp_Objfwd |
| 594 | { | 601 | { |
| 595 | enum Lisp_Misc_Type type; /* = Lisp_Misc_Objfwd */ | 602 | int type : 16; /* = Lisp_Misc_Objfwd */ |
| 603 | int spacer : 16; | ||
| 596 | Lisp_Object *objvar; | 604 | Lisp_Object *objvar; |
| 597 | }; | 605 | }; |
| 598 | 606 | ||
| @@ -600,7 +608,8 @@ struct Lisp_Objfwd | |||
| 600 | current buffer. Value is byte index of slot within buffer. */ | 608 | current buffer. Value is byte index of slot within buffer. */ |
| 601 | struct Lisp_Buffer_Objfwd | 609 | struct Lisp_Buffer_Objfwd |
| 602 | { | 610 | { |
| 603 | enum Lisp_Misc_Type type; /* = Lisp_Misc_Buffer_Objfwd */ | 611 | int type : 16; /* = Lisp_Misc_Buffer_Objfwd */ |
| 612 | int spacer : 16; | ||
| 604 | int offset; | 613 | int offset; |
| 605 | }; | 614 | }; |
| 606 | 615 | ||
| @@ -646,8 +655,9 @@ struct Lisp_Buffer_Objfwd | |||
| 646 | Only make-local-variable does that. */ | 655 | Only make-local-variable does that. */ |
| 647 | struct Lisp_Buffer_Local_Value | 656 | struct Lisp_Buffer_Local_Value |
| 648 | { | 657 | { |
| 649 | enum Lisp_Misc_Type type; /* = Lisp_Misc_Buffer_Local_Value | 658 | int type : 16; /* = Lisp_Misc_Buffer_Local_Value |
| 650 | or Lisp_Misc_Some_Buffer_Local_Value */ | 659 | or Lisp_Misc_Some_Buffer_Local_Value */ |
| 660 | int spacer : 16; | ||
| 651 | Lisp_Object car, cdr; | 661 | Lisp_Object car, cdr; |
| 652 | }; | 662 | }; |
| 653 | 663 | ||
| @@ -656,9 +666,12 @@ struct Lisp_Buffer_Local_Value | |||
| 656 | PLIST is the overlay's property list. */ | 666 | PLIST is the overlay's property list. */ |
| 657 | struct Lisp_Overlay | 667 | struct Lisp_Overlay |
| 658 | { | 668 | { |
| 659 | enum Lisp_Misc_Type type; /* = Lisp_Misc_Overlay */ | 669 | int type : 16; /* = Lisp_Misc_Overlay */ |
| 670 | int spacer : 16; | ||
| 660 | Lisp_Object start, end, plist; | 671 | Lisp_Object start, end, plist; |
| 661 | }; | 672 | }; |
| 673 | |||
| 674 | |||
| 662 | union Lisp_Misc | 675 | union Lisp_Misc |
| 663 | { | 676 | { |
| 664 | enum Lisp_Misc_Type type; | 677 | enum Lisp_Misc_Type type; |