\hypertarget{group__Eina__Stringshare__Group}{}\section{Stringshare}
\label{group__Eina__Stringshare__Group}\index{Stringshare@{Stringshare}}


These functions allow you to store a single copy of a string, and use in multiple places throughout your program.  


\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef const char \mbox{\hyperlink{group__Eina__Stringshare__Group_ga2b7dc19609a55e630a96cc1396e38a53}{Eina\+\_\+\+Stringshare}}
\begin{DoxyCompactList}\small\item\em \char`\"{}\+Eina\+\_\+\+Stringshare $\ast$\char`\"{} is interchangeable with \char`\"{}const char $\ast$\char`\"{} but still a good visual hint for the purpose. \end{DoxyCompactList}\item 
typedef const char \mbox{\hyperlink{group__Eina__Stringshare__Group_gae8d53f367d5da5acfd19af6c235831d5}{Eina\+\_\+\+Tmpstr}}
\begin{DoxyCompactList}\small\item\em Interchangeable with \char`\"{}const char $\ast$\char`\"{} but still a good visual hint for the purpose. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{group__Eina__Stringshare__Group_ga2b7dc19609a55e630a96cc1396e38a53}{Eina\+\_\+\+Stringshare}} $\ast$ \mbox{\hyperlink{group__Eina__Stringshare__Group_gabe8ecf4121011cb792f36ecd8c44e470}{eina\+\_\+stringshare\+\_\+add\+\_\+length}} (const char $\ast$str, unsigned int slen)
\begin{DoxyCompactList}\small\item\em Retrieves an instance of a string with a specific size for use in a program. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Stringshare__Group_ga2b7dc19609a55e630a96cc1396e38a53}{Eina\+\_\+\+Stringshare}} $\ast$ \mbox{\hyperlink{group__Eina__Stringshare__Group_ga5293082680141132ffcacc28866ef0ef}{eina\+\_\+stringshare\+\_\+add}} (const char $\ast$str)
\begin{DoxyCompactList}\small\item\em Retrieves an instance of a string for use in a program. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Stringshare__Group_ga2b7dc19609a55e630a96cc1396e38a53}{Eina\+\_\+\+Stringshare}} $\ast$ \mbox{\hyperlink{group__Eina__Stringshare__Group_gab3507a1373455cac57bf494e776fe4a8}{eina\+\_\+stringshare\+\_\+printf}} (const char $\ast$fmt,...) \mbox{\hyperlink{group__Eina__Types__Group_ga50265482f1d9b18e4b98e97cfa2c8d05}{E\+I\+N\+A\+\_\+\+P\+R\+I\+N\+TF}}(1
\begin{DoxyCompactList}\small\item\em Retrieves an instance of a string for use in a program from a format string. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Stringshare__Group_ga2b7dc19609a55e630a96cc1396e38a53}{Eina\+\_\+\+Stringshare}} \mbox{\hyperlink{group__Eina__Stringshare__Group_ga2b7dc19609a55e630a96cc1396e38a53}{Eina\+\_\+\+Stringshare}} $\ast$ \mbox{\hyperlink{group__Eina__Stringshare__Group_gad7d32f79c65214efa19b09856a950070}{eina\+\_\+stringshare\+\_\+vprintf}} (const char $\ast$fmt, va\+\_\+list args)
\begin{DoxyCompactList}\small\item\em Retrieves an instance of a string for use in a program from a format string. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Stringshare__Group_ga2b7dc19609a55e630a96cc1396e38a53}{Eina\+\_\+\+Stringshare}} $\ast$ \mbox{\hyperlink{group__Eina__Stringshare__Group_ga4bc3769aa8d4d33c36b6857af33a810b}{eina\+\_\+stringshare\+\_\+nprintf}} (unsigned int len, const char $\ast$fmt,...) \mbox{\hyperlink{group__Eina__Types__Group_ga50265482f1d9b18e4b98e97cfa2c8d05}{E\+I\+N\+A\+\_\+\+P\+R\+I\+N\+TF}}(2
\begin{DoxyCompactList}\small\item\em Retrieves an instance of a string for use in a program from a format string with size limitation. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Stringshare__Group_ga2b7dc19609a55e630a96cc1396e38a53}{Eina\+\_\+\+Stringshare}} \mbox{\hyperlink{group__Eina__Stringshare__Group_ga2b7dc19609a55e630a96cc1396e38a53}{Eina\+\_\+\+Stringshare}} $\ast$ \mbox{\hyperlink{group__Eina__Stringshare__Group_gac6f45e4273f13f42e9a3c48435cd03dc}{eina\+\_\+stringshare\+\_\+ref}} (\mbox{\hyperlink{group__Eina__Stringshare__Group_ga2b7dc19609a55e630a96cc1396e38a53}{Eina\+\_\+\+Stringshare}} $\ast$str)
\begin{DoxyCompactList}\small\item\em Increment references of the given shared string. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group__Eina__Stringshare__Group_ga495411b0bc85b9c0d59ec7255a025260}{eina\+\_\+stringshare\+\_\+del}} (\mbox{\hyperlink{group__Eina__Stringshare__Group_ga2b7dc19609a55e630a96cc1396e38a53}{Eina\+\_\+\+Stringshare}} $\ast$str)
\begin{DoxyCompactList}\small\item\em Notes that the given string has lost an instance. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__Eina__Stringshare__Group_gaf316a9f4a787091ee437ec7caf0a5c7b}{eina\+\_\+stringshare\+\_\+strlen}} (\mbox{\hyperlink{group__Eina__Stringshare__Group_ga2b7dc19609a55e630a96cc1396e38a53}{Eina\+\_\+\+Stringshare}} $\ast$str)
\begin{DoxyCompactList}\small\item\em Notes that the given string {\bfseries must} be shared. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group__Eina__Stringshare__Group_ga13dba791a752e1c51bddb329213cb060}{eina\+\_\+stringshare\+\_\+dump}} (void)
\begin{DoxyCompactList}\small\item\em Dumps the contents of the share\+\_\+common. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Eina__Stringshare__Group_ga9e32a137ce8c4cd5f6ec3dbde3dbedd8}\label{group__Eina__Stringshare__Group_ga9e32a137ce8c4cd5f6ec3dbde3dbedd8}} 
static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} {\bfseries eina\+\_\+stringshare\+\_\+replace} (\mbox{\hyperlink{group__Eina__Stringshare__Group_ga2b7dc19609a55e630a96cc1396e38a53}{Eina\+\_\+\+Stringshare}} $\ast$$\ast$p\+\_\+str, const char $\ast$news)
\item 
\mbox{\Hypertarget{group__Eina__Stringshare__Group_ga8a159ee804ef7c7a190a37f455ec16c2}\label{group__Eina__Stringshare__Group_ga8a159ee804ef7c7a190a37f455ec16c2}} 
static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} {\bfseries eina\+\_\+stringshare\+\_\+replace\+\_\+length} (\mbox{\hyperlink{group__Eina__Stringshare__Group_ga2b7dc19609a55e630a96cc1396e38a53}{Eina\+\_\+\+Stringshare}} $\ast$$\ast$p\+\_\+str, const char $\ast$news, unsigned int slen)
\item 
\mbox{\Hypertarget{group__Eina__Stringshare__Group_gaecb963d20e0e719235ba4446e730234e}\label{group__Eina__Stringshare__Group_gaecb963d20e0e719235ba4446e730234e}} 
static \mbox{\hyperlink{group__Eina__Slice__Group_gab75399abc5bb50cf1135cb8485cbedcc}{Eina\+\_\+\+Slice}} {\bfseries eina\+\_\+stringshare\+\_\+slice\+\_\+get} (\mbox{\hyperlink{group__Eina__Stringshare__Group_ga2b7dc19609a55e630a96cc1396e38a53}{Eina\+\_\+\+Stringshare}} $\ast$str)
\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Stringshare__Group_gae8d53f367d5da5acfd19af6c235831d5}{Eina\+\_\+\+Tmpstr}} $\ast$ \mbox{\hyperlink{group__Eina__Stringshare__Group_gadb653e2dd0baf58b7f8bb7eea1753b2b}{eina\+\_\+tmpstr\+\_\+add}} (const char $\ast$str) \mbox{\hyperlink{group__Eina__Types__Group_ga4ba89e4b58eff707a6cf05ffe0cd4dea}{E\+I\+N\+A\+\_\+\+W\+A\+R\+N\+\_\+\+U\+N\+U\+S\+E\+D\+\_\+\+R\+E\+S\+U\+LT}}
\begin{DoxyCompactList}\small\item\em Adds a new temporary string based on the input string. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Stringshare__Group_gae8d53f367d5da5acfd19af6c235831d5}{Eina\+\_\+\+Tmpstr}} $\ast$ \mbox{\hyperlink{group__Eina__Stringshare__Group_ga6fb1f760eedc7796dc99247e51c6cba2}{eina\+\_\+tmpstr\+\_\+add\+\_\+length}} (const char $\ast$str, size\+\_\+t length)
\begin{DoxyCompactList}\small\item\em Adds a new temporary string based on the input string and length. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_gad5b2116495471db12a34bab9a34edfaa}{E\+I\+N\+A\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED}} \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} size\+\_\+t \mbox{\hyperlink{group__Eina__Stringshare__Group_ga79d708af92046c135cbb47f50b9944a2}{eina\+\_\+tmpstr\+\_\+strlen}} (\mbox{\hyperlink{group__Eina__Stringshare__Group_gae8d53f367d5da5acfd19af6c235831d5}{Eina\+\_\+\+Tmpstr}} $\ast$tmpstr)
\begin{DoxyCompactList}\small\item\em {\bfseries Deprecated} Return the length of a temporary string including the \textquotesingle{}\textbackslash{}0\textquotesingle{}. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} size\+\_\+t \mbox{\hyperlink{group__Eina__Stringshare__Group_ga94a7da533b4802cb94ff264515ae49ef}{eina\+\_\+tmpstr\+\_\+len}} (\mbox{\hyperlink{group__Eina__Stringshare__Group_gae8d53f367d5da5acfd19af6c235831d5}{Eina\+\_\+\+Tmpstr}} $\ast$tmpstr)
\begin{DoxyCompactList}\small\item\em Returns the length of a temporary string. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} void \mbox{\hyperlink{group__Eina__Stringshare__Group_gaa84ec3cc6c63bc67355aa3cbaa26189f}{eina\+\_\+tmpstr\+\_\+del}} (\mbox{\hyperlink{group__Eina__Stringshare__Group_gae8d53f367d5da5acfd19af6c235831d5}{Eina\+\_\+\+Tmpstr}} $\ast$tmpstr) \mbox{\hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\+I\+N\+A\+\_\+\+A\+R\+G\+\_\+\+N\+O\+N\+N\+U\+LL}}(1)
\begin{DoxyCompactList}\small\item\em Deletes the temporary string if it is one, or ignore it if it is not. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Stringshare__Group_gae8d53f367d5da5acfd19af6c235831d5}{Eina\+\_\+\+Tmpstr}} $\ast$ \mbox{\hyperlink{group__Eina__Stringshare__Group_ga099711225b6f7da3869067372047b41f}{eina\+\_\+tmpstr\+\_\+manage\+\_\+new}} (char $\ast$str) \mbox{\hyperlink{group__Eina__Types__Group_ga4ba89e4b58eff707a6cf05ffe0cd4dea}{E\+I\+N\+A\+\_\+\+W\+A\+R\+N\+\_\+\+U\+N\+U\+S\+E\+D\+\_\+\+R\+E\+S\+U\+LT}}
\begin{DoxyCompactList}\small\item\em Adds a new temporary string using the passed string. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Stringshare__Group_gae8d53f367d5da5acfd19af6c235831d5}{Eina\+\_\+\+Tmpstr}} $\ast$ \mbox{\hyperlink{group__Eina__Stringshare__Group_gacf94f768fcbd084832078f27106fe73b}{eina\+\_\+tmpstr\+\_\+manage\+\_\+new\+\_\+length}} (char $\ast$str, size\+\_\+t length)
\begin{DoxyCompactList}\small\item\em Adds a new temporary string using the passed string. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
These functions allow you to store a single copy of a string, and use in multiple places throughout your program. 

This is a method to reduce the number of duplicated strings kept in memory. It\textquotesingle{}s pretty common for the same strings to be dynamically allocated repeatedly between applications and libraries, especially in circumstances where you could have multiple copies of a structure that allocates the string. So rather than duplicating and freeing these strings, you request a read-\/only pointer to an existing string and only incur the overhead of a hash lookup.

It sounds like micro-\/optimizing, but profiling has shown this can have a significant impact as you scale the number of copies up. It improves string creation/destruction speed, reduces memory use and decreases memory fragmentation, so a win all-\/around.

Using eina stringshares usually boils down to\+: 
\begin{DoxyCode}
\textcolor{keyword}{const} \textcolor{keywordtype}{char} *str = \mbox{\hyperlink{group__Eina__Stringshare__Group_ga5293082680141132ffcacc28866ef0ef}{eina\_stringshare\_add}}(\textcolor{stringliteral}{"My string"});
...
\textcolor{comment}{//Use str}
...
\mbox{\hyperlink{group__Eina__Stringshare__Group_ga495411b0bc85b9c0d59ec7255a025260}{eina\_stringshare\_del}}(str);
\end{DoxyCode}
 \begin{DoxyNote}{Note}
It\textquotesingle{}s very important to note that string shares are {\bfseries {\ttfamily const},} changing them will result in undefined behavior. 

\mbox{\hyperlink{group__Eina__Stringshare__Group_ga495411b0bc85b9c0d59ec7255a025260}{eina\+\_\+stringshare\+\_\+del()}} {\bfseries doesn\textquotesingle{}t} guarantee the string share will be freed, it releases a reference to it, but if other references to it still exist the string share will live until those are released.
\end{DoxyNote}
The following diagram gives an idea of what happens as you create strings with \mbox{\hyperlink{group__Eina__Stringshare__Group_ga5293082680141132ffcacc28866ef0ef}{eina\+\_\+stringshare\+\_\+add()}}\+:

 
\begin{DoxyImageNoCaption}
  \mbox{\includegraphics[height=\textheight]{eina_stringshare}}
\end{DoxyImageNoCaption}


For more information, see \mbox{\hyperlink{eina_stringshare_example_01_page}{this example}}. 

\subsection{Typedef Documentation}
\mbox{\Hypertarget{group__Eina__Stringshare__Group_ga2b7dc19609a55e630a96cc1396e38a53}\label{group__Eina__Stringshare__Group_ga2b7dc19609a55e630a96cc1396e38a53}} 
\index{Stringshare@{Stringshare}!Eina\+\_\+\+Stringshare@{Eina\+\_\+\+Stringshare}}
\index{Eina\+\_\+\+Stringshare@{Eina\+\_\+\+Stringshare}!Stringshare@{Stringshare}}
\subsubsection{\texorpdfstring{Eina\+\_\+\+Stringshare}{Eina\_Stringshare}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Stringshare__Group_ga2b7dc19609a55e630a96cc1396e38a53}{Eina\+\_\+\+Stringshare}}}



\char`\"{}\+Eina\+\_\+\+Stringshare $\ast$\char`\"{} is interchangeable with \char`\"{}const char $\ast$\char`\"{} but still a good visual hint for the purpose. 

Maybe in the far far future we\textquotesingle{}ll even add strict type checking.

\begin{DoxySince}{Since}
1.\+2.\+0 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Stringshare__Group_gae8d53f367d5da5acfd19af6c235831d5}\label{group__Eina__Stringshare__Group_gae8d53f367d5da5acfd19af6c235831d5}} 
\index{Stringshare@{Stringshare}!Eina\+\_\+\+Tmpstr@{Eina\+\_\+\+Tmpstr}}
\index{Eina\+\_\+\+Tmpstr@{Eina\+\_\+\+Tmpstr}!Stringshare@{Stringshare}}
\subsubsection{\texorpdfstring{Eina\+\_\+\+Tmpstr}{Eina\_Tmpstr}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Stringshare__Group_gae8d53f367d5da5acfd19af6c235831d5}{Eina\+\_\+\+Tmpstr}}}



Interchangeable with \char`\"{}const char $\ast$\char`\"{} but still a good visual hint for the purpose. 

This indicates the string is temporary and should be freed after use.

\begin{DoxySince}{Since}
1.\+8.\+0 
\end{DoxySince}


\subsection{Function Documentation}
\mbox{\Hypertarget{group__Eina__Stringshare__Group_gabe8ecf4121011cb792f36ecd8c44e470}\label{group__Eina__Stringshare__Group_gabe8ecf4121011cb792f36ecd8c44e470}} 
\index{Stringshare@{Stringshare}!eina\+\_\+stringshare\+\_\+add\+\_\+length@{eina\+\_\+stringshare\+\_\+add\+\_\+length}}
\index{eina\+\_\+stringshare\+\_\+add\+\_\+length@{eina\+\_\+stringshare\+\_\+add\+\_\+length}!Stringshare@{Stringshare}}
\subsubsection{\texorpdfstring{eina\+\_\+stringshare\+\_\+add\+\_\+length()}{eina\_stringshare\_add\_length()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Stringshare__Group_ga2b7dc19609a55e630a96cc1396e38a53}{Eina\+\_\+\+Stringshare}}$\ast$ eina\+\_\+stringshare\+\_\+add\+\_\+length (\begin{DoxyParamCaption}\item[{const char $\ast$}]{str,  }\item[{unsigned int}]{slen }\end{DoxyParamCaption})}



Retrieves an instance of a string with a specific size for use in a program. 


\begin{DoxyParams}{Parameters}
{\em str} & The string to retrieve an instance of. \\
\hline
{\em slen} & The string size ($<$= strlen(str)). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A pointer to an instance of the string on success, {\ttfamily N\+U\+LL} on failure.
\end{DoxyReturn}
This function retrieves an instance of {\ttfamily str}. If {\ttfamily str} is {\ttfamily N\+U\+LL}, then {\ttfamily N\+U\+LL} is returned. If {\ttfamily str} is already stored, it is just returned and its reference counter is increased. Otherwise a duplicated string of {\ttfamily str} is returned.

This function does not check string size, but uses the exact given size. This can be used to share\+\_\+common part of a larger buffer or substring.

\begin{DoxySeeAlso}{See also}
eina\+\_\+share\+\_\+common\+\_\+add() 
\end{DoxySeeAlso}


References eina\+\_\+spinlock\+\_\+release(), and eina\+\_\+spinlock\+\_\+take().



Referenced by eet\+\_\+open(), efreet\+\_\+icon\+\_\+deprecated\+\_\+user\+\_\+dir\+\_\+get(), efreet\+\_\+icon\+\_\+user\+\_\+dir\+\_\+get(), eina\+\_\+stringshare\+\_\+add(), and eina\+\_\+stringshare\+\_\+vprintf().

\mbox{\Hypertarget{group__Eina__Stringshare__Group_ga5293082680141132ffcacc28866ef0ef}\label{group__Eina__Stringshare__Group_ga5293082680141132ffcacc28866ef0ef}} 
\index{Stringshare@{Stringshare}!eina\+\_\+stringshare\+\_\+add@{eina\+\_\+stringshare\+\_\+add}}
\index{eina\+\_\+stringshare\+\_\+add@{eina\+\_\+stringshare\+\_\+add}!Stringshare@{Stringshare}}
\subsubsection{\texorpdfstring{eina\+\_\+stringshare\+\_\+add()}{eina\_stringshare\_add()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Stringshare__Group_ga2b7dc19609a55e630a96cc1396e38a53}{Eina\+\_\+\+Stringshare}}$\ast$ eina\+\_\+stringshare\+\_\+add (\begin{DoxyParamCaption}\item[{const char $\ast$}]{str }\end{DoxyParamCaption})}



Retrieves an instance of a string for use in a program. 


\begin{DoxyParams}{Parameters}
{\em str} & The N\+U\+L\+L-\/terminated string to retrieve an instance of. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A pointer to an instance of the string on success, {\ttfamily N\+U\+LL} on failure.
\end{DoxyReturn}
This function retrieves an instance of {\ttfamily str}. If {\ttfamily str} is {\ttfamily N\+U\+LL}, then {\ttfamily N\+U\+LL} is returned. If {\ttfamily str} is already stored, it is just returned and its reference counter is increased. Otherwise a duplicated string of {\ttfamily str} is returned.

The string {\ttfamily str} must be N\+U\+LL terminated (\textquotesingle{}\textbackslash{}0\textquotesingle{}) and its full length will be used. To use part of the string or non-\/null terminated, use \mbox{\hyperlink{group__Eina__Stringshare__Group_gabe8ecf4121011cb792f36ecd8c44e470}{eina\+\_\+stringshare\+\_\+add\+\_\+length()}} instead.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eina__Stringshare__Group_gabe8ecf4121011cb792f36ecd8c44e470}{eina\+\_\+stringshare\+\_\+add\+\_\+length()}} 
\end{DoxySeeAlso}


References eina\+\_\+stringshare\+\_\+add\+\_\+length().



Referenced by ecore\+\_\+con\+\_\+socks4\+\_\+remote\+\_\+add(), ecore\+\_\+con\+\_\+socks5\+\_\+remote\+\_\+add(), ecore\+\_\+drm\+\_\+device\+\_\+find(), ecore\+\_\+evas\+\_\+aux\+\_\+hint\+\_\+add(), ecore\+\_\+evas\+\_\+aux\+\_\+hint\+\_\+val\+\_\+set(), ecore\+\_\+wl2\+\_\+window\+\_\+aux\+\_\+hints\+\_\+supported\+\_\+get(), edje\+\_\+available\+\_\+modules\+\_\+get(), edje\+\_\+edit\+\_\+color\+\_\+class\+\_\+add(), edje\+\_\+edit\+\_\+color\+\_\+classes\+\_\+list\+\_\+get(), edje\+\_\+edit\+\_\+color\+\_\+classes\+\_\+source\+\_\+generate(), edje\+\_\+edit\+\_\+compiler\+\_\+get(), edje\+\_\+edit\+\_\+data\+\_\+add(), edje\+\_\+edit\+\_\+data\+\_\+list\+\_\+get(), edje\+\_\+edit\+\_\+data\+\_\+source\+\_\+generate(), edje\+\_\+edit\+\_\+data\+\_\+value\+\_\+get(), edje\+\_\+edit\+\_\+external\+\_\+add(), edje\+\_\+edit\+\_\+externals\+\_\+list\+\_\+get(), edje\+\_\+edit\+\_\+font\+\_\+path\+\_\+get(), edje\+\_\+edit\+\_\+fonts\+\_\+list\+\_\+get(), edje\+\_\+edit\+\_\+group\+\_\+add(), edje\+\_\+edit\+\_\+group\+\_\+alias\+\_\+add(), edje\+\_\+edit\+\_\+group\+\_\+aliased\+\_\+get(), edje\+\_\+edit\+\_\+group\+\_\+aliases\+\_\+get(), edje\+\_\+edit\+\_\+group\+\_\+copy(), edje\+\_\+edit\+\_\+group\+\_\+data\+\_\+add(), edje\+\_\+edit\+\_\+group\+\_\+data\+\_\+list\+\_\+get(), edje\+\_\+edit\+\_\+group\+\_\+data\+\_\+value\+\_\+get(), edje\+\_\+edit\+\_\+group\+\_\+name\+\_\+set(), edje\+\_\+edit\+\_\+image\+\_\+add(), edje\+\_\+edit\+\_\+image\+\_\+set\+\_\+images\+\_\+list\+\_\+get(), edje\+\_\+edit\+\_\+image\+\_\+set\+\_\+list\+\_\+get(), edje\+\_\+edit\+\_\+images\+\_\+list\+\_\+get(), edje\+\_\+edit\+\_\+part\+\_\+above\+\_\+get(), edje\+\_\+edit\+\_\+part\+\_\+below\+\_\+get(), edje\+\_\+edit\+\_\+part\+\_\+copy(), edje\+\_\+edit\+\_\+part\+\_\+item\+\_\+index\+\_\+name\+\_\+get(), edje\+\_\+edit\+\_\+part\+\_\+item\+\_\+index\+\_\+name\+\_\+set(), edje\+\_\+edit\+\_\+part\+\_\+item\+\_\+index\+\_\+source\+\_\+get(), edje\+\_\+edit\+\_\+part\+\_\+item\+\_\+index\+\_\+source\+\_\+set(), edje\+\_\+edit\+\_\+part\+\_\+item\+\_\+source\+\_\+get(), edje\+\_\+edit\+\_\+part\+\_\+item\+\_\+source\+\_\+set(), edje\+\_\+edit\+\_\+part\+\_\+items\+\_\+list\+\_\+get(), edje\+\_\+edit\+\_\+part\+\_\+selected\+\_\+state\+\_\+get(), edje\+\_\+edit\+\_\+part\+\_\+source\+\_\+get(), edje\+\_\+edit\+\_\+parts\+\_\+list\+\_\+get(), edje\+\_\+edit\+\_\+program\+\_\+add(), edje\+\_\+edit\+\_\+program\+\_\+api\+\_\+description\+\_\+get(), edje\+\_\+edit\+\_\+program\+\_\+api\+\_\+name\+\_\+get(), edje\+\_\+edit\+\_\+program\+\_\+filter\+\_\+part\+\_\+get(), edje\+\_\+edit\+\_\+program\+\_\+filter\+\_\+state\+\_\+get(), edje\+\_\+edit\+\_\+program\+\_\+sample\+\_\+name\+\_\+get(), edje\+\_\+edit\+\_\+program\+\_\+signal\+\_\+get(), edje\+\_\+edit\+\_\+program\+\_\+source\+\_\+get(), edje\+\_\+edit\+\_\+program\+\_\+state2\+\_\+get(), edje\+\_\+edit\+\_\+program\+\_\+state\+\_\+get(), edje\+\_\+edit\+\_\+program\+\_\+tone\+\_\+name\+\_\+get(), edje\+\_\+edit\+\_\+programs\+\_\+list\+\_\+get(), edje\+\_\+edit\+\_\+size\+\_\+class\+\_\+add(), edje\+\_\+edit\+\_\+size\+\_\+classes\+\_\+list\+\_\+get(), edje\+\_\+edit\+\_\+sound\+\_\+samples\+\_\+list\+\_\+get(), edje\+\_\+edit\+\_\+sound\+\_\+samplesource\+\_\+get(), edje\+\_\+edit\+\_\+sound\+\_\+tone\+\_\+add(), edje\+\_\+edit\+\_\+sound\+\_\+tones\+\_\+list\+\_\+get(), edje\+\_\+edit\+\_\+state\+\_\+add(), edje\+\_\+edit\+\_\+state\+\_\+color\+\_\+class\+\_\+get(), edje\+\_\+edit\+\_\+state\+\_\+color\+\_\+class\+\_\+set(), edje\+\_\+edit\+\_\+state\+\_\+external\+\_\+param\+\_\+set(), edje\+\_\+edit\+\_\+state\+\_\+font\+\_\+get(), edje\+\_\+edit\+\_\+state\+\_\+image\+\_\+get(), edje\+\_\+edit\+\_\+state\+\_\+map\+\_\+light\+\_\+get(), edje\+\_\+edit\+\_\+state\+\_\+map\+\_\+perspective\+\_\+get(), edje\+\_\+edit\+\_\+state\+\_\+map\+\_\+rotation\+\_\+center\+\_\+get(), edje\+\_\+edit\+\_\+state\+\_\+proxy\+\_\+source\+\_\+get(), edje\+\_\+edit\+\_\+state\+\_\+text\+\_\+class\+\_\+get(), edje\+\_\+edit\+\_\+state\+\_\+text\+\_\+class\+\_\+set(), edje\+\_\+edit\+\_\+state\+\_\+text\+\_\+get(), edje\+\_\+edit\+\_\+state\+\_\+text\+\_\+repch\+\_\+get(), edje\+\_\+edit\+\_\+state\+\_\+text\+\_\+source\+\_\+get(), edje\+\_\+edit\+\_\+state\+\_\+text\+\_\+source\+\_\+set(), edje\+\_\+edit\+\_\+state\+\_\+text\+\_\+style\+\_\+get(), edje\+\_\+edit\+\_\+state\+\_\+text\+\_\+text\+\_\+source\+\_\+get(), edje\+\_\+edit\+\_\+state\+\_\+text\+\_\+text\+\_\+source\+\_\+set(), edje\+\_\+edit\+\_\+state\+\_\+tweens\+\_\+list\+\_\+get(), edje\+\_\+edit\+\_\+state\+\_\+vector\+\_\+get(), edje\+\_\+edit\+\_\+style\+\_\+add(), edje\+\_\+edit\+\_\+style\+\_\+tag\+\_\+add(), edje\+\_\+edit\+\_\+style\+\_\+tag\+\_\+value\+\_\+get(), edje\+\_\+edit\+\_\+style\+\_\+tags\+\_\+list\+\_\+get(), edje\+\_\+edit\+\_\+styles\+\_\+list\+\_\+get(), edje\+\_\+edit\+\_\+text\+\_\+class\+\_\+add(), edje\+\_\+edit\+\_\+text\+\_\+class\+\_\+font\+\_\+get(), edje\+\_\+edit\+\_\+text\+\_\+classes\+\_\+list\+\_\+get(), edje\+\_\+edit\+\_\+vectors\+\_\+list\+\_\+get(), edje\+\_\+init(), edje\+\_\+mmap\+\_\+collection\+\_\+list(), edje\+\_\+object\+\_\+text\+\_\+insert\+\_\+filter\+\_\+callback\+\_\+add(), edje\+\_\+object\+\_\+text\+\_\+markup\+\_\+filter\+\_\+callback\+\_\+add(), edje\+\_\+size\+\_\+class\+\_\+set(), edje\+\_\+text\+\_\+class\+\_\+set(), eet\+\_\+alias\+\_\+get(), eet\+\_\+eina\+\_\+stream\+\_\+data\+\_\+descriptor\+\_\+class\+\_\+set(), eet\+\_\+mmap(), eet\+\_\+node\+\_\+hash\+\_\+new(), eet\+\_\+node\+\_\+list\+\_\+append(), eet\+\_\+node\+\_\+struct\+\_\+append(), eeze\+\_\+net\+\_\+new(), eeze\+\_\+udev\+\_\+devpath\+\_\+get\+\_\+syspath(), eeze\+\_\+udev\+\_\+find\+\_\+by\+\_\+filter(), eeze\+\_\+udev\+\_\+find\+\_\+by\+\_\+subsystem\+\_\+sysname(), eeze\+\_\+udev\+\_\+find\+\_\+by\+\_\+sysattr(), eeze\+\_\+udev\+\_\+find\+\_\+by\+\_\+type(), eeze\+\_\+udev\+\_\+find\+\_\+similar\+\_\+from\+\_\+syspath(), eeze\+\_\+udev\+\_\+syspath\+\_\+get\+\_\+devname(), eeze\+\_\+udev\+\_\+syspath\+\_\+get\+\_\+devpath(), eeze\+\_\+udev\+\_\+syspath\+\_\+get\+\_\+parent(), eeze\+\_\+udev\+\_\+syspath\+\_\+get\+\_\+parents(), eeze\+\_\+udev\+\_\+syspath\+\_\+get\+\_\+property(), eeze\+\_\+udev\+\_\+syspath\+\_\+get\+\_\+subsystem(), eeze\+\_\+udev\+\_\+syspath\+\_\+get\+\_\+sysattr(), eeze\+\_\+udev\+\_\+syspath\+\_\+get\+\_\+sysattr\+\_\+list(), eeze\+\_\+udev\+\_\+walk\+\_\+get\+\_\+sysattr(), E\+F\+L\+\_\+\+D\+B\+G\+\_\+\+I\+N\+F\+O\+\_\+\+L\+I\+S\+T\+\_\+\+A\+P\+P\+E\+N\+D(), efl\+\_\+object\+\_\+legacy\+\_\+only\+\_\+event\+\_\+description\+\_\+get(), efreet\+\_\+desktop\+\_\+type\+\_\+add(), efreet\+\_\+menu\+\_\+async\+\_\+parse(), efreet\+\_\+menu\+\_\+file\+\_\+set(), eina\+\_\+simple\+\_\+xml\+\_\+attribute\+\_\+new(), elm\+\_\+color\+\_\+class\+\_\+editor\+\_\+add(), elm\+\_\+config\+\_\+icon\+\_\+theme\+\_\+set(), elm\+\_\+config\+\_\+profile\+\_\+derived\+\_\+add(), elm\+\_\+quicklaunch\+\_\+init(), elm\+\_\+theme\+\_\+copy(), elm\+\_\+theme\+\_\+get(), elm\+\_\+validator\+\_\+regexp\+\_\+new(), elua\+\_\+state\+\_\+new(), evas\+\_\+font\+\_\+path\+\_\+global\+\_\+append(), evas\+\_\+font\+\_\+path\+\_\+global\+\_\+prepend(), evas\+\_\+object\+\_\+image\+\_\+extension\+\_\+can\+\_\+load\+\_\+get(), evas\+\_\+object\+\_\+textblock\+\_\+replace\+\_\+char\+\_\+set(), evas\+\_\+object\+\_\+textblock\+\_\+style\+\_\+user\+\_\+push(), evas\+\_\+object\+\_\+textblock\+\_\+text\+\_\+markup\+\_\+get(), evas\+\_\+object\+\_\+textblock\+\_\+text\+\_\+markup\+\_\+set(), and efl\+::eina\+::stringshare\+::stringshare().

\mbox{\Hypertarget{group__Eina__Stringshare__Group_gab3507a1373455cac57bf494e776fe4a8}\label{group__Eina__Stringshare__Group_gab3507a1373455cac57bf494e776fe4a8}} 
\index{Stringshare@{Stringshare}!eina\+\_\+stringshare\+\_\+printf@{eina\+\_\+stringshare\+\_\+printf}}
\index{eina\+\_\+stringshare\+\_\+printf@{eina\+\_\+stringshare\+\_\+printf}!Stringshare@{Stringshare}}
\subsubsection{\texorpdfstring{eina\+\_\+stringshare\+\_\+printf()}{eina\_stringshare\_printf()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Stringshare__Group_ga2b7dc19609a55e630a96cc1396e38a53}{Eina\+\_\+\+Stringshare}}$\ast$ eina\+\_\+stringshare\+\_\+printf (\begin{DoxyParamCaption}\item[{const char $\ast$}]{fmt,  }\item[{}]{... }\end{DoxyParamCaption})}



Retrieves an instance of a string for use in a program from a format string. 


\begin{DoxyParams}{Parameters}
{\em fmt} & The N\+U\+L\+L-\/terminated format string to retrieve an instance of. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A pointer to an instance of the string on success, {\ttfamily N\+U\+LL} on failure.
\end{DoxyReturn}
This function retrieves an instance of {\ttfamily fmt}. If {\ttfamily fmt} is {\ttfamily N\+U\+LL}, then {\ttfamily N\+U\+LL} is returned. If {\ttfamily fmt} is already stored, it is just returned and its reference counter is increased. Otherwise a duplicated string is returned.

The format string {\ttfamily fmt} must be N\+U\+L\+L-\/terminated (\textquotesingle{}\textbackslash{}0\textquotesingle{}) and its full length will be used. To use part of the format string or non-\/null terminated, use \mbox{\hyperlink{group__Eina__Stringshare__Group_ga4bc3769aa8d4d33c36b6857af33a810b}{eina\+\_\+stringshare\+\_\+nprintf()}} instead.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eina__Stringshare__Group_ga4bc3769aa8d4d33c36b6857af33a810b}{eina\+\_\+stringshare\+\_\+nprintf()}} 
\end{DoxySeeAlso}
\begin{Desc}
\item[Examples\+: ]\par
\mbox{\hyperlink{eina_stringshare_01_8c-example}{eina\+\_\+stringshare\+\_\+01.\+c}}.\end{Desc}
\mbox{\Hypertarget{group__Eina__Stringshare__Group_gad7d32f79c65214efa19b09856a950070}\label{group__Eina__Stringshare__Group_gad7d32f79c65214efa19b09856a950070}} 
\index{Stringshare@{Stringshare}!eina\+\_\+stringshare\+\_\+vprintf@{eina\+\_\+stringshare\+\_\+vprintf}}
\index{eina\+\_\+stringshare\+\_\+vprintf@{eina\+\_\+stringshare\+\_\+vprintf}!Stringshare@{Stringshare}}
\subsubsection{\texorpdfstring{eina\+\_\+stringshare\+\_\+vprintf()}{eina\_stringshare\_vprintf()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Stringshare__Group_ga2b7dc19609a55e630a96cc1396e38a53}{Eina\+\_\+\+Stringshare}} \mbox{\hyperlink{group__Eina__Stringshare__Group_ga2b7dc19609a55e630a96cc1396e38a53}{Eina\+\_\+\+Stringshare}}$\ast$ eina\+\_\+stringshare\+\_\+vprintf (\begin{DoxyParamCaption}\item[{const char $\ast$}]{fmt,  }\item[{va\+\_\+list}]{args }\end{DoxyParamCaption})}



Retrieves an instance of a string for use in a program from a format string. 


\begin{DoxyParams}{Parameters}
{\em fmt} & The N\+U\+L\+L-\/terminated format string to retrieve an instance of. \\
\hline
{\em args} & The va\+\_\+args for {\ttfamily fmt} \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A pointer to an instance of the string on success, {\ttfamily N\+U\+LL} on failure.
\end{DoxyReturn}
This function retrieves an instance of {\ttfamily fmt} with {\ttfamily args}. If {\ttfamily fmt} is {\ttfamily N\+U\+LL}, then {\ttfamily N\+U\+LL} is returned. If {\ttfamily fmt} with {\ttfamily args} is already stored, it is just returned and its reference counter is increased. Otherwise a duplicated string is returned.

The format string {\ttfamily fmt} must be N\+U\+L\+L-\/terminated (\textquotesingle{}\textbackslash{}0\textquotesingle{}) and its full length will be used. To use part of the format string or non-\/null terminated, use \mbox{\hyperlink{group__Eina__Stringshare__Group_ga4bc3769aa8d4d33c36b6857af33a810b}{eina\+\_\+stringshare\+\_\+nprintf()}} instead.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eina__Stringshare__Group_ga4bc3769aa8d4d33c36b6857af33a810b}{eina\+\_\+stringshare\+\_\+nprintf()}} 
\end{DoxySeeAlso}


References eina\+\_\+stringshare\+\_\+add\+\_\+length().

\mbox{\Hypertarget{group__Eina__Stringshare__Group_ga4bc3769aa8d4d33c36b6857af33a810b}\label{group__Eina__Stringshare__Group_ga4bc3769aa8d4d33c36b6857af33a810b}} 
\index{Stringshare@{Stringshare}!eina\+\_\+stringshare\+\_\+nprintf@{eina\+\_\+stringshare\+\_\+nprintf}}
\index{eina\+\_\+stringshare\+\_\+nprintf@{eina\+\_\+stringshare\+\_\+nprintf}!Stringshare@{Stringshare}}
\subsubsection{\texorpdfstring{eina\+\_\+stringshare\+\_\+nprintf()}{eina\_stringshare\_nprintf()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Stringshare__Group_ga2b7dc19609a55e630a96cc1396e38a53}{Eina\+\_\+\+Stringshare}}$\ast$ eina\+\_\+stringshare\+\_\+nprintf (\begin{DoxyParamCaption}\item[{unsigned int}]{len,  }\item[{const char $\ast$}]{fmt,  }\item[{}]{... }\end{DoxyParamCaption})}



Retrieves an instance of a string for use in a program from a format string with size limitation. 


\begin{DoxyParams}{Parameters}
{\em len} & The length of the format string to use \\
\hline
{\em fmt} & The format string to retrieve an instance of. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A pointer to an instance of the string on success, {\ttfamily N\+U\+LL} on failure.
\end{DoxyReturn}
This function retrieves an instance of {\ttfamily fmt} limited by {\ttfamily len}. If {\ttfamily fmt} is {\ttfamily N\+U\+LL} or {\ttfamily len} is $<$ 1, then {\ttfamily N\+U\+LL} is returned. If the resulting string is already stored, it is returned and its reference counter is increased. Otherwise a duplicated string is returned.

{\ttfamily len} length of the format string will be used. To use the entire format string, use \mbox{\hyperlink{group__Eina__Stringshare__Group_gab3507a1373455cac57bf494e776fe4a8}{eina\+\_\+stringshare\+\_\+printf()}} instead.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eina__Stringshare__Group_gab3507a1373455cac57bf494e776fe4a8}{eina\+\_\+stringshare\+\_\+printf()}} 
\end{DoxySeeAlso}
\begin{Desc}
\item[Examples\+: ]\par
\mbox{\hyperlink{eina_stringshare_01_8c-example}{eina\+\_\+stringshare\+\_\+01.\+c}}.\end{Desc}
\mbox{\Hypertarget{group__Eina__Stringshare__Group_gac6f45e4273f13f42e9a3c48435cd03dc}\label{group__Eina__Stringshare__Group_gac6f45e4273f13f42e9a3c48435cd03dc}} 
\index{Stringshare@{Stringshare}!eina\+\_\+stringshare\+\_\+ref@{eina\+\_\+stringshare\+\_\+ref}}
\index{eina\+\_\+stringshare\+\_\+ref@{eina\+\_\+stringshare\+\_\+ref}!Stringshare@{Stringshare}}
\subsubsection{\texorpdfstring{eina\+\_\+stringshare\+\_\+ref()}{eina\_stringshare\_ref()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Stringshare__Group_ga2b7dc19609a55e630a96cc1396e38a53}{Eina\+\_\+\+Stringshare}} \mbox{\hyperlink{group__Eina__Stringshare__Group_ga2b7dc19609a55e630a96cc1396e38a53}{Eina\+\_\+\+Stringshare}}$\ast$ eina\+\_\+stringshare\+\_\+ref (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Stringshare__Group_ga2b7dc19609a55e630a96cc1396e38a53}{Eina\+\_\+\+Stringshare}} $\ast$}]{str }\end{DoxyParamCaption})}



Increment references of the given shared string. 


\begin{DoxyParams}{Parameters}
{\em str} & The shared string. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A pointer to an instance of the string on success, {\ttfamily N\+U\+LL} on failure.
\end{DoxyReturn}
This is similar to eina\+\_\+share\+\_\+common\+\_\+add(), but it\textquotesingle{}s faster since it will avoid lookups if possible, but on the down side it requires the parameter to be shared string. In other words, it must be the return of a previous call to one of the stringshare functions.

There is no unref since this is the work of eina\+\_\+share\+\_\+common\+\_\+del(). 

References eina\+\_\+spinlock\+\_\+release(), and eina\+\_\+spinlock\+\_\+take().



Referenced by ethumb\+\_\+dup().

\mbox{\Hypertarget{group__Eina__Stringshare__Group_ga495411b0bc85b9c0d59ec7255a025260}\label{group__Eina__Stringshare__Group_ga495411b0bc85b9c0d59ec7255a025260}} 
\index{Stringshare@{Stringshare}!eina\+\_\+stringshare\+\_\+del@{eina\+\_\+stringshare\+\_\+del}}
\index{eina\+\_\+stringshare\+\_\+del@{eina\+\_\+stringshare\+\_\+del}!Stringshare@{Stringshare}}
\subsubsection{\texorpdfstring{eina\+\_\+stringshare\+\_\+del()}{eina\_stringshare\_del()}}
{\footnotesize\ttfamily void eina\+\_\+stringshare\+\_\+del (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Stringshare__Group_ga2b7dc19609a55e630a96cc1396e38a53}{Eina\+\_\+\+Stringshare}} $\ast$}]{str }\end{DoxyParamCaption})}



Notes that the given string has lost an instance. 


\begin{DoxyParams}{Parameters}
{\em str} & String the given string.\\
\hline
\end{DoxyParams}
This function decreases the reference counter associated to {\ttfamily str} if it exists. If that counter reaches 0, the memory associated to {\ttfamily str} is freed. If {\ttfamily str} is {\ttfamily N\+U\+LL}, the function returns immediately.

\begin{DoxyNote}{Note}
If the given pointer is not shared, bad things will happen, likely a segmentation fault. 
\end{DoxyNote}


References eina\+\_\+spinlock\+\_\+release(), and eina\+\_\+spinlock\+\_\+take().



Referenced by ecore\+\_\+drm\+\_\+device\+\_\+find(), ecore\+\_\+evas\+\_\+aux\+\_\+hint\+\_\+del(), ecore\+\_\+evas\+\_\+aux\+\_\+hint\+\_\+val\+\_\+set(), edje\+\_\+available\+\_\+modules\+\_\+get(), edje\+\_\+color\+\_\+class\+\_\+del(), edje\+\_\+edit\+\_\+data\+\_\+add(), edje\+\_\+edit\+\_\+group\+\_\+data\+\_\+add(), edje\+\_\+edit\+\_\+image\+\_\+add(), edje\+\_\+edit\+\_\+image\+\_\+usage\+\_\+list\+\_\+free(), edje\+\_\+edit\+\_\+limits\+\_\+list\+\_\+free(), edje\+\_\+edit\+\_\+part\+\_\+item\+\_\+index\+\_\+name\+\_\+set(), edje\+\_\+edit\+\_\+state\+\_\+external\+\_\+param\+\_\+set(), edje\+\_\+edit\+\_\+string\+\_\+free(), edje\+\_\+edit\+\_\+string\+\_\+list\+\_\+free(), edje\+\_\+file\+\_\+collection\+\_\+list\+\_\+free(), edje\+\_\+object\+\_\+text\+\_\+insert\+\_\+filter\+\_\+callback\+\_\+del(), edje\+\_\+object\+\_\+text\+\_\+insert\+\_\+filter\+\_\+callback\+\_\+del\+\_\+full(), edje\+\_\+object\+\_\+text\+\_\+markup\+\_\+filter\+\_\+callback\+\_\+del(), edje\+\_\+object\+\_\+text\+\_\+markup\+\_\+filter\+\_\+callback\+\_\+del\+\_\+full(), edje\+\_\+size\+\_\+class\+\_\+del(), edje\+\_\+text\+\_\+class\+\_\+del(), eet\+\_\+eina\+\_\+stream\+\_\+data\+\_\+descriptor\+\_\+class\+\_\+set(), eet\+\_\+node\+\_\+del(), eet\+\_\+node\+\_\+list\+\_\+append(), eet\+\_\+node\+\_\+struct\+\_\+append(), eeze\+\_\+net\+\_\+new(), efl\+\_\+object\+\_\+legacy\+\_\+only\+\_\+event\+\_\+description\+\_\+get(), efreet\+\_\+desktop\+\_\+free(), eina\+\_\+file\+\_\+clean\+\_\+close(), eina\+\_\+file\+\_\+unlink(), eina\+\_\+simple\+\_\+xml\+\_\+attribute\+\_\+free(), elm\+\_\+config\+\_\+icon\+\_\+theme\+\_\+set(), elm\+\_\+config\+\_\+profile\+\_\+list\+\_\+free(), elm\+\_\+font\+\_\+fontconfig\+\_\+name\+\_\+free(), elm\+\_\+object\+\_\+cursor\+\_\+unset(), elm\+\_\+shutdown(), elm\+\_\+spinner\+\_\+special\+\_\+value\+\_\+del(), elm\+\_\+theme\+\_\+flush(), elm\+\_\+theme\+\_\+set(), elm\+\_\+validator\+\_\+regexp\+\_\+free(), elua\+\_\+state\+\_\+free(), elua\+\_\+state\+\_\+setup(), evas\+\_\+font\+\_\+path\+\_\+global\+\_\+clear(), evas\+\_\+object\+\_\+image\+\_\+extension\+\_\+can\+\_\+load\+\_\+get(), evas\+\_\+object\+\_\+textblock\+\_\+replace\+\_\+char\+\_\+set(), evas\+\_\+object\+\_\+textblock\+\_\+text\+\_\+markup\+\_\+set(), evas\+\_\+render\+\_\+method\+\_\+list\+\_\+free(), evas\+\_\+textblock\+\_\+style\+\_\+free(), and efl\+::eina\+::stringshare\+::$\sim$stringshare().

\mbox{\Hypertarget{group__Eina__Stringshare__Group_gaf316a9f4a787091ee437ec7caf0a5c7b}\label{group__Eina__Stringshare__Group_gaf316a9f4a787091ee437ec7caf0a5c7b}} 
\index{Stringshare@{Stringshare}!eina\+\_\+stringshare\+\_\+strlen@{eina\+\_\+stringshare\+\_\+strlen}}
\index{eina\+\_\+stringshare\+\_\+strlen@{eina\+\_\+stringshare\+\_\+strlen}!Stringshare@{Stringshare}}
\subsubsection{\texorpdfstring{eina\+\_\+stringshare\+\_\+strlen()}{eina\_stringshare\_strlen()}}
{\footnotesize\ttfamily int eina\+\_\+stringshare\+\_\+strlen (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Stringshare__Group_ga2b7dc19609a55e630a96cc1396e38a53}{Eina\+\_\+\+Stringshare}} $\ast$}]{str }\end{DoxyParamCaption})}



Notes that the given string {\bfseries must} be shared. 


\begin{DoxyParams}{Parameters}
{\em str} & The shared string to know the length. It is safe to give {\ttfamily N\+U\+LL}, in that case {\ttfamily 0} is returned. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The length of a shared string.
\end{DoxyReturn}
This function is a cheap way to known the length of a shared string.

\begin{DoxyNote}{Note}
If the given pointer is not shared, bad things will happen, likely a segmentation fault. If in doubt, try strlen(). 
\end{DoxyNote}


Referenced by efl\+::eina\+::stringshare\+::size().

\mbox{\Hypertarget{group__Eina__Stringshare__Group_ga13dba791a752e1c51bddb329213cb060}\label{group__Eina__Stringshare__Group_ga13dba791a752e1c51bddb329213cb060}} 
\index{Stringshare@{Stringshare}!eina\+\_\+stringshare\+\_\+dump@{eina\+\_\+stringshare\+\_\+dump}}
\index{eina\+\_\+stringshare\+\_\+dump@{eina\+\_\+stringshare\+\_\+dump}!Stringshare@{Stringshare}}
\subsubsection{\texorpdfstring{eina\+\_\+stringshare\+\_\+dump()}{eina\_stringshare\_dump()}}
{\footnotesize\ttfamily void eina\+\_\+stringshare\+\_\+dump (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Dumps the contents of the share\+\_\+common. 

This function dumps all strings in the share\+\_\+common to stdout with a D\+DD\+: prefix per line and a memory usage summary. \mbox{\Hypertarget{group__Eina__Stringshare__Group_gadb653e2dd0baf58b7f8bb7eea1753b2b}\label{group__Eina__Stringshare__Group_gadb653e2dd0baf58b7f8bb7eea1753b2b}} 
\index{Stringshare@{Stringshare}!eina\+\_\+tmpstr\+\_\+add@{eina\+\_\+tmpstr\+\_\+add}}
\index{eina\+\_\+tmpstr\+\_\+add@{eina\+\_\+tmpstr\+\_\+add}!Stringshare@{Stringshare}}
\subsubsection{\texorpdfstring{eina\+\_\+tmpstr\+\_\+add()}{eina\_tmpstr\_add()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Stringshare__Group_gae8d53f367d5da5acfd19af6c235831d5}{Eina\+\_\+\+Tmpstr}}$\ast$ eina\+\_\+tmpstr\+\_\+add (\begin{DoxyParamCaption}\item[{const char $\ast$}]{str }\end{DoxyParamCaption})}



Adds a new temporary string based on the input string. 


\begin{DoxyParams}{Parameters}
{\em str} & This is the input stringthat is copied into the temp string. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A pointer to the tmp string that is a standard C string.
\end{DoxyReturn}
When you add a temporary string (tmpstr) it is expected to have a very short lifespan, and at any one time only a few of these are intended to exist. This is not intended for longer term storage of strings. The intended use is the ability to safely pass strings as return values from functions directly into parameters of new functions and then have the string be cleaned up automatically by the caller.

If {\ttfamily str} is N\+U\+LL, or no memory space exists to store the tmpstr, then N\+U\+LL will be returned, otherwise a valid string pointer will be returned that you can treat as any other C string (eg strdup(tmpstr) or printf(\char`\"{}\%s\textbackslash{}n\char`\"{}, tmpstr) etc.). This string should be considered read-\/only and immutable, and when you are done with the string you should delete it with \mbox{\hyperlink{group__Eina__Stringshare__Group_gaa84ec3cc6c63bc67355aa3cbaa26189f}{eina\+\_\+tmpstr\+\_\+del()}}.

Example usage\+:


\begin{DoxyCode}
\mbox{\hyperlink{group__Eina__Stringshare__Group_gae8d53f367d5da5acfd19af6c235831d5}{Eina\_Tmpstr}} *my\_homedir(\textcolor{keywordtype}{void}) \{
  \textcolor{keywordflow}{return} \mbox{\hyperlink{group__Eina__Stringshare__Group_gadb653e2dd0baf58b7f8bb7eea1753b2b}{eina\_tmpstr\_add}}(\mbox{\hyperlink{group__Eina__Tools__Group_gaaa4c9c9269f1cc1508ca0a785dec8c1c}{eina\_environment\_home\_get}}());
\}

\textcolor{keywordtype}{void} my\_rmfile(\mbox{\hyperlink{group__Eina__Stringshare__Group_gae8d53f367d5da5acfd19af6c235831d5}{Eina\_Tmpstr}} *str) \{
  \textcolor{keywordflow}{if} (!str) \textcolor{keywordflow}{return};
  unlink(str);
  \mbox{\hyperlink{group__Eina__Stringshare__Group_gaa84ec3cc6c63bc67355aa3cbaa26189f}{eina\_tmpstr\_del}}(str);
\}

my\_rmfile(my\_homedir());
my\_rmfile(\textcolor{stringliteral}{"/tmp/file"});
\end{DoxyCode}


\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eina__Stringshare__Group_gaa84ec3cc6c63bc67355aa3cbaa26189f}{eina\+\_\+tmpstr\+\_\+del()}} 

\mbox{\hyperlink{group__Eina__Stringshare__Group_ga6fb1f760eedc7796dc99247e51c6cba2}{eina\+\_\+tmpstr\+\_\+add\+\_\+length()}}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+8.\+0 
\end{DoxySince}


References eina\+\_\+tmpstr\+\_\+add\+\_\+length().

\mbox{\Hypertarget{group__Eina__Stringshare__Group_ga6fb1f760eedc7796dc99247e51c6cba2}\label{group__Eina__Stringshare__Group_ga6fb1f760eedc7796dc99247e51c6cba2}} 
\index{Stringshare@{Stringshare}!eina\+\_\+tmpstr\+\_\+add\+\_\+length@{eina\+\_\+tmpstr\+\_\+add\+\_\+length}}
\index{eina\+\_\+tmpstr\+\_\+add\+\_\+length@{eina\+\_\+tmpstr\+\_\+add\+\_\+length}!Stringshare@{Stringshare}}
\subsubsection{\texorpdfstring{eina\+\_\+tmpstr\+\_\+add\+\_\+length()}{eina\_tmpstr\_add\_length()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Stringshare__Group_gae8d53f367d5da5acfd19af6c235831d5}{Eina\+\_\+\+Tmpstr}}$\ast$ eina\+\_\+tmpstr\+\_\+add\+\_\+length (\begin{DoxyParamCaption}\item[{const char $\ast$}]{str,  }\item[{size\+\_\+t}]{length }\end{DoxyParamCaption})}



Adds a new temporary string based on the input string and length. 


\begin{DoxyParams}{Parameters}
{\em str} & This is the input string that is copied into the temp string. \\
\hline
{\em length} & This is the maximum length and the allocated length of the temp string. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A pointer to the tmp string that is a standard C string.
\end{DoxyReturn}
When you add a temporary string (tmpstr) it is expected to have a very short lifespan, and at any one time only a few of these are intended to exist. This is not intended for longer term storage of strings. The intended use is the ability to safely pass strings as return values from functions directly into parameters of new functions and then have the string be cleaned up automatically by the caller.

If {\ttfamily str} is N\+U\+LL, or no memory space exists to store the tmpstr, then N\+U\+LL will be returned, otherwise a valid string pointer will be returned that you can treat as any other C string (eg strdup(tmpstr) or printf(\char`\"{}\%s\textbackslash{}n\char`\"{}, tmpstr) etc.). This string should be considered read-\/only and immutable, and when you are done with the string you should delete it with \mbox{\hyperlink{group__Eina__Stringshare__Group_gaa84ec3cc6c63bc67355aa3cbaa26189f}{eina\+\_\+tmpstr\+\_\+del()}}.

\begin{DoxyNote}{Note}
If the length is greater than the actual string, but still \textquotesingle{}\textbackslash{}0\textquotesingle{} terminated, there won\textquotesingle{}t be any crash and the string will be correct, but eina\+\_\+tmpstr\+\_\+len will return an erroneous length. So if you want to have the correct length always call eina\+\_\+tmpstr\+\_\+add\+\_\+length with length == strlen(str). 
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eina__Stringshare__Group_gaa84ec3cc6c63bc67355aa3cbaa26189f}{eina\+\_\+tmpstr\+\_\+del()}} 

\mbox{\hyperlink{group__Eina__Stringshare__Group_gadb653e2dd0baf58b7f8bb7eea1753b2b}{eina\+\_\+tmpstr\+\_\+add()}}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+8.\+0 
\end{DoxySince}


References E\+I\+N\+A\+\_\+\+F\+A\+L\+SE, eina\+\_\+lock\+\_\+release(), and eina\+\_\+lock\+\_\+take().



Referenced by eina\+\_\+file\+\_\+current\+\_\+directory\+\_\+get(), and eina\+\_\+tmpstr\+\_\+add().

\mbox{\Hypertarget{group__Eina__Stringshare__Group_ga79d708af92046c135cbb47f50b9944a2}\label{group__Eina__Stringshare__Group_ga79d708af92046c135cbb47f50b9944a2}} 
\index{Stringshare@{Stringshare}!eina\+\_\+tmpstr\+\_\+strlen@{eina\+\_\+tmpstr\+\_\+strlen}}
\index{eina\+\_\+tmpstr\+\_\+strlen@{eina\+\_\+tmpstr\+\_\+strlen}!Stringshare@{Stringshare}}
\subsubsection{\texorpdfstring{eina\+\_\+tmpstr\+\_\+strlen()}{eina\_tmpstr\_strlen()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_gad5b2116495471db12a34bab9a34edfaa}{E\+I\+N\+A\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED}} \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} size\+\_\+t eina\+\_\+tmpstr\+\_\+strlen (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Stringshare__Group_gae8d53f367d5da5acfd19af6c235831d5}{Eina\+\_\+\+Tmpstr}} $\ast$}]{tmpstr }\end{DoxyParamCaption})}



{\bfseries Deprecated} Return the length of a temporary string including the \textquotesingle{}\textbackslash{}0\textquotesingle{}. 


\begin{DoxyParams}{Parameters}
{\em tmpstr} & This is any C string pointer, but if it is a tmp string it will return the length faster. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The length of the string including the \textquotesingle{}\textbackslash{}0\textquotesingle{}
\end{DoxyReturn}
\begin{DoxyRefDesc}{Deprecated}
\item[\mbox{\hyperlink{deprecated__deprecated000030}{Deprecated}}]\end{DoxyRefDesc}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eina__Stringshare__Group_ga94a7da533b4802cb94ff264515ae49ef}{eina\+\_\+tmpstr\+\_\+len()}} 
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+8.\+0 
\end{DoxySince}


References eina\+\_\+tmpstr\+\_\+len().

\mbox{\Hypertarget{group__Eina__Stringshare__Group_ga94a7da533b4802cb94ff264515ae49ef}\label{group__Eina__Stringshare__Group_ga94a7da533b4802cb94ff264515ae49ef}} 
\index{Stringshare@{Stringshare}!eina\+\_\+tmpstr\+\_\+len@{eina\+\_\+tmpstr\+\_\+len}}
\index{eina\+\_\+tmpstr\+\_\+len@{eina\+\_\+tmpstr\+\_\+len}!Stringshare@{Stringshare}}
\subsubsection{\texorpdfstring{eina\+\_\+tmpstr\+\_\+len()}{eina\_tmpstr\_len()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} size\+\_\+t eina\+\_\+tmpstr\+\_\+len (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Stringshare__Group_gae8d53f367d5da5acfd19af6c235831d5}{Eina\+\_\+\+Tmpstr}} $\ast$}]{tmpstr }\end{DoxyParamCaption})}



Returns the length of a temporary string. 


\begin{DoxyParams}{Parameters}
{\em tmpstr} & This is any C string pointer, but if it is a tmp string it will return the length faster. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The length of the string.
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\+14.\+0 
\end{DoxySince}


References eina\+\_\+lock\+\_\+release(), and eina\+\_\+lock\+\_\+take().



Referenced by eina\+\_\+file\+\_\+path\+\_\+sanitize(), and eina\+\_\+tmpstr\+\_\+strlen().

\mbox{\Hypertarget{group__Eina__Stringshare__Group_gaa84ec3cc6c63bc67355aa3cbaa26189f}\label{group__Eina__Stringshare__Group_gaa84ec3cc6c63bc67355aa3cbaa26189f}} 
\index{Stringshare@{Stringshare}!eina\+\_\+tmpstr\+\_\+del@{eina\+\_\+tmpstr\+\_\+del}}
\index{eina\+\_\+tmpstr\+\_\+del@{eina\+\_\+tmpstr\+\_\+del}!Stringshare@{Stringshare}}
\subsubsection{\texorpdfstring{eina\+\_\+tmpstr\+\_\+del()}{eina\_tmpstr\_del()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} void eina\+\_\+tmpstr\+\_\+del (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Stringshare__Group_gae8d53f367d5da5acfd19af6c235831d5}{Eina\+\_\+\+Tmpstr}} $\ast$}]{tmpstr }\end{DoxyParamCaption})}



Deletes the temporary string if it is one, or ignore it if it is not. 


\begin{DoxyParams}{Parameters}
{\em tmpstr} & This is any C string pointer, but if it is a tmp string it is freed.\\
\hline
\end{DoxyParams}
This will delete the given temporary string {\ttfamily tmpstr} if it is a valid temporary string, or otherwise it will ignore it and do nothing so this can be used safely with non-\/temporary strings.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eina__Stringshare__Group_gadb653e2dd0baf58b7f8bb7eea1753b2b}{eina\+\_\+tmpstr\+\_\+add()}}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+8.\+0 
\end{DoxySince}


References eina\+\_\+lock\+\_\+release(), and eina\+\_\+lock\+\_\+take().



Referenced by eina\+\_\+file\+\_\+cleanup(), and eina\+\_\+file\+\_\+path\+\_\+sanitize().

\mbox{\Hypertarget{group__Eina__Stringshare__Group_ga099711225b6f7da3869067372047b41f}\label{group__Eina__Stringshare__Group_ga099711225b6f7da3869067372047b41f}} 
\index{Stringshare@{Stringshare}!eina\+\_\+tmpstr\+\_\+manage\+\_\+new@{eina\+\_\+tmpstr\+\_\+manage\+\_\+new}}
\index{eina\+\_\+tmpstr\+\_\+manage\+\_\+new@{eina\+\_\+tmpstr\+\_\+manage\+\_\+new}!Stringshare@{Stringshare}}
\subsubsection{\texorpdfstring{eina\+\_\+tmpstr\+\_\+manage\+\_\+new()}{eina\_tmpstr\_manage\_new()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Stringshare__Group_gae8d53f367d5da5acfd19af6c235831d5}{Eina\+\_\+\+Tmpstr}}$\ast$ eina\+\_\+tmpstr\+\_\+manage\+\_\+new (\begin{DoxyParamCaption}\item[{char $\ast$}]{str }\end{DoxyParamCaption})}



Adds a new temporary string using the passed string. 

The passed string is used directly as the buffer. The passed string must be malloced.


\begin{DoxyParams}{Parameters}
{\em str} & The input string to manage. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A pointer to the tmp string that is a standard C string.
\end{DoxyReturn}
This function creates a new temporary string. On error, {\ttfamily N\+U\+LL} is returned. To free the resources, use \mbox{\hyperlink{group__Eina__Stringshare__Group_gaa84ec3cc6c63bc67355aa3cbaa26189f}{eina\+\_\+tmpstr\+\_\+del()}}.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eina__Stringshare__Group_gaa84ec3cc6c63bc67355aa3cbaa26189f}{eina\+\_\+tmpstr\+\_\+del()}} 
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+17.\+0 
\end{DoxySince}


References eina\+\_\+tmpstr\+\_\+manage\+\_\+new\+\_\+length().

\mbox{\Hypertarget{group__Eina__Stringshare__Group_gacf94f768fcbd084832078f27106fe73b}\label{group__Eina__Stringshare__Group_gacf94f768fcbd084832078f27106fe73b}} 
\index{Stringshare@{Stringshare}!eina\+\_\+tmpstr\+\_\+manage\+\_\+new\+\_\+length@{eina\+\_\+tmpstr\+\_\+manage\+\_\+new\+\_\+length}}
\index{eina\+\_\+tmpstr\+\_\+manage\+\_\+new\+\_\+length@{eina\+\_\+tmpstr\+\_\+manage\+\_\+new\+\_\+length}!Stringshare@{Stringshare}}
\subsubsection{\texorpdfstring{eina\+\_\+tmpstr\+\_\+manage\+\_\+new\+\_\+length()}{eina\_tmpstr\_manage\_new\_length()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Stringshare__Group_gae8d53f367d5da5acfd19af6c235831d5}{Eina\+\_\+\+Tmpstr}}$\ast$ eina\+\_\+tmpstr\+\_\+manage\+\_\+new\+\_\+length (\begin{DoxyParamCaption}\item[{char $\ast$}]{str,  }\item[{size\+\_\+t}]{length }\end{DoxyParamCaption})}



Adds a new temporary string using the passed string. 

The passed string is used directly as the buffer. The passed string must be malloced.


\begin{DoxyParams}{Parameters}
{\em str} & The input string to manage. \\
\hline
{\em length} & The length of the string. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A pointer to the tmp string that is a standard C string.
\end{DoxyReturn}
This function creates a new temporary string. On error, {\ttfamily N\+U\+LL} is returned. To free the resources, use \mbox{\hyperlink{group__Eina__Stringshare__Group_gaa84ec3cc6c63bc67355aa3cbaa26189f}{eina\+\_\+tmpstr\+\_\+del()}}.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eina__Stringshare__Group_ga099711225b6f7da3869067372047b41f}{eina\+\_\+tmpstr\+\_\+manage\+\_\+new()}} 

\mbox{\hyperlink{group__Eina__Stringshare__Group_gaa84ec3cc6c63bc67355aa3cbaa26189f}{eina\+\_\+tmpstr\+\_\+del()}} 
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+17.\+0 
\end{DoxySince}


References eina\+\_\+lock\+\_\+release(), eina\+\_\+lock\+\_\+take(), and E\+I\+N\+A\+\_\+\+T\+R\+UE.



Referenced by eina\+\_\+tmpstr\+\_\+manage\+\_\+new().

