Sophie

Sophie

distrib > CentOS > 5 > i386 > media > os > by-pkgid > 608068f228165b6e5a4f2c11fda54521 > files > 409

rpm-apidocs-4.4.2.3-34.el5.i386.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>rpm: lua/lundump.c Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
    <li id="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
  </ul></div>
<div class="tabs">
  <ul>
    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
    <li><a href="globals.html"><span>Globals</span></a></li>
  </ul></div>
<h1>lua/lundump.c</h1><a href="lundump_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment">** $Id: lundump.c,v 1.2 2004/03/23 05:09:14 jbj Exp $</span>
<a name="l00003"></a>00003 <span class="comment">** load pre-compiled Lua chunks</span>
<a name="l00004"></a>00004 <span class="comment">** See Copyright Notice in lua.h</span>
<a name="l00005"></a>00005 <span class="comment">*/</span>
<a name="l00006"></a>00006 
<a name="l00007"></a><a class="code" href="lundump_8c.html#a480de4ebd1ff43b613879e98ab2bcd8">00007</a> <span class="preprocessor">#define lundump_c</span>
<a name="l00008"></a>00008 <span class="preprocessor"></span>
<a name="l00009"></a>00009 <span class="preprocessor">#include "lua.h"</span>
<a name="l00010"></a>00010 
<a name="l00011"></a>00011 <span class="preprocessor">#include "<a class="code" href="ldebug_8h.html">ldebug.h</a>"</span>
<a name="l00012"></a>00012 <span class="preprocessor">#include "<a class="code" href="lfunc_8h.html">lfunc.h</a>"</span>
<a name="l00013"></a>00013 <span class="preprocessor">#include "<a class="code" href="lmem_8h.html">lmem.h</a>"</span>
<a name="l00014"></a>00014 <span class="preprocessor">#include "<a class="code" href="lopcodes_8h.html">lopcodes.h</a>"</span>
<a name="l00015"></a>00015 <span class="preprocessor">#include "<a class="code" href="lstring_8h.html">lstring.h</a>"</span>
<a name="l00016"></a>00016 <span class="preprocessor">#include "<a class="code" href="lundump_8h.html">lundump.h</a>"</span>
<a name="l00017"></a>00017 <span class="preprocessor">#include "<a class="code" href="lzio_8h.html">lzio.h</a>"</span>
<a name="l00018"></a>00018 
<a name="l00019"></a><a class="code" href="lundump_8c.html#7908bb9dbffbaec17f12214871eaf4a7">00019</a> <span class="preprocessor">#define LoadByte        (lu_byte) ezgetc</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span>
<a name="l00021"></a><a class="code" href="structLoadState.html">00021</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
<a name="l00022"></a><a class="code" href="structLoadState.html#8eabd10510332ab5eaf5244bb347bac2">00022</a>  <a class="code" href="structlua__State.html">lua_State</a>* L;
<a name="l00023"></a><a class="code" href="structLoadState.html#53f2d5fa2c176bdf96701c983afb8182">00023</a>  <a class="code" href="structZio.html">ZIO</a>* Z;
<a name="l00024"></a><a class="code" href="structLoadState.html#6f7641cccb52a4df4b55890dee8dcbc8">00024</a>  <a class="code" href="structMbuffer.html">Mbuffer</a>* b;
<a name="l00025"></a><a class="code" href="structLoadState.html#69fbfe0112069fb8615c21e74ca18b14">00025</a>  <span class="keywordtype">int</span> <a class="code" href="merge_8c.html#3ca5ecd34b04d6a243c054ac3a57f68d">swap</a>;
<a name="l00026"></a>00026 <span class="comment">/*@observer@*/</span>
<a name="l00027"></a><a class="code" href="structLoadState.html#0cd70a73d5f61472258ebb5256abbaef">00027</a>  <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structname.html">name</a>;
<a name="l00028"></a>00028 } <a class="code" href="structLoadState.html">LoadState</a>;
<a name="l00029"></a>00029 
<a name="l00030"></a><a class="code" href="lundump_8c.html#d856e233cc4530db73765a115f683b23">00030</a> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="lundump_8c.html#d856e233cc4530db73765a115f683b23">unexpectedEOZ</a> (<a class="code" href="structLoadState.html">LoadState</a>* S)
<a name="l00031"></a>00031         <span class="comment">/*@modifies S @*/</span>
<a name="l00032"></a>00032 {
<a name="l00033"></a>00033  <a class="code" href="ldebug_8c.html#5ef43f05a00bde7ee94539f3d765789c">luaG_runerror</a>(S-&gt;<a class="code" href="structLoadState.html#8eabd10510332ab5eaf5244bb347bac2">L</a>,<span class="stringliteral">"unexpected end of file in %s"</span>,S-&gt;<a class="code" href="structLoadState.html#0cd70a73d5f61472258ebb5256abbaef">name</a>);
<a name="l00034"></a>00034 }
<a name="l00035"></a>00035 
<a name="l00036"></a><a class="code" href="lundump_8c.html#43856e553f81fcbb12fd97e39b6904b4">00036</a> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="lundump_8c.html#43856e553f81fcbb12fd97e39b6904b4">ezgetc</a> (<a class="code" href="structLoadState.html">LoadState</a>* S)
<a name="l00037"></a>00037         <span class="comment">/*@modifies S @*/</span>
<a name="l00038"></a>00038 {
<a name="l00039"></a>00039  <span class="keywordtype">int</span> c=<a class="code" href="lzio_8h.html#ecca8ea1e6dc0c97b458f77c0e3491de">zgetc</a>(S-&gt;<a class="code" href="structLoadState.html#53f2d5fa2c176bdf96701c983afb8182">Z</a>);
<a name="l00040"></a>00040  <span class="keywordflow">if</span> (c==<a class="code" href="lzio_8h.html#8341bdc72db5a2f045e18440f9523008">EOZ</a>) <a class="code" href="lundump_8c.html#d856e233cc4530db73765a115f683b23">unexpectedEOZ</a>(S);
<a name="l00041"></a>00041  <span class="keywordflow">return</span> c;
<a name="l00042"></a>00042 }
<a name="l00043"></a>00043 
<a name="l00044"></a><a class="code" href="lundump_8c.html#72fa40d47121b8c8af4982c6ba59d62b">00044</a> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="lundump_8c.html#72fa40d47121b8c8af4982c6ba59d62b">ezread</a> (<a class="code" href="structLoadState.html">LoadState</a>* S, <span class="keywordtype">void</span>* b, <span class="keywordtype">int</span> n)
<a name="l00045"></a>00045         <span class="comment">/*@modifies S, *b @*/</span>
<a name="l00046"></a>00046 {
<a name="l00047"></a>00047  <span class="keywordtype">int</span> r=<a class="code" href="lzio_8c.html#8f724436a986edc42726b43aded0759a">luaZ_read</a>(S-&gt;<a class="code" href="structLoadState.html#53f2d5fa2c176bdf96701c983afb8182">Z</a>,b,n);
<a name="l00048"></a>00048  <span class="keywordflow">if</span> (r!=0) <a class="code" href="lundump_8c.html#d856e233cc4530db73765a115f683b23">unexpectedEOZ</a>(S);
<a name="l00049"></a>00049 }
<a name="l00050"></a>00050 
<a name="l00051"></a><a class="code" href="lundump_8c.html#7a5d13b3653a25432f167162f585ffa4">00051</a> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="lundump_8c.html#7a5d13b3653a25432f167162f585ffa4">LoadBlock</a> (<a class="code" href="structLoadState.html">LoadState</a>* S, <span class="keywordtype">void</span>* b, size_t size)
<a name="l00052"></a>00052         <span class="comment">/*@modifies S, *b @*/</span>
<a name="l00053"></a>00053 {
<a name="l00054"></a>00054  <span class="keywordflow">if</span> (S-&gt;<a class="code" href="structLoadState.html#69fbfe0112069fb8615c21e74ca18b14">swap</a>)
<a name="l00055"></a>00055  {
<a name="l00056"></a>00056   <span class="keywordtype">char</span>* p=(<span class="keywordtype">char</span>*) b+size-1;
<a name="l00057"></a>00057   <span class="keywordtype">int</span> n=size;
<a name="l00058"></a>00058   <span class="keywordflow">while</span> (n--) *p--=(char)<a class="code" href="lundump_8c.html#43856e553f81fcbb12fd97e39b6904b4">ezgetc</a>(S);
<a name="l00059"></a>00059  }
<a name="l00060"></a>00060  <span class="keywordflow">else</span>
<a name="l00061"></a>00061   <a class="code" href="lundump_8c.html#72fa40d47121b8c8af4982c6ba59d62b">ezread</a>(S,b,size);
<a name="l00062"></a>00062 }
<a name="l00063"></a>00063 
<a name="l00064"></a><a class="code" href="lundump_8c.html#3b613d319e762e9232cf16bac906ef8d">00064</a> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="lundump_8c.html#3b613d319e762e9232cf16bac906ef8d">LoadVector</a> (<a class="code" href="structLoadState.html">LoadState</a>* S, <span class="keywordtype">void</span>* b, <span class="keywordtype">int</span> m, size_t size)
<a name="l00065"></a>00065         <span class="comment">/*@modifies S, *b @*/</span>
<a name="l00066"></a>00066 {
<a name="l00067"></a>00067  <span class="keywordflow">if</span> (S-&gt;<a class="code" href="structLoadState.html#69fbfe0112069fb8615c21e74ca18b14">swap</a>)
<a name="l00068"></a>00068  {
<a name="l00069"></a>00069   <span class="keywordtype">char</span>* q=(<span class="keywordtype">char</span>*) b;
<a name="l00070"></a>00070   <span class="keywordflow">while</span> (m--)
<a name="l00071"></a>00071   {
<a name="l00072"></a>00072    <span class="keywordtype">char</span>* p=q+size-1;
<a name="l00073"></a>00073    <span class="keywordtype">int</span> n=size;
<a name="l00074"></a>00074    <span class="keywordflow">while</span> (n--) *p--=(char)<a class="code" href="lundump_8c.html#43856e553f81fcbb12fd97e39b6904b4">ezgetc</a>(S);
<a name="l00075"></a>00075    q+=size;
<a name="l00076"></a>00076   }
<a name="l00077"></a>00077  }
<a name="l00078"></a>00078  <span class="keywordflow">else</span>
<a name="l00079"></a>00079   <a class="code" href="lundump_8c.html#72fa40d47121b8c8af4982c6ba59d62b">ezread</a>(S,b,m*size);
<a name="l00080"></a>00080 }
<a name="l00081"></a>00081 
<a name="l00082"></a><a class="code" href="lundump_8c.html#9f0e8462baca39c1599c55689ab68d49">00082</a> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="lundump_8c.html#9f0e8462baca39c1599c55689ab68d49">LoadInt</a> (<a class="code" href="structLoadState.html">LoadState</a>* S)
<a name="l00083"></a>00083         <span class="comment">/*@modifies S @*/</span>
<a name="l00084"></a>00084 {
<a name="l00085"></a>00085  <span class="keywordtype">int</span> x;
<a name="l00086"></a>00086  <a class="code" href="lundump_8c.html#7a5d13b3653a25432f167162f585ffa4">LoadBlock</a>(S,&amp;x,<span class="keyword">sizeof</span>(x));
<a name="l00087"></a>00087  <span class="keywordflow">if</span> (x&lt;0) <a class="code" href="ldebug_8c.html#5ef43f05a00bde7ee94539f3d765789c">luaG_runerror</a>(S-&gt;<a class="code" href="structLoadState.html#8eabd10510332ab5eaf5244bb347bac2">L</a>,<span class="stringliteral">"bad integer in %s"</span>,S-&gt;<a class="code" href="structLoadState.html#0cd70a73d5f61472258ebb5256abbaef">name</a>);
<a name="l00088"></a>00088  <span class="keywordflow">return</span> x;
<a name="l00089"></a>00089 }
<a name="l00090"></a>00090 
<a name="l00091"></a><a class="code" href="lundump_8c.html#62f5a65570894d2d857b4a2bdf716acc">00091</a> <span class="keyword">static</span> size_t <a class="code" href="lundump_8c.html#62f5a65570894d2d857b4a2bdf716acc">LoadSize</a> (<a class="code" href="structLoadState.html">LoadState</a>* S)
<a name="l00092"></a>00092         <span class="comment">/*@modifies S @*/</span>
<a name="l00093"></a>00093 {
<a name="l00094"></a>00094  size_t x;
<a name="l00095"></a>00095  <a class="code" href="lundump_8c.html#7a5d13b3653a25432f167162f585ffa4">LoadBlock</a>(S,&amp;x,<span class="keyword">sizeof</span>(x));
<a name="l00096"></a>00096  <span class="keywordflow">return</span> x;
<a name="l00097"></a>00097 }
<a name="l00098"></a>00098 
<a name="l00099"></a><a class="code" href="lundump_8c.html#373560dc80f918430160b6aefdd690af">00099</a> <span class="keyword">static</span> lua_Number <a class="code" href="lundump_8c.html#373560dc80f918430160b6aefdd690af">LoadNumber</a> (<a class="code" href="structLoadState.html">LoadState</a>* S)
<a name="l00100"></a>00100         <span class="comment">/*@modifies S @*/</span>
<a name="l00101"></a>00101 {
<a name="l00102"></a>00102  lua_Number x;
<a name="l00103"></a>00103  <a class="code" href="lundump_8c.html#7a5d13b3653a25432f167162f585ffa4">LoadBlock</a>(S,&amp;x,<span class="keyword">sizeof</span>(x));
<a name="l00104"></a>00104  <span class="keywordflow">return</span> x;
<a name="l00105"></a>00105 }
<a name="l00106"></a>00106 
<a name="l00107"></a>00107 <span class="comment">/*@null@*/</span>
<a name="l00108"></a><a class="code" href="lundump_8c.html#bfe7dabe70bd14e27d54d3cedc6cb70a">00108</a> <span class="keyword">static</span> <a class="code" href="unionTString.html">TString</a>* <a class="code" href="lundump_8c.html#bfe7dabe70bd14e27d54d3cedc6cb70a">LoadString</a> (<a class="code" href="structLoadState.html">LoadState</a>* S)
<a name="l00109"></a>00109         <span class="comment">/*@modifies S @*/</span>
<a name="l00110"></a>00110 {
<a name="l00111"></a>00111  size_t size=<a class="code" href="lundump_8c.html#62f5a65570894d2d857b4a2bdf716acc">LoadSize</a>(S);
<a name="l00112"></a>00112  <span class="keywordflow">if</span> (size==0)
<a name="l00113"></a>00113   <span class="keywordflow">return</span> NULL;
<a name="l00114"></a>00114  <span class="keywordflow">else</span>
<a name="l00115"></a>00115  {
<a name="l00116"></a>00116   <span class="keywordtype">char</span>* s=<a class="code" href="lzio_8c.html#4f037d52a7c5321825d6fec40b532648">luaZ_openspace</a>(S-&gt;<a class="code" href="structLoadState.html#8eabd10510332ab5eaf5244bb347bac2">L</a>,S-&gt;<a class="code" href="structLoadState.html#6f7641cccb52a4df4b55890dee8dcbc8">b</a>,size);
<a name="l00117"></a>00117   <a class="code" href="lundump_8c.html#72fa40d47121b8c8af4982c6ba59d62b">ezread</a>(S,s,size);
<a name="l00118"></a>00118   <span class="keywordflow">return</span> <a class="code" href="lstring_8c.html#b41fb084ce3ea5e2779f6659ccc2484d">luaS_newlstr</a>(S-&gt;<a class="code" href="structLoadState.html#8eabd10510332ab5eaf5244bb347bac2">L</a>,s,size-1);           <span class="comment">/* remove trailing '\0' */</span>
<a name="l00119"></a>00119  }
<a name="l00120"></a>00120 }
<a name="l00121"></a>00121 
<a name="l00122"></a><a class="code" href="lundump_8c.html#df31b58c8223f0aaed42909670403b2d">00122</a> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="lundump_8c.html#df31b58c8223f0aaed42909670403b2d">LoadCode</a> (<a class="code" href="structLoadState.html">LoadState</a>* S, <a class="code" href="structProto.html">Proto</a>* f)
<a name="l00123"></a>00123         <span class="comment">/*@modifies S, f @*/</span>
<a name="l00124"></a>00124 {
<a name="l00125"></a>00125  <span class="keywordtype">int</span> size=<a class="code" href="lundump_8c.html#9f0e8462baca39c1599c55689ab68d49">LoadInt</a>(S);
<a name="l00126"></a>00126  f-&gt;<a class="code" href="structProto.html#53b66e4e4ac4b612a41b67a0ace9b6a5">code</a>=<a class="code" href="lmem_8h.html#715cc368a85506c7a104cda58f270f3e">luaM_newvector</a>(S-&gt;<a class="code" href="structLoadState.html#8eabd10510332ab5eaf5244bb347bac2">L</a>,size,<a class="code" href="llimits_8h.html#f6c47c68c1e6b0387c915031e0e681e3">Instruction</a>);
<a name="l00127"></a>00127  f-&gt;<a class="code" href="structProto.html#43e4d3849b5859112d93bdc2534a7cc0">sizecode</a>=size;
<a name="l00128"></a>00128  <a class="code" href="lundump_8c.html#3b613d319e762e9232cf16bac906ef8d">LoadVector</a>(S,f-&gt;<a class="code" href="structProto.html#53b66e4e4ac4b612a41b67a0ace9b6a5">code</a>,size,<span class="keyword">sizeof</span>(*f-&gt;<a class="code" href="structProto.html#53b66e4e4ac4b612a41b67a0ace9b6a5">code</a>));
<a name="l00129"></a>00129 }
<a name="l00130"></a>00130 
<a name="l00131"></a><a class="code" href="lundump_8c.html#57a7bd17cb90a2aa3ca5c0e3dcd559bf">00131</a> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="lundump_8c.html#57a7bd17cb90a2aa3ca5c0e3dcd559bf">LoadLocals</a> (<a class="code" href="structLoadState.html">LoadState</a>* S, <a class="code" href="structProto.html">Proto</a>* f)
<a name="l00132"></a>00132         <span class="comment">/*@modifies S, f @*/</span>
<a name="l00133"></a>00133 {
<a name="l00134"></a>00134  <span class="keywordtype">int</span> i,n;
<a name="l00135"></a>00135  n=<a class="code" href="lundump_8c.html#9f0e8462baca39c1599c55689ab68d49">LoadInt</a>(S);
<a name="l00136"></a>00136  f-&gt;<a class="code" href="structProto.html#24fd00345a3dad92baf371a9c96ba140">locvars</a>=<a class="code" href="lmem_8h.html#715cc368a85506c7a104cda58f270f3e">luaM_newvector</a>(S-&gt;<a class="code" href="structLoadState.html#8eabd10510332ab5eaf5244bb347bac2">L</a>,n,<a class="code" href="structLocVar.html">LocVar</a>);
<a name="l00137"></a>00137  f-&gt;<a class="code" href="structProto.html#c2ab37e941e8866687f44f7b2f4b95a9">sizelocvars</a>=n;
<a name="l00138"></a>00138  <span class="keywordflow">for</span> (i=0; i&lt;n; i++)
<a name="l00139"></a>00139  {
<a name="l00140"></a>00140   f-&gt;<a class="code" href="structProto.html#24fd00345a3dad92baf371a9c96ba140">locvars</a>[i].<a class="code" href="structLocVar.html#cf62684d78349320b90b4acfa3b6d22a">varname</a>=<a class="code" href="lundump_8c.html#bfe7dabe70bd14e27d54d3cedc6cb70a">LoadString</a>(S);
<a name="l00141"></a>00141   f-&gt;<a class="code" href="structProto.html#24fd00345a3dad92baf371a9c96ba140">locvars</a>[i].<a class="code" href="structLocVar.html#c5a8bf5a59430eea070db5b1a97d8b88">startpc</a>=<a class="code" href="lundump_8c.html#9f0e8462baca39c1599c55689ab68d49">LoadInt</a>(S);
<a name="l00142"></a>00142   f-&gt;<a class="code" href="structProto.html#24fd00345a3dad92baf371a9c96ba140">locvars</a>[i].<a class="code" href="structLocVar.html#f7f0f7d509579ffec5610e329f85693b">endpc</a>=<a class="code" href="lundump_8c.html#9f0e8462baca39c1599c55689ab68d49">LoadInt</a>(S);
<a name="l00143"></a>00143  }
<a name="l00144"></a>00144 }
<a name="l00145"></a>00145 
<a name="l00146"></a><a class="code" href="lundump_8c.html#34c52c2d39df2bef9b7079f512e0ed78">00146</a> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="lundump_8c.html#34c52c2d39df2bef9b7079f512e0ed78">LoadLines</a> (<a class="code" href="structLoadState.html">LoadState</a>* S, <a class="code" href="structProto.html">Proto</a>* f)
<a name="l00147"></a>00147         <span class="comment">/*@modifies S, f @*/</span>
<a name="l00148"></a>00148 {
<a name="l00149"></a>00149  <span class="keywordtype">int</span> size=<a class="code" href="lundump_8c.html#9f0e8462baca39c1599c55689ab68d49">LoadInt</a>(S);
<a name="l00150"></a>00150  f-&gt;<a class="code" href="structProto.html#7b35e79a276933f7e71edceec5b4593d">lineinfo</a>=<a class="code" href="lmem_8h.html#715cc368a85506c7a104cda58f270f3e">luaM_newvector</a>(S-&gt;<a class="code" href="structLoadState.html#8eabd10510332ab5eaf5244bb347bac2">L</a>,size,<span class="keywordtype">int</span>);
<a name="l00151"></a>00151  f-&gt;<a class="code" href="structProto.html#65303ae1d815313f3358a578113fcc6e">sizelineinfo</a>=size;
<a name="l00152"></a>00152  <a class="code" href="lundump_8c.html#3b613d319e762e9232cf16bac906ef8d">LoadVector</a>(S,f-&gt;<a class="code" href="structProto.html#7b35e79a276933f7e71edceec5b4593d">lineinfo</a>,size,<span class="keyword">sizeof</span>(*f-&gt;<a class="code" href="structProto.html#7b35e79a276933f7e71edceec5b4593d">lineinfo</a>));
<a name="l00153"></a>00153 }
<a name="l00154"></a>00154 
<a name="l00155"></a><a class="code" href="lundump_8c.html#841d820b1d5922371773399d275dfe42">00155</a> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="lundump_8c.html#841d820b1d5922371773399d275dfe42">LoadUpvalues</a> (<a class="code" href="structLoadState.html">LoadState</a>* S, <a class="code" href="structProto.html">Proto</a>* f)
<a name="l00156"></a>00156         <span class="comment">/*@modifies S, f @*/</span>
<a name="l00157"></a>00157 {
<a name="l00158"></a>00158  <span class="keywordtype">int</span> i,n;
<a name="l00159"></a>00159  n=<a class="code" href="lundump_8c.html#9f0e8462baca39c1599c55689ab68d49">LoadInt</a>(S);
<a name="l00160"></a>00160  <span class="keywordflow">if</span> (n!=0 &amp;&amp; n!=f-&gt;<a class="code" href="structProto.html#e20e9996154a89085ac03eaaf8f23d32">nups</a>) 
<a name="l00161"></a>00161   <a class="code" href="ldebug_8c.html#5ef43f05a00bde7ee94539f3d765789c">luaG_runerror</a>(S-&gt;<a class="code" href="structLoadState.html#8eabd10510332ab5eaf5244bb347bac2">L</a>,<span class="stringliteral">"bad nupvalues in %s: read %d; expected %d"</span>,
<a name="l00162"></a>00162                 S-&gt;<a class="code" href="structLoadState.html#0cd70a73d5f61472258ebb5256abbaef">name</a>,n,f-&gt;<a class="code" href="structProto.html#e20e9996154a89085ac03eaaf8f23d32">nups</a>);
<a name="l00163"></a>00163  f-&gt;<a class="code" href="structProto.html#bebc63aea579a1b630efc04d2bf9c4b7">upvalues</a>=<a class="code" href="lmem_8h.html#715cc368a85506c7a104cda58f270f3e">luaM_newvector</a>(S-&gt;<a class="code" href="structLoadState.html#8eabd10510332ab5eaf5244bb347bac2">L</a>,n,<a class="code" href="unionTString.html">TString</a>*);
<a name="l00164"></a>00164  f-&gt;<a class="code" href="structProto.html#6ecec897497ba7d94df6ef69289ef5c0">sizeupvalues</a>=n;
<a name="l00165"></a>00165  <span class="keywordflow">for</span> (i=0; i&lt;n; i++) f-&gt;<a class="code" href="structProto.html#bebc63aea579a1b630efc04d2bf9c4b7">upvalues</a>[i]=<a class="code" href="lundump_8c.html#bfe7dabe70bd14e27d54d3cedc6cb70a">LoadString</a>(S);
<a name="l00166"></a>00166 }
<a name="l00167"></a>00167 
<a name="l00168"></a>00168 <span class="comment">/*@null@*/</span>
<a name="l00169"></a>00169 <span class="keyword">static</span> <a class="code" href="structProto.html">Proto</a>* <a class="code" href="lundump_8c.html#a2ec0217055b726cb4173c8205bb9cdb">LoadFunction</a> (<a class="code" href="structLoadState.html">LoadState</a>* S, <span class="comment">/*@null@*/</span> <a class="code" href="unionTString.html">TString</a>* p)
<a name="l00170"></a>00170         <span class="comment">/*@modifies S @*/</span>;
<a name="l00171"></a>00171 
<a name="l00172"></a><a class="code" href="lundump_8c.html#1854dcefef99e90599873a480c49da5f">00172</a> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="lundump_8c.html#1854dcefef99e90599873a480c49da5f">LoadConstants</a> (<a class="code" href="structLoadState.html">LoadState</a>* S, <a class="code" href="structProto.html">Proto</a>* f)
<a name="l00173"></a>00173         <span class="comment">/*@modifies S, f @*/</span>
<a name="l00174"></a>00174 {
<a name="l00175"></a>00175  <span class="keywordtype">int</span> i,n;
<a name="l00176"></a>00176  n=<a class="code" href="lundump_8c.html#9f0e8462baca39c1599c55689ab68d49">LoadInt</a>(S);
<a name="l00177"></a>00177  f-&gt;<a class="code" href="structProto.html#f379e777efa031186320f7e90c14f8c9">k</a>=<a class="code" href="lmem_8h.html#715cc368a85506c7a104cda58f270f3e">luaM_newvector</a>(S-&gt;<a class="code" href="structLoadState.html#8eabd10510332ab5eaf5244bb347bac2">L</a>,n,<a class="code" href="structlua__TObject.html">TObject</a>);
<a name="l00178"></a>00178  f-&gt;<a class="code" href="structProto.html#5bd719e0486168f6ecd4b01bf41a7444">sizek</a>=n;
<a name="l00179"></a>00179  <span class="keywordflow">for</span> (i=0; i&lt;n; i++)
<a name="l00180"></a>00180  {
<a name="l00181"></a>00181   <a class="code" href="structlua__TObject.html">TObject</a>* o=&amp;f-&gt;<a class="code" href="structProto.html#f379e777efa031186320f7e90c14f8c9">k</a>[i];
<a name="l00182"></a>00182   <span class="keywordtype">int</span> t=<a class="code" href="lundump_8c.html#7908bb9dbffbaec17f12214871eaf4a7">LoadByte</a>(S);
<a name="l00183"></a>00183   <span class="keywordflow">switch</span> (t)
<a name="l00184"></a>00184   {
<a name="l00185"></a>00185    <span class="keywordflow">case</span> LUA_TNUMBER:
<a name="l00186"></a>00186         <a class="code" href="lobject_8h.html#6e4ca2bc0025d5b310e7a78f3ac04fcc">setnvalue</a>(o,<a class="code" href="lundump_8c.html#373560dc80f918430160b6aefdd690af">LoadNumber</a>(S));
<a name="l00187"></a>00187         <span class="keywordflow">break</span>;
<a name="l00188"></a>00188    <span class="keywordflow">case</span> LUA_TSTRING:
<a name="l00189"></a>00189         <a class="code" href="lobject_8h.html#a7a9ab918b0322fa100f3f7af16d2375">setsvalue2n</a>(o,<a class="code" href="lundump_8c.html#bfe7dabe70bd14e27d54d3cedc6cb70a">LoadString</a>(S));
<a name="l00190"></a>00190         <span class="keywordflow">break</span>;
<a name="l00191"></a>00191    <span class="keywordflow">case</span> LUA_TNIL:
<a name="l00192"></a>00192         <a class="code" href="lobject_8h.html#d9034def7bbc1965ec3d714d84620b07">setnilvalue</a>(o);
<a name="l00193"></a>00193         <span class="keywordflow">break</span>;
<a name="l00194"></a>00194    <span class="keywordflow">default</span>:
<a name="l00195"></a>00195         <a class="code" href="ldebug_8c.html#5ef43f05a00bde7ee94539f3d765789c">luaG_runerror</a>(S-&gt;<a class="code" href="structLoadState.html#8eabd10510332ab5eaf5244bb347bac2">L</a>,<span class="stringliteral">"bad constant type (%d) in %s"</span>,t,S-&gt;<a class="code" href="structLoadState.html#0cd70a73d5f61472258ebb5256abbaef">name</a>);
<a name="l00196"></a>00196         <span class="keywordflow">break</span>;
<a name="l00197"></a>00197   }
<a name="l00198"></a>00198  }
<a name="l00199"></a>00199  n=<a class="code" href="lundump_8c.html#9f0e8462baca39c1599c55689ab68d49">LoadInt</a>(S);
<a name="l00200"></a>00200  f-&gt;<a class="code" href="structProto.html#54dc8e2e8973007794fa0ab0e4a71461">p</a>=<a class="code" href="lmem_8h.html#715cc368a85506c7a104cda58f270f3e">luaM_newvector</a>(S-&gt;<a class="code" href="structLoadState.html#8eabd10510332ab5eaf5244bb347bac2">L</a>,n,<a class="code" href="structProto.html">Proto</a>*);
<a name="l00201"></a>00201  f-&gt;<a class="code" href="structProto.html#73ddad1a18b7c46be46ec32aa2a08632">sizep</a>=n;
<a name="l00202"></a>00202  <span class="keywordflow">for</span> (i=0; i&lt;n; i++) f-&gt;<a class="code" href="structProto.html#54dc8e2e8973007794fa0ab0e4a71461">p</a>[i]=<a class="code" href="lundump_8c.html#a2ec0217055b726cb4173c8205bb9cdb">LoadFunction</a>(S,f-&gt;<a class="code" href="structProto.html#92b6ec319e7aa1ee8b8ff7807353ad96">source</a>);
<a name="l00203"></a>00203 }
<a name="l00204"></a>00204 
<a name="l00205"></a><a class="code" href="lundump_8c.html#a2ec0217055b726cb4173c8205bb9cdb">00205</a> <span class="keyword">static</span> <a class="code" href="structProto.html">Proto</a>* <a class="code" href="lundump_8c.html#a2ec0217055b726cb4173c8205bb9cdb">LoadFunction</a> (<a class="code" href="structLoadState.html">LoadState</a>* S, <a class="code" href="unionTString.html">TString</a>* p)
<a name="l00206"></a>00206         <span class="comment">/*@modifies S @*/</span>
<a name="l00207"></a>00207 {
<a name="l00208"></a>00208  <a class="code" href="structProto.html">Proto</a>* f=<a class="code" href="lfunc_8c.html#4ffd9d8ef515a7f785d007de7ceb9e4f">luaF_newproto</a>(S-&gt;<a class="code" href="structLoadState.html#8eabd10510332ab5eaf5244bb347bac2">L</a>);
<a name="l00209"></a>00209  f-&gt;<a class="code" href="structProto.html#92b6ec319e7aa1ee8b8ff7807353ad96">source</a>=<a class="code" href="lundump_8c.html#bfe7dabe70bd14e27d54d3cedc6cb70a">LoadString</a>(S); <span class="keywordflow">if</span> (f-&gt;<a class="code" href="structProto.html#92b6ec319e7aa1ee8b8ff7807353ad96">source</a>==NULL) f-&gt;<a class="code" href="structProto.html#92b6ec319e7aa1ee8b8ff7807353ad96">source</a>=p;
<a name="l00210"></a>00210  f-&gt;<a class="code" href="structProto.html#03213e8977769a6c465e3f47028f0de0">lineDefined</a>=<a class="code" href="lundump_8c.html#9f0e8462baca39c1599c55689ab68d49">LoadInt</a>(S);
<a name="l00211"></a>00211  f-&gt;<a class="code" href="structProto.html#e20e9996154a89085ac03eaaf8f23d32">nups</a>=<a class="code" href="lundump_8c.html#7908bb9dbffbaec17f12214871eaf4a7">LoadByte</a>(S);
<a name="l00212"></a>00212  f-&gt;<a class="code" href="structProto.html#3f106f177af6c68ffd8b042713266b98">numparams</a>=<a class="code" href="lundump_8c.html#7908bb9dbffbaec17f12214871eaf4a7">LoadByte</a>(S);
<a name="l00213"></a>00213  f-&gt;<a class="code" href="structProto.html#82302f2e9040b681d5b34c1239dcd673">is_vararg</a>=<a class="code" href="lundump_8c.html#7908bb9dbffbaec17f12214871eaf4a7">LoadByte</a>(S);
<a name="l00214"></a>00214  f-&gt;<a class="code" href="structProto.html#9c9ed4e9d996233f75cdf56b912e4803">maxstacksize</a>=<a class="code" href="lundump_8c.html#7908bb9dbffbaec17f12214871eaf4a7">LoadByte</a>(S);
<a name="l00215"></a>00215  <a class="code" href="lundump_8c.html#34c52c2d39df2bef9b7079f512e0ed78">LoadLines</a>(S,f);
<a name="l00216"></a>00216  <a class="code" href="lundump_8c.html#57a7bd17cb90a2aa3ca5c0e3dcd559bf">LoadLocals</a>(S,f);
<a name="l00217"></a>00217  <a class="code" href="lundump_8c.html#841d820b1d5922371773399d275dfe42">LoadUpvalues</a>(S,f);
<a name="l00218"></a>00218  <a class="code" href="lundump_8c.html#1854dcefef99e90599873a480c49da5f">LoadConstants</a>(S,f);
<a name="l00219"></a>00219  <a class="code" href="lundump_8c.html#df31b58c8223f0aaed42909670403b2d">LoadCode</a>(S,f);
<a name="l00220"></a>00220 <span class="preprocessor">#ifndef TRUST_BINARIES</span>
<a name="l00221"></a>00221 <span class="preprocessor"></span> <span class="keywordflow">if</span> (!<a class="code" href="ldebug_8c.html#1abb4dc97c40ac34a3a1de5fca70f7c2">luaG_checkcode</a>(f)) <a class="code" href="ldebug_8c.html#5ef43f05a00bde7ee94539f3d765789c">luaG_runerror</a>(S-&gt;<a class="code" href="structLoadState.html#8eabd10510332ab5eaf5244bb347bac2">L</a>,<span class="stringliteral">"bad code in %s"</span>,S-&gt;<a class="code" href="structLoadState.html#0cd70a73d5f61472258ebb5256abbaef">name</a>);
<a name="l00222"></a>00222 <span class="preprocessor">#endif</span>
<a name="l00223"></a>00223 <span class="preprocessor"></span> <span class="keywordflow">return</span> f;
<a name="l00224"></a>00224 }
<a name="l00225"></a>00225 
<a name="l00226"></a><a class="code" href="lundump_8c.html#368cffced5612a5336d34ea39a76c5c6">00226</a> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="lundump_8c.html#368cffced5612a5336d34ea39a76c5c6">LoadSignature</a> (<a class="code" href="structLoadState.html">LoadState</a>* S)
<a name="l00227"></a>00227         <span class="comment">/*@modifies S @*/</span>
<a name="l00228"></a>00228 {
<a name="l00229"></a>00229  <span class="keyword">const</span> <span class="keywordtype">char</span>* s=<a class="code" href="lundump_8h.html#f21c9fa681dc005c17a7b288882cae1b">LUA_SIGNATURE</a>;
<a name="l00230"></a>00230  <span class="keywordflow">while</span> (*s!=0 &amp;&amp; <a class="code" href="lundump_8c.html#43856e553f81fcbb12fd97e39b6904b4">ezgetc</a>(S)==*s)
<a name="l00231"></a>00231   ++s;
<a name="l00232"></a>00232  <span class="keywordflow">if</span> (*s!=0) <a class="code" href="ldebug_8c.html#5ef43f05a00bde7ee94539f3d765789c">luaG_runerror</a>(S-&gt;<a class="code" href="structLoadState.html#8eabd10510332ab5eaf5244bb347bac2">L</a>,<span class="stringliteral">"bad signature in %s"</span>,S-&gt;<a class="code" href="structLoadState.html#0cd70a73d5f61472258ebb5256abbaef">name</a>);
<a name="l00233"></a>00233 }
<a name="l00234"></a>00234 
<a name="l00235"></a><a class="code" href="lundump_8c.html#23040af5ac87dda9caff5fa49d8eaabf">00235</a> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="lundump_8c.html#23040af5ac87dda9caff5fa49d8eaabf">TestSize</a> (<a class="code" href="structLoadState.html">LoadState</a>* S, <span class="keywordtype">int</span> s, <span class="keyword">const</span> <span class="keywordtype">char</span>* what)
<a name="l00236"></a>00236         <span class="comment">/*@modifies S @*/</span>
<a name="l00237"></a>00237 {
<a name="l00238"></a>00238  <span class="keywordtype">int</span> r=<a class="code" href="lundump_8c.html#7908bb9dbffbaec17f12214871eaf4a7">LoadByte</a>(S);
<a name="l00239"></a>00239  <span class="keywordflow">if</span> (r!=s)
<a name="l00240"></a>00240   <a class="code" href="ldebug_8c.html#5ef43f05a00bde7ee94539f3d765789c">luaG_runerror</a>(S-&gt;<a class="code" href="structLoadState.html#8eabd10510332ab5eaf5244bb347bac2">L</a>,<span class="stringliteral">"virtual machine mismatch in %s: "</span>
<a name="l00241"></a>00241         <span class="stringliteral">"size of %s is %d but read %d"</span>,S-&gt;<a class="code" href="structLoadState.html#0cd70a73d5f61472258ebb5256abbaef">name</a>,what,s,r);
<a name="l00242"></a>00242 }
<a name="l00243"></a>00243 
<a name="l00244"></a><a class="code" href="lundump_8c.html#a744c1dfc31d789ef42abb353f4e5a65">00244</a> <span class="preprocessor">#define TESTSIZE(s,w)   TestSize(S,s,w)</span>
<a name="l00245"></a><a class="code" href="lundump_8c.html#84f7b4da06203ed9c0b553c33a5281af">00245</a> <span class="preprocessor"></span><span class="preprocessor">#define V(v)            v/16,v%16</span>
<a name="l00246"></a>00246 <span class="preprocessor"></span>
<a name="l00247"></a><a class="code" href="lundump_8c.html#070311f1203a7633e63ee83a444c5168">00247</a> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="lundump_8c.html#070311f1203a7633e63ee83a444c5168">LoadHeader</a> (<a class="code" href="structLoadState.html">LoadState</a>* S)
<a name="l00248"></a>00248         <span class="comment">/*@modifies S @*/</span>
<a name="l00249"></a>00249 {
<a name="l00250"></a>00250  <span class="keywordtype">int</span> version;
<a name="l00251"></a>00251  lua_Number x,tx=<a class="code" href="lundump_8h.html#35abb4506b62c5d6869471ca175795b2">TEST_NUMBER</a>;
<a name="l00252"></a>00252  <a class="code" href="lundump_8c.html#368cffced5612a5336d34ea39a76c5c6">LoadSignature</a>(S);
<a name="l00253"></a>00253  version=<a class="code" href="lundump_8c.html#7908bb9dbffbaec17f12214871eaf4a7">LoadByte</a>(S);
<a name="l00254"></a>00254  <span class="keywordflow">if</span> (version&gt;<a class="code" href="config_8h.html#1c6d5de492ac61ad29aec7aa9a436bbf">VERSION</a>)
<a name="l00255"></a>00255   <a class="code" href="ldebug_8c.html#5ef43f05a00bde7ee94539f3d765789c">luaG_runerror</a>(S-&gt;<a class="code" href="structLoadState.html#8eabd10510332ab5eaf5244bb347bac2">L</a>,<span class="stringliteral">"%s too new: "</span>
<a name="l00256"></a>00256         <span class="stringliteral">"read version %d.%d; expected at most %d.%d"</span>,
<a name="l00257"></a>00257         S-&gt;<a class="code" href="structLoadState.html#0cd70a73d5f61472258ebb5256abbaef">name</a>,<a class="code" href="lundump_8c.html#84f7b4da06203ed9c0b553c33a5281af">V</a>(version),<a class="code" href="lundump_8c.html#84f7b4da06203ed9c0b553c33a5281af">V</a>(<a class="code" href="config_8h.html#1c6d5de492ac61ad29aec7aa9a436bbf">VERSION</a>));
<a name="l00258"></a>00258  <span class="keywordflow">if</span> (version&lt;<a class="code" href="lundump_8h.html#8b417f7f88b76c9ecdf023af87dcc61f">VERSION0</a>)                          <span class="comment">/* check last major change */</span>
<a name="l00259"></a>00259   <a class="code" href="ldebug_8c.html#5ef43f05a00bde7ee94539f3d765789c">luaG_runerror</a>(S-&gt;<a class="code" href="structLoadState.html#8eabd10510332ab5eaf5244bb347bac2">L</a>,<span class="stringliteral">"%s too old: "</span>
<a name="l00260"></a>00260         <span class="stringliteral">"read version %d.%d; expected at least %d.%d"</span>,
<a name="l00261"></a>00261         S-&gt;<a class="code" href="structLoadState.html#0cd70a73d5f61472258ebb5256abbaef">name</a>,<a class="code" href="lundump_8c.html#84f7b4da06203ed9c0b553c33a5281af">V</a>(version),<a class="code" href="lundump_8c.html#84f7b4da06203ed9c0b553c33a5281af">V</a>(<a class="code" href="lundump_8h.html#8b417f7f88b76c9ecdf023af87dcc61f">VERSION0</a>));
<a name="l00262"></a>00262  S-&gt;<a class="code" href="structLoadState.html#69fbfe0112069fb8615c21e74ca18b14">swap</a>=(<a class="code" href="lundump_8c.html#c949528aad686cfe9f0844bcecb436cc">luaU_endianness</a>()!=<a class="code" href="lundump_8c.html#7908bb9dbffbaec17f12214871eaf4a7">LoadByte</a>(S));      <span class="comment">/* need to swap bytes? */</span>
<a name="l00263"></a>00263  <a class="code" href="lundump_8c.html#a744c1dfc31d789ef42abb353f4e5a65">TESTSIZE</a>(<span class="keyword">sizeof</span>(<span class="keywordtype">int</span>),<span class="stringliteral">"int"</span>);
<a name="l00264"></a>00264  <a class="code" href="lundump_8c.html#a744c1dfc31d789ef42abb353f4e5a65">TESTSIZE</a>(<span class="keyword">sizeof</span>(size_t), <span class="stringliteral">"size_t"</span>);
<a name="l00265"></a>00265  <a class="code" href="lundump_8c.html#a744c1dfc31d789ef42abb353f4e5a65">TESTSIZE</a>(<span class="keyword">sizeof</span>(<a class="code" href="llimits_8h.html#f6c47c68c1e6b0387c915031e0e681e3">Instruction</a>), <span class="stringliteral">"Instruction"</span>);
<a name="l00266"></a>00266  <a class="code" href="lundump_8c.html#a744c1dfc31d789ef42abb353f4e5a65">TESTSIZE</a>(<a class="code" href="lopcodes_8h.html#4c1d995d13200130d713c6dc5e223c13">SIZE_OP</a>, <span class="stringliteral">"OP"</span>);
<a name="l00267"></a>00267  <a class="code" href="lundump_8c.html#a744c1dfc31d789ef42abb353f4e5a65">TESTSIZE</a>(<a class="code" href="lopcodes_8h.html#205e8f662c5b2496cb7d9e7aa37cda90">SIZE_A</a>, <span class="stringliteral">"A"</span>);
<a name="l00268"></a>00268  <a class="code" href="lundump_8c.html#a744c1dfc31d789ef42abb353f4e5a65">TESTSIZE</a>(<a class="code" href="lopcodes_8h.html#c8795820709810bf0baf1660341cacc2">SIZE_B</a>, <span class="stringliteral">"B"</span>);
<a name="l00269"></a>00269  <a class="code" href="lundump_8c.html#a744c1dfc31d789ef42abb353f4e5a65">TESTSIZE</a>(<a class="code" href="lopcodes_8h.html#5f42703bf77b09689626ca8cf3fc5fc1">SIZE_C</a>, <span class="stringliteral">"C"</span>);
<a name="l00270"></a>00270  <a class="code" href="lundump_8c.html#a744c1dfc31d789ef42abb353f4e5a65">TESTSIZE</a>(<span class="keyword">sizeof</span>(lua_Number), <span class="stringliteral">"number"</span>);
<a name="l00271"></a>00271  x=<a class="code" href="lundump_8c.html#373560dc80f918430160b6aefdd690af">LoadNumber</a>(S);
<a name="l00272"></a>00272  <span class="keywordflow">if</span> ((<span class="keywordtype">long</span>)x!=(<span class="keywordtype">long</span>)tx)         <span class="comment">/* disregard errors in last bits of fraction */</span>
<a name="l00273"></a>00273   <a class="code" href="ldebug_8c.html#5ef43f05a00bde7ee94539f3d765789c">luaG_runerror</a>(S-&gt;<a class="code" href="structLoadState.html#8eabd10510332ab5eaf5244bb347bac2">L</a>,<span class="stringliteral">"unknown number format in %s"</span>,S-&gt;<a class="code" href="structLoadState.html#0cd70a73d5f61472258ebb5256abbaef">name</a>);
<a name="l00274"></a>00274 }
<a name="l00275"></a>00275 
<a name="l00276"></a>00276 <span class="comment">/*@null@*/</span>
<a name="l00277"></a><a class="code" href="lundump_8c.html#4258812e348410945b5357f2f06491d3">00277</a> <span class="keyword">static</span> <a class="code" href="structProto.html">Proto</a>* <a class="code" href="lundump_8c.html#4258812e348410945b5357f2f06491d3">LoadChunk</a> (<a class="code" href="structLoadState.html">LoadState</a>* S)
<a name="l00278"></a>00278         <span class="comment">/*@modifies S @*/</span>
<a name="l00279"></a>00279 {
<a name="l00280"></a>00280  <a class="code" href="lundump_8c.html#070311f1203a7633e63ee83a444c5168">LoadHeader</a>(S);
<a name="l00281"></a>00281  <span class="keywordflow">return</span> <a class="code" href="lundump_8c.html#a2ec0217055b726cb4173c8205bb9cdb">LoadFunction</a>(S,NULL);
<a name="l00282"></a>00282 }
<a name="l00283"></a>00283 
<a name="l00284"></a>00284 <span class="comment">/*</span>
<a name="l00285"></a>00285 <span class="comment">** load precompiled chunk</span>
<a name="l00286"></a>00286 <span class="comment">*/</span>
<a name="l00287"></a><a class="code" href="lundump_8h.html#d299768fa7e250292e84050f01cadf5a">00287</a> <a class="code" href="structProto.html">Proto</a>* <a class="code" href="lundump_8c.html#d299768fa7e250292e84050f01cadf5a">luaU_undump</a> (<a class="code" href="structlua__State.html">lua_State</a>* L, <a class="code" href="structZio.html">ZIO</a>* Z, <a class="code" href="structMbuffer.html">Mbuffer</a>* buff)
<a name="l00288"></a>00288 {
<a name="l00289"></a>00289  <a class="code" href="structLoadState.html">LoadState</a> S;
<a name="l00290"></a>00290  <span class="keyword">const</span> <span class="keywordtype">char</span>* s=<a class="code" href="lzio_8h.html#d81465e122c5123ac5e57652f2148167">zname</a>(Z);
<a name="l00291"></a>00291  <span class="keywordflow">if</span> (*s==<span class="charliteral">'@'</span> || *s==<span class="charliteral">'='</span>)
<a name="l00292"></a>00292   S.<a class="code" href="structLoadState.html#0cd70a73d5f61472258ebb5256abbaef">name</a>=s+1;
<a name="l00293"></a>00293  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (*s==<a class="code" href="lundump_8h.html#f21c9fa681dc005c17a7b288882cae1b">LUA_SIGNATURE</a>[0])
<a name="l00294"></a>00294   S.<a class="code" href="structLoadState.html#0cd70a73d5f61472258ebb5256abbaef">name</a>=<span class="stringliteral">"binary string"</span>;
<a name="l00295"></a>00295  <span class="keywordflow">else</span>
<a name="l00296"></a>00296   S.<a class="code" href="structLoadState.html#0cd70a73d5f61472258ebb5256abbaef">name</a>=s;
<a name="l00297"></a>00297  S.<a class="code" href="structLoadState.html#8eabd10510332ab5eaf5244bb347bac2">L</a>=L;
<a name="l00298"></a>00298  S.<a class="code" href="structLoadState.html#53f2d5fa2c176bdf96701c983afb8182">Z</a>=Z;
<a name="l00299"></a>00299  S.<a class="code" href="structLoadState.html#6f7641cccb52a4df4b55890dee8dcbc8">b</a>=buff;
<a name="l00300"></a>00300  <span class="keywordflow">return</span> <a class="code" href="lundump_8c.html#4258812e348410945b5357f2f06491d3">LoadChunk</a>(&amp;S);
<a name="l00301"></a>00301 }
<a name="l00302"></a>00302 
<a name="l00303"></a>00303 <span class="comment">/*</span>
<a name="l00304"></a>00304 <span class="comment">** find byte order</span>
<a name="l00305"></a>00305 <span class="comment">*/</span>
<a name="l00306"></a><a class="code" href="lundump_8h.html#c949528aad686cfe9f0844bcecb436cc">00306</a> <span class="keywordtype">int</span> <a class="code" href="lundump_8c.html#c949528aad686cfe9f0844bcecb436cc">luaU_endianness</a> (<span class="keywordtype">void</span>)
<a name="l00307"></a>00307 {
<a name="l00308"></a>00308  <span class="keywordtype">int</span> x=1;
<a name="l00309"></a>00309  <span class="keywordflow">return</span> *(<span class="keywordtype">char</span>*)&amp;x;
<a name="l00310"></a>00310 }
</pre></div><hr size="1"><address style="align: right;"><small>Generated on 1 Oct 2013 for rpm by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
</body>
</html>