X-Git-Url: https://git.distorted.org.uk/~mdw/sod/blobdiff_plain/4faea17df1052a4c4f44f75b6ed537ebe9598c24..1edb774eed8bea3f6dbde5b02db6ecd209394cf8:/doc/structures.tex diff --git a/doc/structures.tex b/doc/structures.tex index f000af0..01e1ecd 100644 --- a/doc/structures.tex +++ b/doc/structures.tex @@ -30,8 +30,14 @@ classes and associated metadata. Note that Sod's object system is very flexible and it's possible for an extension to define a new root class which works very differently from the standard @|SodObject| described here. -The concrete types described in \xref{sec:structures.common} and -\ref{sec:structures.root} are declared by the header file @||. +The concrete types described in +\xref[\instead{sections}]{sec:structures.common} and +\ref{sec:structures.root} are declared by the header file +@||.\footnote{% + This isn't completely true. The @|SodObject| and @|SodClass| structures + are defined in a header called @||, which is generated by + the Sod translator; but @|| includes @||, so you + can forget about this detail.} % The definitions described in \xref{sec:structures.layout} are defined in the header file generated by the containing module. @@ -45,7 +51,7 @@ structure. Instance chains contain slots and vtable pointers, as described below. All instances have the basic structure of a @|struct sod_instance|. -\begin{describe}{type}[struct sod_instance] +\begin{describe}{ty}[struct sod_instance] {struct sod_instance \{ \\ \ind const struct sod_vtable *_vt; \-\\ \};} @@ -57,7 +63,7 @@ instances have the basic structure of a @|struct sod_instance|. \end{description} \end{describe} -\begin{describe}{type}[struct sod_vtable] +\begin{describe}{ty}[struct sod_vtable] {struct sod_vtable \{ \\ \ind const SodClass *_class; \\ size_t _base; \-\\ @@ -295,7 +301,7 @@ involved at the top of the class/metaclass graph (see \end{description} \end{describe} -\begin{describe}{type}[struct sod_chain] +\begin{describe}{ty}[struct sod_chain] {struct sod_chain \{ \\ \ind size_t n_classes; \\ const SodClass *const *classes; \\ @@ -416,7 +422,7 @@ and this is followed by corresponding members \end{prog} for each of $C$'s superclasses $A$ in the same chain in some (unimportant) order. The (somewhat obtuse) purpose of this union is to engage the `common -initial sequence' rule of \cite[6.5.2.3]{ISO:1990:IIP,ANSI:1999:AII}. +initial sequence' rule of \cite[6.5.2.3]{iso-1990:c,ansi-1999:c}. \subsubsection{The ichain structure} The @|ichain| structure contains (in order), a pointer