Improve commentary in lisp.h

* src/lisp.h: Explain in the comment why enlarging a Lisp_Misc
object is discouraged.
This commit is contained in:
Eli Zaretskii 2017-02-10 12:12:49 +02:00
parent 8b92f8672b
commit c54cf8dcfd

View file

@ -511,10 +511,14 @@ enum Lisp_Fwd_Type
to add a new Lisp_Misc, extend the Lisp_Misc_Type enumeration. to add a new Lisp_Misc, extend the Lisp_Misc_Type enumeration.
For a Lisp_Misc, you will also need to add your entry to union For a Lisp_Misc, you will also need to add your entry to union
Lisp_Misc (but make sure the first word has the same structure as Lisp_Misc, but make sure the first word has the same structure as
the others, starting with a 16-bit member of the Lisp_Misc_Type the others, starting with a 16-bit member of the Lisp_Misc_Type
enumeration and a 1-bit GC markbit) and make sure the overall size enumeration and a 1-bit GC markbit. Also make sure the overall
of the union is not increased by your addition. size of the union is not increased by your addition. The latter
requirement is to keep Lisp_Misc objects small enough, so they
are handled faster: since all Lisp_Misc types use the same space,
enlarging any of them will affect all the rest. If you really
need a larger object, it is best to use Lisp_Vectorlike instead.
For a new pseudovector, it's highly desirable to limit the size For a new pseudovector, it's highly desirable to limit the size
of your data type by VBLOCK_BYTES_MAX bytes (defined in alloc.c). of your data type by VBLOCK_BYTES_MAX bytes (defined in alloc.c).