X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=doc%2Fobjectsimpl.tex;fp=doc%2Fobjectsimpl.tex;h=0000000000000000000000000000000000000000;hb=a6561c9679cd701b0d50c3cfd44e4664f7df2b2f;hp=a224aa524c00e6fdaa96091d108375b1ae7c2638;hpb=cd09055902de482a1be019bf4b4efdae64c98d35;p=ion3.git diff --git a/doc/objectsimpl.tex b/doc/objectsimpl.tex deleted file mode 100644 index a224aa5..0000000 --- a/doc/objectsimpl.tex +++ /dev/null @@ -1,20 +0,0 @@ -\section{Object system implementation} - -First, to get things clear, what are considered objects here are C -structures containing a properly initialised \type\indextype{WObj} -structure defined in \file{ioncore/obj.h} as the first element (or the -first element of the structure which is the first element and so on which -gives rise to inheritance). The \type{WObj} structure contains a pointer -to a \type{WObjDescr}\indextype{WObjDescr} class type info structure and -a list of so called ``watches''. The \type{WObjDescr} structure simply -lists the class name, a table of dynamic functions and a pointer to -deinitialisation function (or ``destructor''). - -Ion does not do any reference counting, garbage collecting or other -fancy things related to automatic safe freeing of objects with its -simplistic object system. Instead special watches (the \type{WWatch} -\indextype{WWatch} structure) may be used to create safe references to -objects that might be destroyed during the time the specific pointer is -needed. When an object is destroyed, its list of watches is processed, -setting the pointers in the watches to NULL and the watch handlers for -each watch are called.