\hypertarget{group__Eina__Trash__Group}{\section{Trash}
\label{group__Eina__Trash__Group}\index{Trash@{Trash}}
}
\subsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{struct__Eina__Trash}{\-\_\-\-Eina\-\_\-\-Trash}
\begin{DoxyCompactList}\small\item\em Type for a generic container of unused allocated pointer. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \hyperlink{group__Eina__Trash__Group_ga00b441d87ac8e3417b0026309024c7c0}{E\-I\-N\-A\-\_\-\-T\-R\-A\-S\-H\-\_\-\-C\-L\-E\-A\-N}(trash, data)~while ((data = eina\-\_\-trash\-\_\-pop(trash)))
\begin{DoxyCompactList}\small\item\em Macro to remove all pointer from the trash. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
\hypertarget{group__Eina__Trash__Group_ga6ed78366e6324b5259d305673c52188d}{typedef struct \hyperlink{struct__Eina__Trash}{\-\_\-\-Eina\-\_\-\-Trash} \hyperlink{group__Eina__Trash__Group_ga6ed78366e6324b5259d305673c52188d}{Eina\-\_\-\-Trash}}\label{group__Eina__Trash__Group_ga6ed78366e6324b5259d305673c52188d}

\begin{DoxyCompactList}\small\item\em Type for a generic container of unused allocated pointer. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{group__Eina__Trash__Group_ga60db271d45f986ade3a05ac84493be78}{static void {\bfseries eina\-\_\-trash\-\_\-init} (\hyperlink{group__Eina__Trash__Group_ga6ed78366e6324b5259d305673c52188d}{Eina\-\_\-\-Trash} $\ast$$\ast$trash)}\label{group__Eina__Trash__Group_ga60db271d45f986ade3a05ac84493be78}

\item 
\hypertarget{group__Eina__Trash__Group_ga4187333fa1b6d28e1aad2e58bc059906}{static void {\bfseries eina\-\_\-trash\-\_\-push} (\hyperlink{group__Eina__Trash__Group_ga6ed78366e6324b5259d305673c52188d}{Eina\-\_\-\-Trash} $\ast$$\ast$trash, void $\ast$data)}\label{group__Eina__Trash__Group_ga4187333fa1b6d28e1aad2e58bc059906}

\item 
\hypertarget{group__Eina__Trash__Group_ga1ac8805995c1c38f9e2f928c0a482e71}{static void $\ast$ {\bfseries eina\-\_\-trash\-\_\-pop} (\hyperlink{group__Eina__Trash__Group_ga6ed78366e6324b5259d305673c52188d}{Eina\-\_\-\-Trash} $\ast$$\ast$trash)}\label{group__Eina__Trash__Group_ga1ac8805995c1c38f9e2f928c0a482e71}

\end{DoxyCompactItemize}


\subsection{Detailed Description}


\subsection{Macro Definition Documentation}
\hypertarget{group__Eina__Trash__Group_ga00b441d87ac8e3417b0026309024c7c0}{\index{Trash@{Trash}!E\-I\-N\-A\-\_\-\-T\-R\-A\-S\-H\-\_\-\-C\-L\-E\-A\-N@{E\-I\-N\-A\-\_\-\-T\-R\-A\-S\-H\-\_\-\-C\-L\-E\-A\-N}}
\index{E\-I\-N\-A\-\_\-\-T\-R\-A\-S\-H\-\_\-\-C\-L\-E\-A\-N@{E\-I\-N\-A\-\_\-\-T\-R\-A\-S\-H\-\_\-\-C\-L\-E\-A\-N}!Trash@{Trash}}
\subsubsection[{E\-I\-N\-A\-\_\-\-T\-R\-A\-S\-H\-\_\-\-C\-L\-E\-A\-N}]{\setlength{\rightskip}{0pt plus 5cm}\#define E\-I\-N\-A\-\_\-\-T\-R\-A\-S\-H\-\_\-\-C\-L\-E\-A\-N(
\begin{DoxyParamCaption}
\item[{}]{trash, }
\item[{}]{data}
\end{DoxyParamCaption}
)~while ((data = eina\-\_\-trash\-\_\-pop(trash)))}}\label{group__Eina__Trash__Group_ga00b441d87ac8e3417b0026309024c7c0}


Macro to remove all pointer from the trash. 


\begin{DoxyParams}{Parameters}
{\em trash} & The trash to clean. \\
\hline
{\em data} & The pointer extracted from the trash.\\
\hline
\end{DoxyParams}
This macro allow the cleaning of {\ttfamily trash} in an easy way. It will remove all pointers from {\ttfamily trash} until it's empty.

This macro can be used for freeing the data in the trash, like in the following example\-:


\begin{DoxyCode}
\hyperlink{struct__Eina__Trash}{Eina\_Trash} *trash = NULL;
\textcolor{keywordtype}{char} *data;

\textcolor{comment}{// trash is filled with pointer to some duped strings.}

\hyperlink{group__Eina__Trash__Group_ga00b441d87ac8e3417b0026309024c7c0}{EINA\_TRASH\_CLEAN}(&trash, data)
  free(data);
\end{DoxyCode}


\begin{DoxyNote}{Note}
this macro is useful when you implement some memory pool. 
\end{DoxyNote}


Referenced by eio\-\_\-shutdown().

