chiark / gitweb /
 author Mark Wooding Sat, 9 Jun 2018 02:52:37 +0000 (03:52 +0100) committer Mark Wooding Sat, 9 Jun 2018 02:52:37 +0000 (03:52 +0100)
There's really only one in the vtable for each metaclass chain, and
the types of the pointers vary as we descend the superclass graph.

 doc/structures.tex patch | blob | blame | history lib/sod-structs.3 patch | blob | blame | history

index b2835fe..7121692 100644 (file)
@@ -530,14 +530,14 @@ traversal.

\item Let $N$ be the metaclass of $A$.  Examine the superclass chains of $N$
in order of decreasing specificity of their most-specific classes.  Let $J$
-  be the chain head of such a chain, and let $Q$ be the most specific
-  superclass of $M$ in the same chain as $J$.  Then, if there is currently no
-  class pointer of type $Q$, then add a member
+  be the chain head of such a chain.  If there is currently no class pointer
+  for the chain headed by $J$, then add a member
\begin{prog}
const $Q$ *_cls_$j$;
\end{prog}
to the vtable pointing to the appropriate @|islots| structure within $M$'s
-  class object.
+  class object, where $Q$ is the most specific superclass of $M$ in the same
+  chain as $J$.

\item Examine the superclass chains of $A$ in order of decreasing specificity
of their most-specific classes.  Let $I$ be the chain head of such a chain.
index a515c8e..48364cc 100644 (file)
@@ -869,8 +869,9 @@ be the most specific superclass of
.I M
in the same chain as
.IR J .
-Then, if there is currently no class pointer of type
-.IR Q ,
+If there is currently no class pointer
+for the chain headed by
+.IR J ,
then add a member
.RS
.IP
@@ -883,7 +884,13 @@ pointing to the appropriate
.B islots
structure within
.IR M 's
-class object.
+class object,
+where
+.I Q
+is the most specific superclass of
+.I M
+in the same chain as
+.IR J .
.RE
.hP \*o
Examine the superclass chains of