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"> 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&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&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 </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"> </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"> </td></tr> 83*132f818dSEnji Cooper<tr class="memitem:a901e28feef6c6a7c94edf906139464a4"><td class="memItemLeft" align="right" valign="top">static int </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"> </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"> </td></tr> 86*132f818dSEnji Cooper<tr class="memitem:a8163cc0f7d5dfba820e335e02769bd91"><td class="memItemLeft" align="right" valign="top">static int </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"> </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"> </td></tr> 89*132f818dSEnji Cooper<tr class="memitem:a931ec64a97c5b8ff24bd12b1318c4bf5"><td class="memItemLeft" align="right" valign="top">static int </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"> </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"> </td></tr> 92*132f818dSEnji Cooper<tr class="memitem:a42654c15fd147850ad03cd891d1d7193"><td class="memItemLeft" align="right" valign="top">static int </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"> </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"> </td></tr> 95*132f818dSEnji Cooper<tr class="memitem:ac12be03daffcd5d46ac51da378577e51"><td class="memItemLeft" align="right" valign="top">static int </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"> </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"> </td></tr> 98*132f818dSEnji Cooper<tr class="memitem:a86e6a7c405a8feea00907b99c4d084ca"><td class="memItemLeft" align="right" valign="top">static int </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"> </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"> </td></tr> 101*132f818dSEnji Cooper<tr class="memitem:af3c459196ed8b373a8376b5abeedd472"><td class="memItemLeft" align="right" valign="top">static int </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"> </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"> </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">◆ </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> </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 * </td> 125*132f818dSEnji Cooper <td class="paramname"><em>raw_state</em> </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">◆ </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 * </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">◆ </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 * </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">◆ </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 * </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">◆ </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 * </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">◆ </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 * </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">◆ </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 * </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">◆ </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 * </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 <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