\hypertarget{lgc_8h}{
\section{lgc.h File Reference}
\label{lgc_8h}\index{lgc.h@{lgc.h}}
}
{\tt \#include \char`\"{}lobject.h\char`\"{}}\par
\subsection*{Defines}
\begin{CompactItemize}
\item 
\#define \hyperlink{lgc_8h_b546d91106ec5cfdba254de13e5b5c5f}{GCSpause}~0
\item 
\#define \hyperlink{lgc_8h_2ed301793747f3a2d0a7fc7d64d482fd}{GCSpropagate}~1
\item 
\#define \hyperlink{lgc_8h_bab475c862e8b12eaa5116240f9eb585}{GCSsweepstring}~2
\item 
\#define \hyperlink{lgc_8h_3396f37021e6f155dff7d2b8384af376}{GCSsweep}~3
\item 
\#define \hyperlink{lgc_8h_b993ca92b5620de4d945286a5338d52b}{GCSfinalize}~4
\item 
\#define \hyperlink{lgc_8h_486033531260010debe876a076dd2a41}{resetbits}(x, m)~((x) \&= cast(\hyperlink{llimits_8h_e1fe9ac10d9803bd1d7bdf30b18bad68}{lu\_\-byte}, $\sim$(m)))
\item 
\#define \hyperlink{lgc_8h_da181faae5c9af4ed7392057c5dcbbae}{setbits}(x, m)~((x) $|$= (m))
\item 
\#define \hyperlink{lgc_8h_7612bc83b764b507e12e08417a053854}{testbits}(x, m)~((x) \& (m))
\item 
\#define \hyperlink{lgc_8h_f25866c39979dd1f72110cbd3a1a427d}{bitmask}(b)~(1$<$$<$(b))
\item 
\#define \hyperlink{lgc_8h_39293d5e5fbd7bb9a24556b3e2f15d43}{bit2mask}(b1, b2)~(bitmask(b1) $|$ bitmask(b2))
\item 
\#define \hyperlink{lgc_8h_ad559b25ee580ea2894c540dc817e41f}{l\_\-setbit}(x, b)~setbits(x, bitmask(b))
\item 
\#define \hyperlink{lgc_8h_ca0beb244185329a1b8f0e695ef47748}{resetbit}(x, b)~resetbits(x, bitmask(b))
\item 
\#define \hyperlink{lgc_8h_25c19ff3161e2a2395ba69fdef49915f}{testbit}(x, b)~testbits(x, bitmask(b))
\item 
\#define \hyperlink{lgc_8h_817a4e8112a8db55bb9a87659b53661a}{set2bits}(x, b1, b2)~setbits(x, (bit2mask(b1, b2)))
\item 
\#define \hyperlink{lgc_8h_405128426ee6a27114a998bb61dc6bbb}{reset2bits}(x, b1, b2)~resetbits(x, (bit2mask(b1, b2)))
\item 
\#define \hyperlink{lgc_8h_cefb97e1f4d1842d81dbc45a02571dbc}{test2bits}(x, b1, b2)~testbits(x, (bit2mask(b1, b2)))
\item 
\#define \hyperlink{lgc_8h_4b3ebb4bccaf9a33e772a2f4515519e6}{WHITE0BIT}~0
\item 
\#define \hyperlink{lgc_8h_7de7885f3d09155a2c530154ec045d72}{WHITE1BIT}~1
\item 
\#define \hyperlink{lgc_8h_cd17af3c46cb360dc67cad2b33b6a26f}{BLACKBIT}~2
\item 
\#define \hyperlink{lgc_8h_92211ad01420ac616819ba8f61ca7365}{FINALIZEDBIT}~3
\item 
\#define \hyperlink{lgc_8h_8eddc511675ce387499de7eef2df2b5a}{KEYWEAKBIT}~3
\item 
\#define \hyperlink{lgc_8h_19886a9aad85dae047084b6ad1d8bca4}{VALUEWEAKBIT}~4
\item 
\#define \hyperlink{lgc_8h_67c15c86307cc3d1eb009cee0aab855f}{FIXEDBIT}~5
\item 
\#define \hyperlink{lgc_8h_79c71f30e4e3374ced9c1f801beb32a4}{SFIXEDBIT}~6
\item 
\#define \hyperlink{lgc_8h_0acb34c1b3d1234f11ee9fdc34df3f71}{WHITEBITS}~bit2mask(WHITE0BIT, WHITE1BIT)
\item 
\#define \hyperlink{lgc_8h_4c0ce78d476460d2e54914301f4a4bf7}{iswhite}(x)~test2bits((x) $\rightarrow$ gch.marked, WHITE0BIT, WHITE1BIT)
\item 
\#define \hyperlink{lgc_8h_c1e4847ad9a91e4cea36520dc9078365}{isblack}(x)~testbit((x) $\rightarrow$ gch.marked, BLACKBIT)
\item 
\#define \hyperlink{lgc_8h_d417e22072630b33cf74a3055b27d8d7}{isgray}(x)~(!isblack(x) \&\& !iswhite(x))
\item 
\#define \hyperlink{lgc_8h_486df16493498577d4081a8c231154f0}{otherwhite}(g)~(g $\rightarrow$ currentwhite $^\wedge$ WHITEBITS)
\item 
\#define \hyperlink{lgc_8h_cc409eb45f598d23d8388fc9e96189ea}{isdead}(g, v)~((v) $\rightarrow$ gch.marked \& otherwhite(g) \& WHITEBITS)
\item 
\#define \hyperlink{lgc_8h_28e94f77147fd242f514b98a1b251486}{changewhite}(x)~((x) $\rightarrow$ gch.marked $^\wedge$= WHITEBITS)
\item 
\#define \hyperlink{lgc_8h_e909eb4aa4c23c6ee7757210c183634d}{gray2black}(x)~l\_\-setbit((x) $\rightarrow$ gch.marked, BLACKBIT)
\item 
\#define \hyperlink{lgc_8h_84251731518ce7f66d49363eb9f0f594}{valiswhite}(x)~(iscollectable(x) \&\& iswhite(gcvalue(x)))
\item 
\#define \hyperlink{lgc_8h_faa8a52c4097cf3a5eacd88db94092da}{luaC\_\-white}(g)~cast(\hyperlink{llimits_8h_e1fe9ac10d9803bd1d7bdf30b18bad68}{lu\_\-byte}, (g) $\rightarrow$ currentwhite \& WHITEBITS)
\item 
\#define \hyperlink{lgc_8h_d013db5004ccc5fbe8a6450caa1f1ad9}{luaC\_\-checkGC}(\hyperlink{main_8c_62f94dfc0036bec0c14106c2f15caf3e}{L})
\item 
\#define \hyperlink{lgc_8h_21660a316c42bc1aad10f115e2261bca}{luaC\_\-barrier}(\hyperlink{main_8c_62f94dfc0036bec0c14106c2f15caf3e}{L}, p, v)
\item 
\#define \hyperlink{lgc_8h_f06a36c96d2a39e8f60b653671b02ef6}{luaC\_\-barriert}(\hyperlink{main_8c_62f94dfc0036bec0c14106c2f15caf3e}{L}, t, v)
\item 
\#define \hyperlink{lgc_8h_90ac4f3c7085a418025edcc7215e8983}{luaC\_\-objbarrier}(\hyperlink{main_8c_62f94dfc0036bec0c14106c2f15caf3e}{L}, p, o)
\item 
\#define \hyperlink{lgc_8h_821e1c3d82d93b13d584f9af33d8c296}{luaC\_\-objbarriert}(\hyperlink{main_8c_62f94dfc0036bec0c14106c2f15caf3e}{L}, t, o)~\{ if (iswhite(obj2gco(o)) \&\& isblack(obj2gco(t))) luaC\_\-barrierback(\hyperlink{main_8c_62f94dfc0036bec0c14106c2f15caf3e}{L},t); \}
\end{CompactItemize}
\subsection*{Functions}
\begin{CompactItemize}
\item 
LUAI\_\-FUNC size\_\-t \hyperlink{lgc_8h_b95775a616cbab3dd1f908b72dfed58c}{luaC\_\-separateudata} (\hyperlink{structlua__State}{lua\_\-State} $\ast$\hyperlink{main_8c_62f94dfc0036bec0c14106c2f15caf3e}{L}, int all)
\item 
LUAI\_\-FUNC void \hyperlink{lgc_8h_04f20077e945cc6979d717d61144ae2c}{luaC\_\-callGCTM} (\hyperlink{structlua__State}{lua\_\-State} $\ast$\hyperlink{main_8c_62f94dfc0036bec0c14106c2f15caf3e}{L})
\item 
LUAI\_\-FUNC void \hyperlink{lgc_8h_f4b3a48a3ac631354692715b9266ef7e}{luaC\_\-freeall} (\hyperlink{structlua__State}{lua\_\-State} $\ast$\hyperlink{main_8c_62f94dfc0036bec0c14106c2f15caf3e}{L})
\item 
LUAI\_\-FUNC void \hyperlink{lgc_8h_6c71cc4b9e503c0e96c0c4ffcff93900}{luaC\_\-step} (\hyperlink{structlua__State}{lua\_\-State} $\ast$\hyperlink{main_8c_62f94dfc0036bec0c14106c2f15caf3e}{L})
\item 
LUAI\_\-FUNC void \hyperlink{lgc_8h_171f6d2cda412ee264e5d9c0fe48a0fa}{luaC\_\-fullgc} (\hyperlink{structlua__State}{lua\_\-State} $\ast$\hyperlink{main_8c_62f94dfc0036bec0c14106c2f15caf3e}{L})
\item 
LUAI\_\-FUNC void \hyperlink{lgc_8h_6c742071a99df1a3c8b40055f08cf43b}{luaC\_\-link} (\hyperlink{structlua__State}{lua\_\-State} $\ast$\hyperlink{main_8c_62f94dfc0036bec0c14106c2f15caf3e}{L}, \hyperlink{unionGCObject}{GCObject} $\ast$o, \hyperlink{llimits_8h_e1fe9ac10d9803bd1d7bdf30b18bad68}{lu\_\-byte} tt)
\item 
LUAI\_\-FUNC void \hyperlink{lgc_8h_6753bc0cfa5484b060d845bc02fd4d4f}{luaC\_\-linkupval} (\hyperlink{structlua__State}{lua\_\-State} $\ast$\hyperlink{main_8c_62f94dfc0036bec0c14106c2f15caf3e}{L}, \hyperlink{structUpVal}{UpVal} $\ast$uv)
\item 
LUAI\_\-FUNC void \hyperlink{lgc_8h_8af3e9ea3e7a6faf417e70fff8bef712}{luaC\_\-barrierf} (\hyperlink{structlua__State}{lua\_\-State} $\ast$\hyperlink{main_8c_62f94dfc0036bec0c14106c2f15caf3e}{L}, \hyperlink{unionGCObject}{GCObject} $\ast$o, \hyperlink{unionGCObject}{GCObject} $\ast$v)
\item 
LUAI\_\-FUNC void \hyperlink{lgc_8h_631a021cec501addf77027ac3390f9db}{luaC\_\-barrierback} (\hyperlink{structlua__State}{lua\_\-State} $\ast$\hyperlink{main_8c_62f94dfc0036bec0c14106c2f15caf3e}{L}, \hyperlink{structTable}{Table} $\ast$t)
\end{CompactItemize}


\subsection{Define Documentation}
\hypertarget{lgc_8h_39293d5e5fbd7bb9a24556b3e2f15d43}{
\index{lgc.h@{lgc.h}!bit2mask@{bit2mask}}
\index{bit2mask@{bit2mask}!lgc.h@{lgc.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define bit2mask(b1, \/  b2)~(bitmask(b1) $|$ bitmask(b2))}}
\label{lgc_8h_39293d5e5fbd7bb9a24556b3e2f15d43}


\hypertarget{lgc_8h_f25866c39979dd1f72110cbd3a1a427d}{
\index{lgc.h@{lgc.h}!bitmask@{bitmask}}
\index{bitmask@{bitmask}!lgc.h@{lgc.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define bitmask(b)~(1$<$$<$(b))}}
\label{lgc_8h_f25866c39979dd1f72110cbd3a1a427d}


\hypertarget{lgc_8h_cd17af3c46cb360dc67cad2b33b6a26f}{
\index{lgc.h@{lgc.h}!BLACKBIT@{BLACKBIT}}
\index{BLACKBIT@{BLACKBIT}!lgc.h@{lgc.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define BLACKBIT~2}}
\label{lgc_8h_cd17af3c46cb360dc67cad2b33b6a26f}


\hypertarget{lgc_8h_28e94f77147fd242f514b98a1b251486}{
\index{lgc.h@{lgc.h}!changewhite@{changewhite}}
\index{changewhite@{changewhite}!lgc.h@{lgc.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define changewhite(x)~((x) $\rightarrow$ gch.marked $^\wedge$= WHITEBITS)}}
\label{lgc_8h_28e94f77147fd242f514b98a1b251486}


\hypertarget{lgc_8h_92211ad01420ac616819ba8f61ca7365}{
\index{lgc.h@{lgc.h}!FINALIZEDBIT@{FINALIZEDBIT}}
\index{FINALIZEDBIT@{FINALIZEDBIT}!lgc.h@{lgc.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define FINALIZEDBIT~3}}
\label{lgc_8h_92211ad01420ac616819ba8f61ca7365}


\hypertarget{lgc_8h_67c15c86307cc3d1eb009cee0aab855f}{
\index{lgc.h@{lgc.h}!FIXEDBIT@{FIXEDBIT}}
\index{FIXEDBIT@{FIXEDBIT}!lgc.h@{lgc.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define FIXEDBIT~5}}
\label{lgc_8h_67c15c86307cc3d1eb009cee0aab855f}


\hypertarget{lgc_8h_b993ca92b5620de4d945286a5338d52b}{
\index{lgc.h@{lgc.h}!GCSfinalize@{GCSfinalize}}
\index{GCSfinalize@{GCSfinalize}!lgc.h@{lgc.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define GCSfinalize~4}}
\label{lgc_8h_b993ca92b5620de4d945286a5338d52b}


\hypertarget{lgc_8h_b546d91106ec5cfdba254de13e5b5c5f}{
\index{lgc.h@{lgc.h}!GCSpause@{GCSpause}}
\index{GCSpause@{GCSpause}!lgc.h@{lgc.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define GCSpause~0}}
\label{lgc_8h_b546d91106ec5cfdba254de13e5b5c5f}


\hypertarget{lgc_8h_2ed301793747f3a2d0a7fc7d64d482fd}{
\index{lgc.h@{lgc.h}!GCSpropagate@{GCSpropagate}}
\index{GCSpropagate@{GCSpropagate}!lgc.h@{lgc.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define GCSpropagate~1}}
\label{lgc_8h_2ed301793747f3a2d0a7fc7d64d482fd}


\hypertarget{lgc_8h_3396f37021e6f155dff7d2b8384af376}{
\index{lgc.h@{lgc.h}!GCSsweep@{GCSsweep}}
\index{GCSsweep@{GCSsweep}!lgc.h@{lgc.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define GCSsweep~3}}
\label{lgc_8h_3396f37021e6f155dff7d2b8384af376}


\hypertarget{lgc_8h_bab475c862e8b12eaa5116240f9eb585}{
\index{lgc.h@{lgc.h}!GCSsweepstring@{GCSsweepstring}}
\index{GCSsweepstring@{GCSsweepstring}!lgc.h@{lgc.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define GCSsweepstring~2}}
\label{lgc_8h_bab475c862e8b12eaa5116240f9eb585}


\hypertarget{lgc_8h_e909eb4aa4c23c6ee7757210c183634d}{
\index{lgc.h@{lgc.h}!gray2black@{gray2black}}
\index{gray2black@{gray2black}!lgc.h@{lgc.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define gray2black(x)~l\_\-setbit((x) $\rightarrow$ gch.marked, BLACKBIT)}}
\label{lgc_8h_e909eb4aa4c23c6ee7757210c183634d}


\hypertarget{lgc_8h_c1e4847ad9a91e4cea36520dc9078365}{
\index{lgc.h@{lgc.h}!isblack@{isblack}}
\index{isblack@{isblack}!lgc.h@{lgc.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define isblack(x)~testbit((x) $\rightarrow$ gch.marked, BLACKBIT)}}
\label{lgc_8h_c1e4847ad9a91e4cea36520dc9078365}


\hypertarget{lgc_8h_cc409eb45f598d23d8388fc9e96189ea}{
\index{lgc.h@{lgc.h}!isdead@{isdead}}
\index{isdead@{isdead}!lgc.h@{lgc.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define isdead(g, \/  v)~((v) $\rightarrow$ gch.marked \& otherwhite(g) \& WHITEBITS)}}
\label{lgc_8h_cc409eb45f598d23d8388fc9e96189ea}


\hypertarget{lgc_8h_d417e22072630b33cf74a3055b27d8d7}{
\index{lgc.h@{lgc.h}!isgray@{isgray}}
\index{isgray@{isgray}!lgc.h@{lgc.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define isgray(x)~(!isblack(x) \&\& !iswhite(x))}}
\label{lgc_8h_d417e22072630b33cf74a3055b27d8d7}


\hypertarget{lgc_8h_4c0ce78d476460d2e54914301f4a4bf7}{
\index{lgc.h@{lgc.h}!iswhite@{iswhite}}
\index{iswhite@{iswhite}!lgc.h@{lgc.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define iswhite(x)~test2bits((x) $\rightarrow$ gch.marked, WHITE0BIT, WHITE1BIT)}}
\label{lgc_8h_4c0ce78d476460d2e54914301f4a4bf7}


\hypertarget{lgc_8h_8eddc511675ce387499de7eef2df2b5a}{
\index{lgc.h@{lgc.h}!KEYWEAKBIT@{KEYWEAKBIT}}
\index{KEYWEAKBIT@{KEYWEAKBIT}!lgc.h@{lgc.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define KEYWEAKBIT~3}}
\label{lgc_8h_8eddc511675ce387499de7eef2df2b5a}


\hypertarget{lgc_8h_ad559b25ee580ea2894c540dc817e41f}{
\index{lgc.h@{lgc.h}!l\_\-setbit@{l\_\-setbit}}
\index{l\_\-setbit@{l\_\-setbit}!lgc.h@{lgc.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define l\_\-setbit(x, \/  b)~setbits(x, bitmask(b))}}
\label{lgc_8h_ad559b25ee580ea2894c540dc817e41f}


\hypertarget{lgc_8h_21660a316c42bc1aad10f115e2261bca}{
\index{lgc.h@{lgc.h}!luaC\_\-barrier@{luaC\_\-barrier}}
\index{luaC\_\-barrier@{luaC\_\-barrier}!lgc.h@{lgc.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define luaC\_\-barrier({\bf L}, \/  p, \/  v)}}
\label{lgc_8h_21660a316c42bc1aad10f115e2261bca}


\textbf{Value:}

\begin{Code}\begin{verbatim}{ if (valiswhite(v) && isblack(obj2gco(p)))  \
        luaC_barrierf(L,obj2gco(p),gcvalue(v)); }
\end{verbatim}
\end{Code}
\hypertarget{lgc_8h_f06a36c96d2a39e8f60b653671b02ef6}{
\index{lgc.h@{lgc.h}!luaC\_\-barriert@{luaC\_\-barriert}}
\index{luaC\_\-barriert@{luaC\_\-barriert}!lgc.h@{lgc.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define luaC\_\-barriert({\bf L}, \/  t, \/  v)}}
\label{lgc_8h_f06a36c96d2a39e8f60b653671b02ef6}


\textbf{Value:}

\begin{Code}\begin{verbatim}{ if (valiswhite(v) && isblack(obj2gco(t)))  \
        luaC_barrierback(L,t); }
\end{verbatim}
\end{Code}
\hypertarget{lgc_8h_d013db5004ccc5fbe8a6450caa1f1ad9}{
\index{lgc.h@{lgc.h}!luaC\_\-checkGC@{luaC\_\-checkGC}}
\index{luaC\_\-checkGC@{luaC\_\-checkGC}!lgc.h@{lgc.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define luaC\_\-checkGC({\bf L})}}
\label{lgc_8h_d013db5004ccc5fbe8a6450caa1f1ad9}


\textbf{Value:}

\begin{Code}\begin{verbatim}{ \
  condhardstacktests(luaD_reallocstack(L, L->stacksize - EXTRA_STACK - 1)); \
  if (G(L)->totalbytes >= G(L)->GCthreshold) \
        luaC_step(L); }
\end{verbatim}
\end{Code}
\hypertarget{lgc_8h_90ac4f3c7085a418025edcc7215e8983}{
\index{lgc.h@{lgc.h}!luaC\_\-objbarrier@{luaC\_\-objbarrier}}
\index{luaC\_\-objbarrier@{luaC\_\-objbarrier}!lgc.h@{lgc.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define luaC\_\-objbarrier({\bf L}, \/  p, \/  o)}}
\label{lgc_8h_90ac4f3c7085a418025edcc7215e8983}


\textbf{Value:}

\begin{Code}\begin{verbatim}{ if (iswhite(obj2gco(o)) && isblack(obj2gco(p))) \
                luaC_barrierf(L,obj2gco(p),obj2gco(o)); }
\end{verbatim}
\end{Code}
\hypertarget{lgc_8h_821e1c3d82d93b13d584f9af33d8c296}{
\index{lgc.h@{lgc.h}!luaC\_\-objbarriert@{luaC\_\-objbarriert}}
\index{luaC\_\-objbarriert@{luaC\_\-objbarriert}!lgc.h@{lgc.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define luaC\_\-objbarriert({\bf L}, \/  t, \/  o)~\{ if (iswhite(obj2gco(o)) \&\& isblack(obj2gco(t))) luaC\_\-barrierback({\bf L},t); \}}}
\label{lgc_8h_821e1c3d82d93b13d584f9af33d8c296}


\hypertarget{lgc_8h_faa8a52c4097cf3a5eacd88db94092da}{
\index{lgc.h@{lgc.h}!luaC\_\-white@{luaC\_\-white}}
\index{luaC\_\-white@{luaC\_\-white}!lgc.h@{lgc.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define luaC\_\-white(g)~cast({\bf lu\_\-byte}, (g) $\rightarrow$ currentwhite \& WHITEBITS)}}
\label{lgc_8h_faa8a52c4097cf3a5eacd88db94092da}


\hypertarget{lgc_8h_486df16493498577d4081a8c231154f0}{
\index{lgc.h@{lgc.h}!otherwhite@{otherwhite}}
\index{otherwhite@{otherwhite}!lgc.h@{lgc.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define otherwhite(g)~(g $\rightarrow$ currentwhite $^\wedge$ WHITEBITS)}}
\label{lgc_8h_486df16493498577d4081a8c231154f0}


\hypertarget{lgc_8h_405128426ee6a27114a998bb61dc6bbb}{
\index{lgc.h@{lgc.h}!reset2bits@{reset2bits}}
\index{reset2bits@{reset2bits}!lgc.h@{lgc.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define reset2bits(x, \/  b1, \/  b2)~resetbits(x, (bit2mask(b1, b2)))}}
\label{lgc_8h_405128426ee6a27114a998bb61dc6bbb}


\hypertarget{lgc_8h_ca0beb244185329a1b8f0e695ef47748}{
\index{lgc.h@{lgc.h}!resetbit@{resetbit}}
\index{resetbit@{resetbit}!lgc.h@{lgc.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define resetbit(x, \/  b)~resetbits(x, bitmask(b))}}
\label{lgc_8h_ca0beb244185329a1b8f0e695ef47748}


\hypertarget{lgc_8h_486033531260010debe876a076dd2a41}{
\index{lgc.h@{lgc.h}!resetbits@{resetbits}}
\index{resetbits@{resetbits}!lgc.h@{lgc.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define resetbits(x, \/  m)~((x) \&= cast({\bf lu\_\-byte}, $\sim$(m)))}}
\label{lgc_8h_486033531260010debe876a076dd2a41}


\hypertarget{lgc_8h_817a4e8112a8db55bb9a87659b53661a}{
\index{lgc.h@{lgc.h}!set2bits@{set2bits}}
\index{set2bits@{set2bits}!lgc.h@{lgc.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define set2bits(x, \/  b1, \/  b2)~setbits(x, (bit2mask(b1, b2)))}}
\label{lgc_8h_817a4e8112a8db55bb9a87659b53661a}


\hypertarget{lgc_8h_da181faae5c9af4ed7392057c5dcbbae}{
\index{lgc.h@{lgc.h}!setbits@{setbits}}
\index{setbits@{setbits}!lgc.h@{lgc.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define setbits(x, \/  m)~((x) $|$= (m))}}
\label{lgc_8h_da181faae5c9af4ed7392057c5dcbbae}


\hypertarget{lgc_8h_79c71f30e4e3374ced9c1f801beb32a4}{
\index{lgc.h@{lgc.h}!SFIXEDBIT@{SFIXEDBIT}}
\index{SFIXEDBIT@{SFIXEDBIT}!lgc.h@{lgc.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define SFIXEDBIT~6}}
\label{lgc_8h_79c71f30e4e3374ced9c1f801beb32a4}


\hypertarget{lgc_8h_cefb97e1f4d1842d81dbc45a02571dbc}{
\index{lgc.h@{lgc.h}!test2bits@{test2bits}}
\index{test2bits@{test2bits}!lgc.h@{lgc.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define test2bits(x, \/  b1, \/  b2)~testbits(x, (bit2mask(b1, b2)))}}
\label{lgc_8h_cefb97e1f4d1842d81dbc45a02571dbc}


\hypertarget{lgc_8h_25c19ff3161e2a2395ba69fdef49915f}{
\index{lgc.h@{lgc.h}!testbit@{testbit}}
\index{testbit@{testbit}!lgc.h@{lgc.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define testbit(x, \/  b)~testbits(x, bitmask(b))}}
\label{lgc_8h_25c19ff3161e2a2395ba69fdef49915f}


\hypertarget{lgc_8h_7612bc83b764b507e12e08417a053854}{
\index{lgc.h@{lgc.h}!testbits@{testbits}}
\index{testbits@{testbits}!lgc.h@{lgc.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define testbits(x, \/  m)~((x) \& (m))}}
\label{lgc_8h_7612bc83b764b507e12e08417a053854}


\hypertarget{lgc_8h_84251731518ce7f66d49363eb9f0f594}{
\index{lgc.h@{lgc.h}!valiswhite@{valiswhite}}
\index{valiswhite@{valiswhite}!lgc.h@{lgc.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define valiswhite(x)~(iscollectable(x) \&\& iswhite(gcvalue(x)))}}
\label{lgc_8h_84251731518ce7f66d49363eb9f0f594}


\hypertarget{lgc_8h_19886a9aad85dae047084b6ad1d8bca4}{
\index{lgc.h@{lgc.h}!VALUEWEAKBIT@{VALUEWEAKBIT}}
\index{VALUEWEAKBIT@{VALUEWEAKBIT}!lgc.h@{lgc.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define VALUEWEAKBIT~4}}
\label{lgc_8h_19886a9aad85dae047084b6ad1d8bca4}


\hypertarget{lgc_8h_4b3ebb4bccaf9a33e772a2f4515519e6}{
\index{lgc.h@{lgc.h}!WHITE0BIT@{WHITE0BIT}}
\index{WHITE0BIT@{WHITE0BIT}!lgc.h@{lgc.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define WHITE0BIT~0}}
\label{lgc_8h_4b3ebb4bccaf9a33e772a2f4515519e6}


\hypertarget{lgc_8h_7de7885f3d09155a2c530154ec045d72}{
\index{lgc.h@{lgc.h}!WHITE1BIT@{WHITE1BIT}}
\index{WHITE1BIT@{WHITE1BIT}!lgc.h@{lgc.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define WHITE1BIT~1}}
\label{lgc_8h_7de7885f3d09155a2c530154ec045d72}


\hypertarget{lgc_8h_0acb34c1b3d1234f11ee9fdc34df3f71}{
\index{lgc.h@{lgc.h}!WHITEBITS@{WHITEBITS}}
\index{WHITEBITS@{WHITEBITS}!lgc.h@{lgc.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define WHITEBITS~bit2mask(WHITE0BIT, WHITE1BIT)}}
\label{lgc_8h_0acb34c1b3d1234f11ee9fdc34df3f71}




\subsection{Function Documentation}
\hypertarget{lgc_8h_631a021cec501addf77027ac3390f9db}{
\index{lgc.h@{lgc.h}!luaC\_\-barrierback@{luaC\_\-barrierback}}
\index{luaC\_\-barrierback@{luaC\_\-barrierback}!lgc.h@{lgc.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}LUAI\_\-FUNC void luaC\_\-barrierback ({\bf lua\_\-State} $\ast$ {\em L}, \/  {\bf Table} $\ast$ {\em t})}}
\label{lgc_8h_631a021cec501addf77027ac3390f9db}


\hypertarget{lgc_8h_8af3e9ea3e7a6faf417e70fff8bef712}{
\index{lgc.h@{lgc.h}!luaC\_\-barrierf@{luaC\_\-barrierf}}
\index{luaC\_\-barrierf@{luaC\_\-barrierf}!lgc.h@{lgc.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}LUAI\_\-FUNC void luaC\_\-barrierf ({\bf lua\_\-State} $\ast$ {\em L}, \/  {\bf GCObject} $\ast$ {\em o}, \/  {\bf GCObject} $\ast$ {\em v})}}
\label{lgc_8h_8af3e9ea3e7a6faf417e70fff8bef712}


\hypertarget{lgc_8h_04f20077e945cc6979d717d61144ae2c}{
\index{lgc.h@{lgc.h}!luaC\_\-callGCTM@{luaC\_\-callGCTM}}
\index{luaC\_\-callGCTM@{luaC\_\-callGCTM}!lgc.h@{lgc.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}LUAI\_\-FUNC void luaC\_\-callGCTM ({\bf lua\_\-State} $\ast$ {\em L})}}
\label{lgc_8h_04f20077e945cc6979d717d61144ae2c}


\hypertarget{lgc_8h_f4b3a48a3ac631354692715b9266ef7e}{
\index{lgc.h@{lgc.h}!luaC\_\-freeall@{luaC\_\-freeall}}
\index{luaC\_\-freeall@{luaC\_\-freeall}!lgc.h@{lgc.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}LUAI\_\-FUNC void luaC\_\-freeall ({\bf lua\_\-State} $\ast$ {\em L})}}
\label{lgc_8h_f4b3a48a3ac631354692715b9266ef7e}


\hypertarget{lgc_8h_171f6d2cda412ee264e5d9c0fe48a0fa}{
\index{lgc.h@{lgc.h}!luaC\_\-fullgc@{luaC\_\-fullgc}}
\index{luaC\_\-fullgc@{luaC\_\-fullgc}!lgc.h@{lgc.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}LUAI\_\-FUNC void luaC\_\-fullgc ({\bf lua\_\-State} $\ast$ {\em L})}}
\label{lgc_8h_171f6d2cda412ee264e5d9c0fe48a0fa}


\hypertarget{lgc_8h_6c742071a99df1a3c8b40055f08cf43b}{
\index{lgc.h@{lgc.h}!luaC\_\-link@{luaC\_\-link}}
\index{luaC\_\-link@{luaC\_\-link}!lgc.h@{lgc.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}LUAI\_\-FUNC void luaC\_\-link ({\bf lua\_\-State} $\ast$ {\em L}, \/  {\bf GCObject} $\ast$ {\em o}, \/  {\bf lu\_\-byte} {\em tt})}}
\label{lgc_8h_6c742071a99df1a3c8b40055f08cf43b}


\hypertarget{lgc_8h_6753bc0cfa5484b060d845bc02fd4d4f}{
\index{lgc.h@{lgc.h}!luaC\_\-linkupval@{luaC\_\-linkupval}}
\index{luaC\_\-linkupval@{luaC\_\-linkupval}!lgc.h@{lgc.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}LUAI\_\-FUNC void luaC\_\-linkupval ({\bf lua\_\-State} $\ast$ {\em L}, \/  {\bf UpVal} $\ast$ {\em uv})}}
\label{lgc_8h_6753bc0cfa5484b060d845bc02fd4d4f}


\hypertarget{lgc_8h_b95775a616cbab3dd1f908b72dfed58c}{
\index{lgc.h@{lgc.h}!luaC\_\-separateudata@{luaC\_\-separateudata}}
\index{luaC\_\-separateudata@{luaC\_\-separateudata}!lgc.h@{lgc.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}LUAI\_\-FUNC size\_\-t luaC\_\-separateudata ({\bf lua\_\-State} $\ast$ {\em L}, \/  int {\em all})}}
\label{lgc_8h_b95775a616cbab3dd1f908b72dfed58c}


\hypertarget{lgc_8h_6c71cc4b9e503c0e96c0c4ffcff93900}{
\index{lgc.h@{lgc.h}!luaC\_\-step@{luaC\_\-step}}
\index{luaC\_\-step@{luaC\_\-step}!lgc.h@{lgc.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}LUAI\_\-FUNC void luaC\_\-step ({\bf lua\_\-State} $\ast$ {\em L})}}
\label{lgc_8h_6c71cc4b9e503c0e96c0c4ffcff93900}


