aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRichard M. Stallman1995-01-11 01:17:49 +0000
committerRichard M. Stallman1995-01-11 01:17:49 +0000
commit5bfac5a98e0fc78f460bf2fdbdba8db5d5a61f59 (patch)
treec23c2434a1ddcb04f89bfc3bbec688345d60963d /src
parentcd9bbed5a2d712e815ebb1b5df0759b03e2af07e (diff)
downloademacs-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.h31
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. */
554struct Lisp_Free 554struct 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 */
561struct Lisp_Marker 562struct 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. */
573struct Lisp_Intfwd 578struct 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. */
583struct Lisp_Boolfwd 589struct 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. */
593struct Lisp_Objfwd 600struct 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. */
601struct Lisp_Buffer_Objfwd 609struct 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. */
647struct Lisp_Buffer_Local_Value 656struct 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. */
657struct Lisp_Overlay 667struct 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
662union Lisp_Misc 675union Lisp_Misc
663 { 676 {
664 enum Lisp_Misc_Type type; 677 enum Lisp_Misc_Type type;