You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
109 lines
3.2 KiB
109 lines
3.2 KiB
\hypertarget{interface_2class_8c}{
|
|
\section{src/interface/class.c File Reference}
|
|
\label{interface_2class_8c}\index{src/interface/class.c@{src/interface/class.c}}
|
|
}
|
|
{\ttfamily \#include $<$stdarg.h$>$}\par
|
|
{\ttfamily \#include $<$stdlib.h$>$}\par
|
|
{\ttfamily \#include $<$assert.h$>$}\par
|
|
{\ttfamily \#include \char`\"{}class.h\char`\"{}}\par
|
|
{\ttfamily \#include \char`\"{}interface/class.h\char`\"{}}\par
|
|
Include dependency graph for class.c:
|
|
\subsection*{Functions}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
void $\ast$ \hyperlink{interface_2class_8c_a841e4a0f9bceb16fda262302d038bfa0}{classNew} (\hyperlink{structclass}{class\_\-ptr} \hyperlink{structclass}{class},...)
|
|
\item
|
|
void \hyperlink{interface_2class_8c_a292005216c251622a115ea90ff6d36c0}{classDelete} (void $\ast$$\ast$object)
|
|
\item
|
|
void $\ast$ \hyperlink{interface_2class_8c_ada46f0179448063a30f6f219270bf1e0}{classClone} (void $\ast$\_\-object)
|
|
\end{DoxyCompactItemize}
|
|
|
|
|
|
\subsection{Function Documentation}
|
|
\hypertarget{interface_2class_8c_ada46f0179448063a30f6f219270bf1e0}{
|
|
\index{interface/class.c@{interface/class.c}!classClone@{classClone}}
|
|
\index{classClone@{classClone}!interface/class.c@{interface/class.c}}
|
|
\subsubsection[{classClone}]{\setlength{\rightskip}{0pt plus 5cm}void$\ast$ classClone (
|
|
\begin{DoxyParamCaption}
|
|
\item[{void $\ast$}]{\_\-object}
|
|
\end{DoxyParamCaption}
|
|
)}}
|
|
\label{interface_2class_8c_ada46f0179448063a30f6f219270bf1e0}
|
|
|
|
|
|
Definition at line 42 of file class.c.
|
|
|
|
|
|
\begin{DoxyCode}
|
|
{
|
|
class_ptr class = class_getClass(_object);
|
|
void * object = calloc(1, class->object_size + sizeof(void*));
|
|
|
|
* (class_ptr *)object = class;
|
|
object += sizeof(void*);
|
|
|
|
#undef clone
|
|
CALL(object, Class, clone, _object);
|
|
|
|
return object;
|
|
}
|
|
\end{DoxyCode}
|
|
|
|
|
|
Here is the call graph for this function:
|
|
|
|
|
|
\hypertarget{interface_2class_8c_a292005216c251622a115ea90ff6d36c0}{
|
|
\index{interface/class.c@{interface/class.c}!classDelete@{classDelete}}
|
|
\index{classDelete@{classDelete}!interface/class.c@{interface/class.c}}
|
|
\subsubsection[{classDelete}]{\setlength{\rightskip}{0pt plus 5cm}void classDelete (
|
|
\begin{DoxyParamCaption}
|
|
\item[{void $\ast$$\ast$}]{object}
|
|
\end{DoxyParamCaption}
|
|
)}}
|
|
\label{interface_2class_8c_a292005216c251622a115ea90ff6d36c0}
|
|
|
|
|
|
Definition at line 33 of file class.c.
|
|
|
|
|
|
\begin{DoxyCode}
|
|
{
|
|
CALL(*object, Class, dtor);
|
|
|
|
free(*object - sizeof(void*));
|
|
*object = NULL;
|
|
}
|
|
\end{DoxyCode}
|
|
\hypertarget{interface_2class_8c_a841e4a0f9bceb16fda262302d038bfa0}{
|
|
\index{interface/class.c@{interface/class.c}!classNew@{classNew}}
|
|
\index{classNew@{classNew}!interface/class.c@{interface/class.c}}
|
|
\subsubsection[{classNew}]{\setlength{\rightskip}{0pt plus 5cm}void$\ast$ classNew (
|
|
\begin{DoxyParamCaption}
|
|
\item[{{\bf class\_\-ptr}}]{class, }
|
|
\item[{}]{...}
|
|
\end{DoxyParamCaption}
|
|
)}}
|
|
\label{interface_2class_8c_a841e4a0f9bceb16fda262302d038bfa0}
|
|
|
|
|
|
Definition at line 15 of file class.c.
|
|
|
|
|
|
\begin{DoxyCode}
|
|
{
|
|
void * object = calloc(1, class->object_size + sizeof(void*));
|
|
va_list params;
|
|
|
|
if (class->init) class->init();
|
|
|
|
* (class_ptr *)object = class;
|
|
object += sizeof(void*);
|
|
|
|
va_start(params, class);
|
|
CALL(object, Class, ctor, ¶ms);
|
|
va_end(params);
|
|
|
|
return object;
|
|
}
|
|
\end{DoxyCode}
|