xref: /freebsd/contrib/lutok/api-docs/html/a00065.html (revision 132f818ddbf457ee67d502cd89b5a18e0a34713d)
1*132f818dSEnji Cooper<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2*132f818dSEnji Cooper<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
3*132f818dSEnji Cooper<head>
4*132f818dSEnji Cooper<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5*132f818dSEnji Cooper<meta http-equiv="X-UA-Compatible" content="IE=11"/>
6*132f818dSEnji Cooper<meta name="generator" content="Doxygen 1.9.6"/>
7*132f818dSEnji Cooper<meta name="viewport" content="width=device-width, initial-scale=1"/>
8*132f818dSEnji Cooper<title>Lutok: anonymous_namespace{state.cpp} Namespace Reference</title>
9*132f818dSEnji Cooper<link href="tabs.css" rel="stylesheet" type="text/css"/>
10*132f818dSEnji Cooper<script type="text/javascript" src="jquery.js"></script>
11*132f818dSEnji Cooper<script type="text/javascript" src="dynsections.js"></script>
12*132f818dSEnji Cooper<link href="search/search.css" rel="stylesheet" type="text/css"/>
13*132f818dSEnji Cooper<script type="text/javascript" src="search/searchdata.js"></script>
14*132f818dSEnji Cooper<script type="text/javascript" src="search/search.js"></script>
15*132f818dSEnji Cooper<link href="doxygen.css" rel="stylesheet" type="text/css" />
16*132f818dSEnji Cooper</head>
17*132f818dSEnji Cooper<body>
18*132f818dSEnji Cooper<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
19*132f818dSEnji Cooper<div id="titlearea">
20*132f818dSEnji Cooper<table cellspacing="0" cellpadding="0">
21*132f818dSEnji Cooper <tbody>
22*132f818dSEnji Cooper <tr id="projectrow">
23*132f818dSEnji Cooper  <td id="projectalign">
24*132f818dSEnji Cooper   <div id="projectname">Lutok<span id="projectnumber">&#160;0.6.2</span>
25*132f818dSEnji Cooper   </div>
26*132f818dSEnji Cooper  </td>
27*132f818dSEnji Cooper </tr>
28*132f818dSEnji Cooper </tbody>
29*132f818dSEnji Cooper</table>
30*132f818dSEnji Cooper</div>
31*132f818dSEnji Cooper<!-- end header part -->
32*132f818dSEnji Cooper<!-- Generated by Doxygen 1.9.6 -->
33*132f818dSEnji Cooper<script type="text/javascript">
34*132f818dSEnji Cooper/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
35*132f818dSEnji Coopervar searchBox = new SearchBox("searchBox", "search/",'.html');
36*132f818dSEnji Cooper/* @license-end */
37*132f818dSEnji Cooper</script>
38*132f818dSEnji Cooper<script type="text/javascript" src="menudata.js"></script>
39*132f818dSEnji Cooper<script type="text/javascript" src="menu.js"></script>
40*132f818dSEnji Cooper<script type="text/javascript">
41*132f818dSEnji Cooper/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
42*132f818dSEnji Cooper$(function() {
43*132f818dSEnji Cooper  initMenu('',true,false,'search.php','Search');
44*132f818dSEnji Cooper  $(document).ready(function() { init_search(); });
45*132f818dSEnji Cooper});
46*132f818dSEnji Cooper/* @license-end */
47*132f818dSEnji Cooper</script>
48*132f818dSEnji Cooper<div id="main-nav"></div>
49*132f818dSEnji Cooper<!-- window showing the filter options -->
50*132f818dSEnji Cooper<div id="MSearchSelectWindow"
51*132f818dSEnji Cooper     onmouseover="return searchBox.OnSearchSelectShow()"
52*132f818dSEnji Cooper     onmouseout="return searchBox.OnSearchSelectHide()"
53*132f818dSEnji Cooper     onkeydown="return searchBox.OnSearchSelectKey(event)">
54*132f818dSEnji Cooper</div>
55*132f818dSEnji Cooper
56*132f818dSEnji Cooper<!-- iframe showing the search results (closed by default) -->
57*132f818dSEnji Cooper<div id="MSearchResultsWindow">
58*132f818dSEnji Cooper<div id="MSearchResults">
59*132f818dSEnji Cooper<div class="SRPage">
60*132f818dSEnji Cooper<div id="SRIndex">
61*132f818dSEnji Cooper<div id="SRResults"></div>
62*132f818dSEnji Cooper<div class="SRStatus" id="Loading">Loading...</div>
63*132f818dSEnji Cooper<div class="SRStatus" id="Searching">Searching...</div>
64*132f818dSEnji Cooper<div class="SRStatus" id="NoMatches">No Matches</div>
65*132f818dSEnji Cooper</div>
66*132f818dSEnji Cooper</div>
67*132f818dSEnji Cooper</div>
68*132f818dSEnji Cooper</div>
69*132f818dSEnji Cooper
70*132f818dSEnji Cooper</div><!-- top -->
71*132f818dSEnji Cooper<div class="header">
72*132f818dSEnji Cooper  <div class="summary">
73*132f818dSEnji Cooper<a href="#func-members">Functions</a>  </div>
74*132f818dSEnji Cooper  <div class="headertitle"><div class="title">anonymous_namespace{state.cpp} Namespace Reference</div></div>
75*132f818dSEnji Cooper</div><!--header-->
76*132f818dSEnji Cooper<div class="contents">
77*132f818dSEnji Cooper<table class="memberdecls">
78*132f818dSEnji Cooper<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
79*132f818dSEnji CooperFunctions</h2></td></tr>
80*132f818dSEnji Cooper<tr class="memitem:ac895a6a4aab5ec5597bdfb62adf0f85c"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00065.html#ac895a6a4aab5ec5597bdfb62adf0f85c">protected_getglobal</a> (lua_State *state)</td></tr>
81*132f818dSEnji Cooper<tr class="memdesc:ac895a6a4aab5ec5597bdfb62adf0f85c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wrapper around lua_getglobal to run in a protected environment.  <br /></td></tr>
82*132f818dSEnji Cooper<tr class="separator:ac895a6a4aab5ec5597bdfb62adf0f85c"><td class="memSeparator" colspan="2">&#160;</td></tr>
83*132f818dSEnji Cooper<tr class="memitem:a901e28feef6c6a7c94edf906139464a4"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00065.html#a901e28feef6c6a7c94edf906139464a4">protected_gettable</a> (lua_State *state)</td></tr>
84*132f818dSEnji Cooper<tr class="memdesc:a901e28feef6c6a7c94edf906139464a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wrapper around lua_gettable to run in a protected environment.  <br /></td></tr>
85*132f818dSEnji Cooper<tr class="separator:a901e28feef6c6a7c94edf906139464a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
86*132f818dSEnji Cooper<tr class="memitem:a8163cc0f7d5dfba820e335e02769bd91"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00065.html#a8163cc0f7d5dfba820e335e02769bd91">protected_next</a> (lua_State *state)</td></tr>
87*132f818dSEnji Cooper<tr class="memdesc:a8163cc0f7d5dfba820e335e02769bd91"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wrapper around lua_next to run in a protected environment.  <br /></td></tr>
88*132f818dSEnji Cooper<tr class="separator:a8163cc0f7d5dfba820e335e02769bd91"><td class="memSeparator" colspan="2">&#160;</td></tr>
89*132f818dSEnji Cooper<tr class="memitem:a931ec64a97c5b8ff24bd12b1318c4bf5"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00065.html#a931ec64a97c5b8ff24bd12b1318c4bf5">protected_setglobal</a> (lua_State *state)</td></tr>
90*132f818dSEnji Cooper<tr class="memdesc:a931ec64a97c5b8ff24bd12b1318c4bf5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wrapper around lua_setglobal to run in a protected environment.  <br /></td></tr>
91*132f818dSEnji Cooper<tr class="separator:a931ec64a97c5b8ff24bd12b1318c4bf5"><td class="memSeparator" colspan="2">&#160;</td></tr>
92*132f818dSEnji Cooper<tr class="memitem:a42654c15fd147850ad03cd891d1d7193"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00065.html#a42654c15fd147850ad03cd891d1d7193">protected_settable</a> (lua_State *state)</td></tr>
93*132f818dSEnji Cooper<tr class="memdesc:a42654c15fd147850ad03cd891d1d7193"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wrapper around lua_settable to run in a protected environment.  <br /></td></tr>
94*132f818dSEnji Cooper<tr class="separator:a42654c15fd147850ad03cd891d1d7193"><td class="memSeparator" colspan="2">&#160;</td></tr>
95*132f818dSEnji Cooper<tr class="memitem:ac12be03daffcd5d46ac51da378577e51"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00065.html#ac12be03daffcd5d46ac51da378577e51">call_cxx_function_from_c</a> (<a class="el" href="a00029.html#a8c623ca426c30c5fab4df2cb21635f17">lutok::cxx_function</a> function, lua_State *raw_state)  throw ()</td></tr>
96*132f818dSEnji Cooper<tr class="memdesc:ac12be03daffcd5d46ac51da378577e51"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calls a C++ Lua function from a C calling environment.  <br /></td></tr>
97*132f818dSEnji Cooper<tr class="separator:ac12be03daffcd5d46ac51da378577e51"><td class="memSeparator" colspan="2">&#160;</td></tr>
98*132f818dSEnji Cooper<tr class="memitem:a86e6a7c405a8feea00907b99c4d084ca"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00065.html#a86e6a7c405a8feea00907b99c4d084ca">cxx_closure_trampoline</a> (lua_State *raw_state)</td></tr>
99*132f818dSEnji Cooper<tr class="memdesc:a86e6a7c405a8feea00907b99c4d084ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Lua glue to call a C++ closure.  <br /></td></tr>
100*132f818dSEnji Cooper<tr class="separator:a86e6a7c405a8feea00907b99c4d084ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
101*132f818dSEnji Cooper<tr class="memitem:af3c459196ed8b373a8376b5abeedd472"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00065.html#af3c459196ed8b373a8376b5abeedd472">cxx_function_trampoline</a> (lua_State *raw_state)</td></tr>
102*132f818dSEnji Cooper<tr class="memdesc:af3c459196ed8b373a8376b5abeedd472"><td class="mdescLeft">&#160;</td><td class="mdescRight">Lua glue to call a C++ function.  <br /></td></tr>
103*132f818dSEnji Cooper<tr class="separator:af3c459196ed8b373a8376b5abeedd472"><td class="memSeparator" colspan="2">&#160;</td></tr>
104*132f818dSEnji Cooper</table>
105*132f818dSEnji Cooper<h2 class="groupheader">Function Documentation</h2>
106*132f818dSEnji Cooper<a id="ac12be03daffcd5d46ac51da378577e51" name="ac12be03daffcd5d46ac51da378577e51"></a>
107*132f818dSEnji Cooper<h2 class="memtitle"><span class="permalink"><a href="#ac12be03daffcd5d46ac51da378577e51">&#9670;&#160;</a></span>call_cxx_function_from_c()</h2>
108*132f818dSEnji Cooper
109*132f818dSEnji Cooper<div class="memitem">
110*132f818dSEnji Cooper<div class="memproto">
111*132f818dSEnji Cooper<table class="mlabels">
112*132f818dSEnji Cooper  <tr>
113*132f818dSEnji Cooper  <td class="mlabels-left">
114*132f818dSEnji Cooper      <table class="memname">
115*132f818dSEnji Cooper        <tr>
116*132f818dSEnji Cooper          <td class="memname">static int anonymous_namespace{state.cpp}::call_cxx_function_from_c </td>
117*132f818dSEnji Cooper          <td>(</td>
118*132f818dSEnji Cooper          <td class="paramtype"><a class="el" href="a00029.html#a8c623ca426c30c5fab4df2cb21635f17">lutok::cxx_function</a>&#160;</td>
119*132f818dSEnji Cooper          <td class="paramname"><em>function</em>, </td>
120*132f818dSEnji Cooper        </tr>
121*132f818dSEnji Cooper        <tr>
122*132f818dSEnji Cooper          <td class="paramkey"></td>
123*132f818dSEnji Cooper          <td></td>
124*132f818dSEnji Cooper          <td class="paramtype">lua_State *&#160;</td>
125*132f818dSEnji Cooper          <td class="paramname"><em>raw_state</em>&#160;</td>
126*132f818dSEnji Cooper        </tr>
127*132f818dSEnji Cooper        <tr>
128*132f818dSEnji Cooper          <td></td>
129*132f818dSEnji Cooper          <td>)</td>
130*132f818dSEnji Cooper          <td></td><td></td>
131*132f818dSEnji Cooper        </tr>
132*132f818dSEnji Cooper        <tr>
133*132f818dSEnji Cooper          <td align="right">throw </td><td>(</td><td colspan="2"></td>
134*132f818dSEnji Cooper        </tr>
135*132f818dSEnji Cooper        <tr>
136*132f818dSEnji Cooper          <td align="right"></td><td>)</td><td></td><td></td>
137*132f818dSEnji Cooper        </tr>
138*132f818dSEnji Cooper      </table>
139*132f818dSEnji Cooper  </td>
140*132f818dSEnji Cooper  <td class="mlabels-right">
141*132f818dSEnji Cooper<span class="mlabels"><span class="mlabel">static</span></span>  </td>
142*132f818dSEnji Cooper  </tr>
143*132f818dSEnji Cooper</table>
144*132f818dSEnji Cooper</div><div class="memdoc">
145*132f818dSEnji Cooper
146*132f818dSEnji Cooper<p>Calls a C++ Lua function from a C calling environment. </p>
147*132f818dSEnji Cooper<p>Any errors reported by the C++ function are caught and reported to the caller as Lua errors.</p>
148*132f818dSEnji Cooper<dl class="params"><dt>Parameters</dt><dd>
149*132f818dSEnji Cooper  <table class="params">
150*132f818dSEnji Cooper    <tr><td class="paramname">function</td><td>The C++ function to call. </td></tr>
151*132f818dSEnji Cooper    <tr><td class="paramname">raw_state</td><td>The raw Lua state.</td></tr>
152*132f818dSEnji Cooper  </table>
153*132f818dSEnji Cooper  </dd>
154*132f818dSEnji Cooper</dl>
155*132f818dSEnji Cooper<dl class="section return"><dt>Returns</dt><dd>The number of return values pushed onto the Lua stack by the function. </dd></dl>
156*132f818dSEnji Cooper
157*132f818dSEnji Cooper</div>
158*132f818dSEnji Cooper</div>
159*132f818dSEnji Cooper<a id="a86e6a7c405a8feea00907b99c4d084ca" name="a86e6a7c405a8feea00907b99c4d084ca"></a>
160*132f818dSEnji Cooper<h2 class="memtitle"><span class="permalink"><a href="#a86e6a7c405a8feea00907b99c4d084ca">&#9670;&#160;</a></span>cxx_closure_trampoline()</h2>
161*132f818dSEnji Cooper
162*132f818dSEnji Cooper<div class="memitem">
163*132f818dSEnji Cooper<div class="memproto">
164*132f818dSEnji Cooper<table class="mlabels">
165*132f818dSEnji Cooper  <tr>
166*132f818dSEnji Cooper  <td class="mlabels-left">
167*132f818dSEnji Cooper      <table class="memname">
168*132f818dSEnji Cooper        <tr>
169*132f818dSEnji Cooper          <td class="memname">static int anonymous_namespace{state.cpp}::cxx_closure_trampoline </td>
170*132f818dSEnji Cooper          <td>(</td>
171*132f818dSEnji Cooper          <td class="paramtype">lua_State *&#160;</td>
172*132f818dSEnji Cooper          <td class="paramname"><em>raw_state</em></td><td>)</td>
173*132f818dSEnji Cooper          <td></td>
174*132f818dSEnji Cooper        </tr>
175*132f818dSEnji Cooper      </table>
176*132f818dSEnji Cooper  </td>
177*132f818dSEnji Cooper  <td class="mlabels-right">
178*132f818dSEnji Cooper<span class="mlabels"><span class="mlabel">static</span></span>  </td>
179*132f818dSEnji Cooper  </tr>
180*132f818dSEnji Cooper</table>
181*132f818dSEnji Cooper</div><div class="memdoc">
182*132f818dSEnji Cooper
183*132f818dSEnji Cooper<p>Lua glue to call a C++ closure. </p>
184*132f818dSEnji Cooper<p>This Lua binding is actually a closure that we have constructed from the state.push_cxx_closure() method. The closure contains the same upvalues provided by the user plus an extra upvalue that contains the address of the C++ function we have to call. All we do here is safely delegate the execution to the wrapped C++ closure.</p>
185*132f818dSEnji Cooper<dl class="params"><dt>Parameters</dt><dd>
186*132f818dSEnji Cooper  <table class="params">
187*132f818dSEnji Cooper    <tr><td class="paramname">raw_state</td><td>The Lua C API state.</td></tr>
188*132f818dSEnji Cooper  </table>
189*132f818dSEnji Cooper  </dd>
190*132f818dSEnji Cooper</dl>
191*132f818dSEnji Cooper<dl class="section return"><dt>Returns</dt><dd>The number of return values of the called closure. </dd></dl>
192*132f818dSEnji Cooper
193*132f818dSEnji Cooper</div>
194*132f818dSEnji Cooper</div>
195*132f818dSEnji Cooper<a id="af3c459196ed8b373a8376b5abeedd472" name="af3c459196ed8b373a8376b5abeedd472"></a>
196*132f818dSEnji Cooper<h2 class="memtitle"><span class="permalink"><a href="#af3c459196ed8b373a8376b5abeedd472">&#9670;&#160;</a></span>cxx_function_trampoline()</h2>
197*132f818dSEnji Cooper
198*132f818dSEnji Cooper<div class="memitem">
199*132f818dSEnji Cooper<div class="memproto">
200*132f818dSEnji Cooper<table class="mlabels">
201*132f818dSEnji Cooper  <tr>
202*132f818dSEnji Cooper  <td class="mlabels-left">
203*132f818dSEnji Cooper      <table class="memname">
204*132f818dSEnji Cooper        <tr>
205*132f818dSEnji Cooper          <td class="memname">static int anonymous_namespace{state.cpp}::cxx_function_trampoline </td>
206*132f818dSEnji Cooper          <td>(</td>
207*132f818dSEnji Cooper          <td class="paramtype">lua_State *&#160;</td>
208*132f818dSEnji Cooper          <td class="paramname"><em>raw_state</em></td><td>)</td>
209*132f818dSEnji Cooper          <td></td>
210*132f818dSEnji Cooper        </tr>
211*132f818dSEnji Cooper      </table>
212*132f818dSEnji Cooper  </td>
213*132f818dSEnji Cooper  <td class="mlabels-right">
214*132f818dSEnji Cooper<span class="mlabels"><span class="mlabel">static</span></span>  </td>
215*132f818dSEnji Cooper  </tr>
216*132f818dSEnji Cooper</table>
217*132f818dSEnji Cooper</div><div class="memdoc">
218*132f818dSEnji Cooper
219*132f818dSEnji Cooper<p>Lua glue to call a C++ function. </p>
220*132f818dSEnji Cooper<p>This Lua binding is actually a closure that we have constructed from the state.push_cxx_function() method. The closure has a single upvalue that contains the address of the C++ function we have to call. All we do here is safely delegate the execution to the wrapped C++ function.</p>
221*132f818dSEnji Cooper<dl class="params"><dt>Parameters</dt><dd>
222*132f818dSEnji Cooper  <table class="params">
223*132f818dSEnji Cooper    <tr><td class="paramname">raw_state</td><td>The Lua C API state.</td></tr>
224*132f818dSEnji Cooper  </table>
225*132f818dSEnji Cooper  </dd>
226*132f818dSEnji Cooper</dl>
227*132f818dSEnji Cooper<dl class="section return"><dt>Returns</dt><dd>The number of return values of the called function. </dd></dl>
228*132f818dSEnji Cooper
229*132f818dSEnji Cooper</div>
230*132f818dSEnji Cooper</div>
231*132f818dSEnji Cooper<a id="ac895a6a4aab5ec5597bdfb62adf0f85c" name="ac895a6a4aab5ec5597bdfb62adf0f85c"></a>
232*132f818dSEnji Cooper<h2 class="memtitle"><span class="permalink"><a href="#ac895a6a4aab5ec5597bdfb62adf0f85c">&#9670;&#160;</a></span>protected_getglobal()</h2>
233*132f818dSEnji Cooper
234*132f818dSEnji Cooper<div class="memitem">
235*132f818dSEnji Cooper<div class="memproto">
236*132f818dSEnji Cooper<table class="mlabels">
237*132f818dSEnji Cooper  <tr>
238*132f818dSEnji Cooper  <td class="mlabels-left">
239*132f818dSEnji Cooper      <table class="memname">
240*132f818dSEnji Cooper        <tr>
241*132f818dSEnji Cooper          <td class="memname">static int anonymous_namespace{state.cpp}::protected_getglobal </td>
242*132f818dSEnji Cooper          <td>(</td>
243*132f818dSEnji Cooper          <td class="paramtype">lua_State *&#160;</td>
244*132f818dSEnji Cooper          <td class="paramname"><em>state</em></td><td>)</td>
245*132f818dSEnji Cooper          <td></td>
246*132f818dSEnji Cooper        </tr>
247*132f818dSEnji Cooper      </table>
248*132f818dSEnji Cooper  </td>
249*132f818dSEnji Cooper  <td class="mlabels-right">
250*132f818dSEnji Cooper<span class="mlabels"><span class="mlabel">static</span></span>  </td>
251*132f818dSEnji Cooper  </tr>
252*132f818dSEnji Cooper</table>
253*132f818dSEnji Cooper</div><div class="memdoc">
254*132f818dSEnji Cooper
255*132f818dSEnji Cooper<p>Wrapper around lua_getglobal to run in a protected environment. </p>
256*132f818dSEnji Cooper<dl class="section pre"><dt>Precondition</dt><dd>stack(-1) is the name of the global to get. </dd></dl>
257*132f818dSEnji Cooper<dl class="section post"><dt>Postcondition</dt><dd>stack(-1) is the value of the global.</dd></dl>
258*132f818dSEnji Cooper<dl class="params"><dt>Parameters</dt><dd>
259*132f818dSEnji Cooper  <table class="params">
260*132f818dSEnji Cooper    <tr><td class="paramname">state</td><td>The Lua C API state.</td></tr>
261*132f818dSEnji Cooper  </table>
262*132f818dSEnji Cooper  </dd>
263*132f818dSEnji Cooper</dl>
264*132f818dSEnji Cooper<dl class="section return"><dt>Returns</dt><dd>The number of return values pushed onto the stack. </dd></dl>
265*132f818dSEnji Cooper
266*132f818dSEnji Cooper</div>
267*132f818dSEnji Cooper</div>
268*132f818dSEnji Cooper<a id="a901e28feef6c6a7c94edf906139464a4" name="a901e28feef6c6a7c94edf906139464a4"></a>
269*132f818dSEnji Cooper<h2 class="memtitle"><span class="permalink"><a href="#a901e28feef6c6a7c94edf906139464a4">&#9670;&#160;</a></span>protected_gettable()</h2>
270*132f818dSEnji Cooper
271*132f818dSEnji Cooper<div class="memitem">
272*132f818dSEnji Cooper<div class="memproto">
273*132f818dSEnji Cooper<table class="mlabels">
274*132f818dSEnji Cooper  <tr>
275*132f818dSEnji Cooper  <td class="mlabels-left">
276*132f818dSEnji Cooper      <table class="memname">
277*132f818dSEnji Cooper        <tr>
278*132f818dSEnji Cooper          <td class="memname">static int anonymous_namespace{state.cpp}::protected_gettable </td>
279*132f818dSEnji Cooper          <td>(</td>
280*132f818dSEnji Cooper          <td class="paramtype">lua_State *&#160;</td>
281*132f818dSEnji Cooper          <td class="paramname"><em>state</em></td><td>)</td>
282*132f818dSEnji Cooper          <td></td>
283*132f818dSEnji Cooper        </tr>
284*132f818dSEnji Cooper      </table>
285*132f818dSEnji Cooper  </td>
286*132f818dSEnji Cooper  <td class="mlabels-right">
287*132f818dSEnji Cooper<span class="mlabels"><span class="mlabel">static</span></span>  </td>
288*132f818dSEnji Cooper  </tr>
289*132f818dSEnji Cooper</table>
290*132f818dSEnji Cooper</div><div class="memdoc">
291*132f818dSEnji Cooper
292*132f818dSEnji Cooper<p>Wrapper around lua_gettable to run in a protected environment. </p>
293*132f818dSEnji Cooper<dl class="section pre"><dt>Precondition</dt><dd>stack(-2) is the table to get the element from. </dd>
294*132f818dSEnji Cooper<dd>
295*132f818dSEnji Cooperstack(-1) is the table index. </dd></dl>
296*132f818dSEnji Cooper<dl class="section post"><dt>Postcondition</dt><dd>stack(-1) is the value of stack(-2)[stack(-1)].</dd></dl>
297*132f818dSEnji Cooper<dl class="params"><dt>Parameters</dt><dd>
298*132f818dSEnji Cooper  <table class="params">
299*132f818dSEnji Cooper    <tr><td class="paramname">state</td><td>The Lua C API state.</td></tr>
300*132f818dSEnji Cooper  </table>
301*132f818dSEnji Cooper  </dd>
302*132f818dSEnji Cooper</dl>
303*132f818dSEnji Cooper<dl class="section return"><dt>Returns</dt><dd>The number of return values pushed onto the stack. </dd></dl>
304*132f818dSEnji Cooper
305*132f818dSEnji Cooper</div>
306*132f818dSEnji Cooper</div>
307*132f818dSEnji Cooper<a id="a8163cc0f7d5dfba820e335e02769bd91" name="a8163cc0f7d5dfba820e335e02769bd91"></a>
308*132f818dSEnji Cooper<h2 class="memtitle"><span class="permalink"><a href="#a8163cc0f7d5dfba820e335e02769bd91">&#9670;&#160;</a></span>protected_next()</h2>
309*132f818dSEnji Cooper
310*132f818dSEnji Cooper<div class="memitem">
311*132f818dSEnji Cooper<div class="memproto">
312*132f818dSEnji Cooper<table class="mlabels">
313*132f818dSEnji Cooper  <tr>
314*132f818dSEnji Cooper  <td class="mlabels-left">
315*132f818dSEnji Cooper      <table class="memname">
316*132f818dSEnji Cooper        <tr>
317*132f818dSEnji Cooper          <td class="memname">static int anonymous_namespace{state.cpp}::protected_next </td>
318*132f818dSEnji Cooper          <td>(</td>
319*132f818dSEnji Cooper          <td class="paramtype">lua_State *&#160;</td>
320*132f818dSEnji Cooper          <td class="paramname"><em>state</em></td><td>)</td>
321*132f818dSEnji Cooper          <td></td>
322*132f818dSEnji Cooper        </tr>
323*132f818dSEnji Cooper      </table>
324*132f818dSEnji Cooper  </td>
325*132f818dSEnji Cooper  <td class="mlabels-right">
326*132f818dSEnji Cooper<span class="mlabels"><span class="mlabel">static</span></span>  </td>
327*132f818dSEnji Cooper  </tr>
328*132f818dSEnji Cooper</table>
329*132f818dSEnji Cooper</div><div class="memdoc">
330*132f818dSEnji Cooper
331*132f818dSEnji Cooper<p>Wrapper around lua_next to run in a protected environment. </p>
332*132f818dSEnji Cooper<dl class="section pre"><dt>Precondition</dt><dd>stack(-2) is the table to get the next element from. </dd>
333*132f818dSEnji Cooper<dd>
334*132f818dSEnji Cooperstack(-1) is the last processed key. </dd></dl>
335*132f818dSEnji Cooper<dl class="section post"><dt>Postcondition</dt><dd>stack(-1) is the value of next(stack(-2), stack(-1)).</dd></dl>
336*132f818dSEnji Cooper<dl class="params"><dt>Parameters</dt><dd>
337*132f818dSEnji Cooper  <table class="params">
338*132f818dSEnji Cooper    <tr><td class="paramname">state</td><td>The Lua C API state.</td></tr>
339*132f818dSEnji Cooper  </table>
340*132f818dSEnji Cooper  </dd>
341*132f818dSEnji Cooper</dl>
342*132f818dSEnji Cooper<dl class="section return"><dt>Returns</dt><dd>The number of return values pushed onto the stack. </dd></dl>
343*132f818dSEnji Cooper
344*132f818dSEnji Cooper</div>
345*132f818dSEnji Cooper</div>
346*132f818dSEnji Cooper<a id="a931ec64a97c5b8ff24bd12b1318c4bf5" name="a931ec64a97c5b8ff24bd12b1318c4bf5"></a>
347*132f818dSEnji Cooper<h2 class="memtitle"><span class="permalink"><a href="#a931ec64a97c5b8ff24bd12b1318c4bf5">&#9670;&#160;</a></span>protected_setglobal()</h2>
348*132f818dSEnji Cooper
349*132f818dSEnji Cooper<div class="memitem">
350*132f818dSEnji Cooper<div class="memproto">
351*132f818dSEnji Cooper<table class="mlabels">
352*132f818dSEnji Cooper  <tr>
353*132f818dSEnji Cooper  <td class="mlabels-left">
354*132f818dSEnji Cooper      <table class="memname">
355*132f818dSEnji Cooper        <tr>
356*132f818dSEnji Cooper          <td class="memname">static int anonymous_namespace{state.cpp}::protected_setglobal </td>
357*132f818dSEnji Cooper          <td>(</td>
358*132f818dSEnji Cooper          <td class="paramtype">lua_State *&#160;</td>
359*132f818dSEnji Cooper          <td class="paramname"><em>state</em></td><td>)</td>
360*132f818dSEnji Cooper          <td></td>
361*132f818dSEnji Cooper        </tr>
362*132f818dSEnji Cooper      </table>
363*132f818dSEnji Cooper  </td>
364*132f818dSEnji Cooper  <td class="mlabels-right">
365*132f818dSEnji Cooper<span class="mlabels"><span class="mlabel">static</span></span>  </td>
366*132f818dSEnji Cooper  </tr>
367*132f818dSEnji Cooper</table>
368*132f818dSEnji Cooper</div><div class="memdoc">
369*132f818dSEnji Cooper
370*132f818dSEnji Cooper<p>Wrapper around lua_setglobal to run in a protected environment. </p>
371*132f818dSEnji Cooper<dl class="section pre"><dt>Precondition</dt><dd>stack(-2) is the name of the global to set. </dd>
372*132f818dSEnji Cooper<dd>
373*132f818dSEnji Cooperstack(-1) is the value to set the global to.</dd></dl>
374*132f818dSEnji Cooper<dl class="params"><dt>Parameters</dt><dd>
375*132f818dSEnji Cooper  <table class="params">
376*132f818dSEnji Cooper    <tr><td class="paramname">state</td><td>The Lua C API state.</td></tr>
377*132f818dSEnji Cooper  </table>
378*132f818dSEnji Cooper  </dd>
379*132f818dSEnji Cooper</dl>
380*132f818dSEnji Cooper<dl class="section return"><dt>Returns</dt><dd>The number of return values pushed onto the stack. </dd></dl>
381*132f818dSEnji Cooper
382*132f818dSEnji Cooper</div>
383*132f818dSEnji Cooper</div>
384*132f818dSEnji Cooper<a id="a42654c15fd147850ad03cd891d1d7193" name="a42654c15fd147850ad03cd891d1d7193"></a>
385*132f818dSEnji Cooper<h2 class="memtitle"><span class="permalink"><a href="#a42654c15fd147850ad03cd891d1d7193">&#9670;&#160;</a></span>protected_settable()</h2>
386*132f818dSEnji Cooper
387*132f818dSEnji Cooper<div class="memitem">
388*132f818dSEnji Cooper<div class="memproto">
389*132f818dSEnji Cooper<table class="mlabels">
390*132f818dSEnji Cooper  <tr>
391*132f818dSEnji Cooper  <td class="mlabels-left">
392*132f818dSEnji Cooper      <table class="memname">
393*132f818dSEnji Cooper        <tr>
394*132f818dSEnji Cooper          <td class="memname">static int anonymous_namespace{state.cpp}::protected_settable </td>
395*132f818dSEnji Cooper          <td>(</td>
396*132f818dSEnji Cooper          <td class="paramtype">lua_State *&#160;</td>
397*132f818dSEnji Cooper          <td class="paramname"><em>state</em></td><td>)</td>
398*132f818dSEnji Cooper          <td></td>
399*132f818dSEnji Cooper        </tr>
400*132f818dSEnji Cooper      </table>
401*132f818dSEnji Cooper  </td>
402*132f818dSEnji Cooper  <td class="mlabels-right">
403*132f818dSEnji Cooper<span class="mlabels"><span class="mlabel">static</span></span>  </td>
404*132f818dSEnji Cooper  </tr>
405*132f818dSEnji Cooper</table>
406*132f818dSEnji Cooper</div><div class="memdoc">
407*132f818dSEnji Cooper
408*132f818dSEnji Cooper<p>Wrapper around lua_settable to run in a protected environment. </p>
409*132f818dSEnji Cooper<dl class="section pre"><dt>Precondition</dt><dd>stack(-3) is the table to set the element into. </dd>
410*132f818dSEnji Cooper<dd>
411*132f818dSEnji Cooperstack(-2) is the table index. </dd>
412*132f818dSEnji Cooper<dd>
413*132f818dSEnji Cooperstack(-1) is the value to set.</dd></dl>
414*132f818dSEnji Cooper<dl class="params"><dt>Parameters</dt><dd>
415*132f818dSEnji Cooper  <table class="params">
416*132f818dSEnji Cooper    <tr><td class="paramname">state</td><td>The Lua C API state.</td></tr>
417*132f818dSEnji Cooper  </table>
418*132f818dSEnji Cooper  </dd>
419*132f818dSEnji Cooper</dl>
420*132f818dSEnji Cooper<dl class="section return"><dt>Returns</dt><dd>The number of return values pushed onto the stack. </dd></dl>
421*132f818dSEnji Cooper
422*132f818dSEnji Cooper</div>
423*132f818dSEnji Cooper</div>
424*132f818dSEnji Cooper</div><!-- contents -->
425*132f818dSEnji Cooper<!-- start footer part -->
426*132f818dSEnji Cooper<hr class="footer"/><address class="footer"><small>
427*132f818dSEnji CooperGenerated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.6
428*132f818dSEnji Cooper</small></address>
429*132f818dSEnji Cooper</body>
430*132f818dSEnji Cooper</html>
431