📁 File Manager Pro
v10.0.3 | PHP: 8.1.34
Server: Apache
2026-06-22 03:33:12
📂
/ (Root)
/
opt
/
alt
/
ruby19
/
share
/
doc
/
ruby
/
html
/
de
/
de9
📍 /opt/alt/ruby19/share/doc/ruby/html/de/de9
🔄 Refresh
✏️
Editing: vm_8c_source.html
Read Only
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.14"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <title>Ruby: vm.c Source File</title> <link href="../../tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="../../jquery.js"></script> <script type="text/javascript" src="../../dynsections.js"></script> <link href="../../doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td id="projectalign" style="padding-left: 0.5em;"> <div id="projectname">Ruby  <span id="projectnumber">1.9.3p551(2014-11-13revision48407)</span> </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.14 --> <script type="text/javascript" src="../../menudata.js"></script> <script type="text/javascript" src="../../menu.js"></script> <script type="text/javascript"> /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ $(function() { initMenu('../../',false,false,'search.php','Search'); }); /* @license-end */</script> <div id="main-nav"></div> </div><!-- top --> <div class="header"> <div class="headertitle"> <div class="title">vm.c</div> </div> </div><!--header--> <div class="contents"> <a href="../../de/de9/vm_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/**********************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"></span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> vm.c -</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"></span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> $Author: usa $</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"></span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> Copyright (C) 2004-2007 Koichi Sasada</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"></span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">**********************************************************************/</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> </div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#include "<a class="code" href="../../de/de6/ruby_2ruby_8h.html">ruby/ruby.h</a>"</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include "<a class="code" href="../../da/d0a/vm_8h.html">ruby/vm.h</a>"</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include "<a class="code" href="../../dd/d24/st_8h.html">ruby/st.h</a>"</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include "<a class="code" href="../../d5/de3/encoding_8h.html">ruby/encoding.h</a>"</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include "<a class="code" href="../../db/dde/internal_8h.html">internal.h</a>"</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "<a class="code" href="../../d0/daa/gc_8h.html">gc.h</a>"</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "<a class="code" href="../../d8/d32/vm__core_8h.html">vm_core.h</a>"</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "<a class="code" href="../../d7/dc8/iseq_8h.html">iseq.h</a>"</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "<a class="code" href="../../dd/dd0/eval__intern_8h.html">eval_intern.h</a>"</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include "<a class="code" href="../../d2/d5f/vm__insnhelper_8h.html">vm_insnhelper.h</a>"</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include "<a class="code" href="../../d0/db2/vm__insnhelper_8c.html">vm_insnhelper.c</a>"</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include "<a class="code" href="../../d5/d4b/vm__exec_8h.html">vm_exec.h</a>"</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include "<a class="code" href="../../df/d38/vm__exec_8c.html">vm_exec.c</a>"</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "<a class="code" href="../../de/d63/vm__method_8c.html">vm_method.c</a>"</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "<a class="code" href="../../d3/d80/vm__eval_8c.html">vm_eval.c</a>"</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <assert.h></span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#aeca034f67218340ecb2261a22c2f3dcd"> 32</a></span> <span class="preprocessor">#define BUFSIZE 0x100</span></div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a750084962ee12011b63dd0b901058f71"> 33</a></span> <span class="preprocessor">#define PROCDEBUG 0</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a600dc9ffdba414e21dacfe809c4a9ec8"> 35</a></span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../de/de9/vm_8c.html#a600dc9ffdba414e21dacfe809c4a9ec8">rb_cRubyVM</a>;</div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#aade475ee7a5ceb8e727ec38287af0e95"> 36</a></span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../de/de9/vm_8c.html#aade475ee7a5ceb8e727ec38287af0e95">rb_cThread</a>;</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#ad55204994fe946dcd317061047845c3a"> 37</a></span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../de/de9/vm_8c.html#ad55204994fe946dcd317061047845c3a">rb_cEnv</a>;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a15744aab342112335b9189c8911ba625"> 38</a></span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../de/de9/vm_8c.html#a15744aab342112335b9189c8911ba625">rb_mRubyVMFrozenCore</a>;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="../../d2/d5f/vm__insnhelper_8h.html#a29d64659d230fbf7dc7326585cdaa8e5"> 40</a></span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../de/de9/vm_8c.html#a29d64659d230fbf7dc7326585cdaa8e5">ruby_vm_const_missing_count</a> = 0;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="../../d2/d5f/vm__insnhelper_8h.html#ae7ebc888013290c4c514a63794167a87"> 42</a></span> <span class="keywordtype">char</span> <a class="code" href="../../de/de9/vm_8c.html#ae7ebc888013290c4c514a63794167a87">ruby_vm_redefined_flag</a>[<a class="code" href="../../d2/d5f/vm__insnhelper_8h.html#aa618c4d8c29ef4efe6f10c741fb1f47aa234b86bd36a499b3fde775c6f4034108">BOP_LAST_</a>];</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a21823fe13ba76a2161c1b35286853e32"> 44</a></span> <a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *<a class="code" href="../../de/de9/vm_8c.html#a21823fe13ba76a2161c1b35286853e32">ruby_current_thread</a> = 0;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="../../d8/d32/vm__core_8h.html#a9be24d2deecfd3c43942e8c7cc4770a1"> 45</a></span> <a class="code" href="../../db/d74/structrb__vm__struct.html">rb_vm_t</a> *<a class="code" href="../../de/de9/vm_8c.html#a9be24d2deecfd3c43942e8c7cc4770a1">ruby_current_vm</a> = 0;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="../../de/de9/vm_8c.html#afa313ee08837bb9545102cd3f28d91a7">thread_free</a>(<span class="keywordtype">void</span> *ptr);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keywordtype">void</span> <a class="code" href="../../de/de9/vm_8c.html#a70b2fd040eae21f04d68a7a6f7ee1a05">vm_analysis_operand</a>(<span class="keywordtype">int</span> insn, <span class="keywordtype">int</span> n, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> op);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keywordtype">void</span> <a class="code" href="../../de/de9/vm_8c.html#a22af4689a1b73006b14a25502191cde5">vm_analysis_register</a>(<span class="keywordtype">int</span> reg, <span class="keywordtype">int</span> isset);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keywordtype">void</span> <a class="code" href="../../de/de9/vm_8c.html#aadc79f2891643166c13ed45e187396f2">vm_analysis_insn</a>(<span class="keywordtype">int</span> insn);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="comment">/*</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="comment"> * TODO: replace with better interface at the next release.</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="comment"> *</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="comment"> * these functions are exported just as a workaround for ruby-debug</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="comment"> * for the time being.</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="comment"> */</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <a class="code" href="../../d8/db0/defines_8h.html#ae8f8903fe59a574e940ed3e12de89fbe">RUBY_FUNC_EXPORTED</a> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../de/de9/vm_8c.html#a38087978d8bc36f8cd48b62b70b15000">rb_vm_make_env_object</a>(<a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th, <a class="code" href="../../dd/d84/structrb__control__frame__t.html">rb_control_frame_t</a> *cfp);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <a class="code" href="../../d8/db0/defines_8h.html#ae8f8903fe59a574e940ed3e12de89fbe">RUBY_FUNC_EXPORTED</a> <span class="keywordtype">int</span> <a class="code" href="../../de/de9/vm_8c.html#a70289cbb34babceed6243d9471e70e5f">rb_vm_get_sourceline</a>(<span class="keyword">const</span> <a class="code" href="../../dd/d84/structrb__control__frame__t.html">rb_control_frame_t</a> *cfp);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="../../d8/d32/vm__core_8h.html#a6fc04023a326c5129423edebf52894fd"> 63</a></span> <a class="code" href="../../de/de9/vm_8c.html#a6fc04023a326c5129423edebf52894fd">rb_vm_change_state</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> {</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <a class="code" href="../../d2/d5f/vm__insnhelper_8h.html#a8e91da0eaddd34a78c8f9c5207df8979">INC_VM_STATE_VERSION</a>();</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> }</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="../../de/de9/vm_8c.html#a6ac679a303e8be8dffedf08bc252a624">vm_clear_global_method_cache</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a7387e7f9d917b598fbda1ce48f6122c5"> 71</a></span> <a class="code" href="../../de/de9/vm_8c.html#a7387e7f9d917b598fbda1ce48f6122c5">vm_clear_all_inline_method_cache</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="comment">/* TODO: Clear all inline cache entries in all iseqs.</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="comment"> How to iterate all iseqs in sweep phase?</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="comment"> rb_objspace_each_objects() doesn't work at sweep phase.</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="comment"> */</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> }</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a2fa957ea281fa0f0ea74f4070cf04724"> 80</a></span> <a class="code" href="../../de/de9/vm_8c.html#a2fa957ea281fa0f0ea74f4070cf04724">vm_clear_all_cache</a>()</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span> {</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <a class="code" href="../../de/de9/vm_8c.html#a6ac679a303e8be8dffedf08bc252a624">vm_clear_global_method_cache</a>();</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <a class="code" href="../../de/de9/vm_8c.html#a7387e7f9d917b598fbda1ce48f6122c5">vm_clear_all_inline_method_cache</a>();</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <a class="code" href="../../d2/d5f/vm__insnhelper_8h.html#ac14920989929283916448dfe53244cec">ruby_vm_global_state_version</a> = 1;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span> }</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="../../d8/d32/vm__core_8h.html#aff09679bd9e7c102ed3e3c3c6c04e182"> 88</a></span> <a class="code" href="../../de/de9/vm_8c.html#aff09679bd9e7c102ed3e3c3c6c04e182">rb_vm_inc_const_missing_count</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> {</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <a class="code" href="../../de/de9/vm_8c.html#a29d64659d230fbf7dc7326585cdaa8e5">ruby_vm_const_missing_count</a> +=1;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span> }</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="comment">/* control stack frame */</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#aa8deb4813e5d237bb18713ddb5d98b74"> 96</a></span> <a class="code" href="../../de/de9/vm_8c.html#aa8deb4813e5d237bb18713ddb5d98b74">rb_vm_set_finish_env</a>(<a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> * th)</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> {</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <a class="code" href="../../d0/db2/vm__insnhelper_8c.html#a30340566da5743c4d660c8931dffd86e">vm_push_frame</a>(th, 0, <a class="code" href="../../d8/d32/vm__core_8h.html#a885c6468caef6c3de80b0ad6c50ae38d">VM_FRAME_MAGIC_FINISH</a>,</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>, th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#af3314cb37c8a27353101bf6f35574946">lfp</a>[0], 0,</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a29b331b150e5cae1e206cd87f892bad8">sp</a>, 0, 1);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a28b0b301811a891225ba9a58c412482d">pc</a> = (<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *)&<a class="code" href="../../df/d38/vm__exec_8c.html#a6f84f6d4b822e9b021a1e64cacf21847">finish_insn_seq</a>[0];</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keywordflow">return</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aacea3516b33941ce8149098e223a7466">Qtrue</a>;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span> }</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a835b4cd0571894b624a302e8d2b736de"> 106</a></span> <a class="code" href="../../de/de9/vm_8c.html#a835b4cd0571894b624a302e8d2b736de">vm_set_top_stack</a>(<a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> * th, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> iseqval)</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> {</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <a class="code" href="../../d6/de3/structrb__iseq__struct.html">rb_iseq_t</a> *iseq;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#a5e6a3515e0ad9b9d6a4c0ab577dc50b6">GetISeqPtr</a>(iseqval, iseq);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keywordflow">if</span> (iseq-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#af8bc7dbae6f61d836b5bb9fb50b6cfb8">type</a> != ISEQ_TYPE_TOP) {</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <a class="code" href="../../db/dcc/error_8c.html#a0f771a2840561f1838169b3d7d4616f3">rb_raise</a>(<a class="code" href="../../db/dcc/error_8c.html#a565ed9d70f4089e1b4a36e9b3381b8c6">rb_eTypeError</a>, <span class="stringliteral">"Not a toplevel InstructionSequence"</span>);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  }</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="comment">/* for return */</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <a class="code" href="../../de/de9/vm_8c.html#aa8deb4813e5d237bb18713ddb5d98b74">rb_vm_set_finish_env</a>(th);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <a class="code" href="../../d0/db2/vm__insnhelper_8c.html#a30340566da5743c4d660c8931dffd86e">vm_push_frame</a>(th, iseq, <a class="code" href="../../d8/d32/vm__core_8h.html#ac9390ef02c17a0bc7e3bd359264562c7">VM_FRAME_MAGIC_TOP</a>,</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#ac0ba34f711c43f831fe95e9a9434353f">top_self</a>, 0, iseq-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#aa70f3e195a4350acbbc130f8a95c9958">iseq_encoded</a>,</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a29b331b150e5cae1e206cd87f892bad8">sp</a>, 0, iseq-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#afbae994355f91f3ea547570debb757c0">local_size</a>);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <a class="code" href="../../dd/dd0/eval__intern_8h.html#a03427c07c33d15b934d5f9f4bcfb1c95">CHECK_STACK_OVERFLOW</a>(th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>, iseq-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#a00494b6f5b1aa350819cad777e19eee8">stack_max</a>);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span> }</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#aceae2e37af21e2228489afc5d0233103"> 126</a></span> <a class="code" href="../../de/de9/vm_8c.html#aceae2e37af21e2228489afc5d0233103">vm_set_eval_stack</a>(<a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> * th, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> iseqval, <span class="keyword">const</span> <a class="code" href="../../dd/de6/struct_r_node.html">NODE</a> *cref)</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span> {</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <a class="code" href="../../d6/de3/structrb__iseq__struct.html">rb_iseq_t</a> *iseq;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <a class="code" href="../../da/dc0/structrb__block__struct.html">rb_block_t</a> * <span class="keyword">const</span> block = th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#aad6cc8c9d9f511c12cca5af8c8aa6e77">base_block</a>;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#a5e6a3515e0ad9b9d6a4c0ab577dc50b6">GetISeqPtr</a>(iseqval, iseq);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="comment">/* for return */</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <a class="code" href="../../de/de9/vm_8c.html#aa8deb4813e5d237bb18713ddb5d98b74">rb_vm_set_finish_env</a>(th);</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <a class="code" href="../../d0/db2/vm__insnhelper_8c.html#a30340566da5743c4d660c8931dffd86e">vm_push_frame</a>(th, iseq, <a class="code" href="../../d8/d32/vm__core_8h.html#ac7b8d797cce488d08572c273f49f28fe">VM_FRAME_MAGIC_EVAL</a>, block-><a class="code" href="../../da/dc0/structrb__block__struct.html#ad54e1ec45ab21ef384fe9e4346570397">self</a>,</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#a4bc9fa804787db9db7ea5d698da9db9e">GC_GUARDED_PTR</a>(block-><a class="code" href="../../da/dc0/structrb__block__struct.html#ac3696ee534a836d6ccc55cdeb2181ac5">dfp</a>), iseq-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#aa70f3e195a4350acbbc130f8a95c9958">iseq_encoded</a>,</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a29b331b150e5cae1e206cd87f892bad8">sp</a>, block-><a class="code" href="../../da/dc0/structrb__block__struct.html#a834e1c9b35a06714deeb62097636564f">lfp</a>, iseq-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#afbae994355f91f3ea547570debb757c0">local_size</a>);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span> </div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="keywordflow">if</span> (cref) {</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#ac1cafd093e114d3ec99ebeca0ffeb048">dfp</a>[-1] = (<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a>)cref;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  }</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <a class="code" href="../../dd/dd0/eval__intern_8h.html#a03427c07c33d15b934d5f9f4bcfb1c95">CHECK_STACK_OVERFLOW</a>(th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>, iseq-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#a00494b6f5b1aa350819cad777e19eee8">stack_max</a>);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span> }</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span> </div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#aa938e139dcf9509037140019da6f4a47"> 146</a></span> <a class="code" href="../../de/de9/vm_8c.html#aa938e139dcf9509037140019da6f4a47">vm_set_main_stack</a>(<a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> iseqval)</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span> {</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> toplevel_binding = <a class="code" href="../../db/d2e/intern_8h.html#a17a81c1a7d754e5ab49fc4b4369b6c8c">rb_const_get</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a57c96ead3ef230b4838e65fe037c346e">rb_cObject</a>, <a class="code" href="../../dc/dcc/array_8c.html#a9cfa42d4b79c89d68c53be8b2150a503">rb_intern</a>(<span class="stringliteral">"TOPLEVEL_BINDING"</span>));</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <a class="code" href="../../d3/d76/structrb__binding__t.html">rb_binding_t</a> *bind;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <a class="code" href="../../d6/de3/structrb__iseq__struct.html">rb_iseq_t</a> *iseq;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <a class="code" href="../../d0/d73/structrb__env__t.html">rb_env_t</a> *<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span> </div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#a491d77ec5480e1530e447dbb42481f5b">GetBindingPtr</a>(toplevel_binding, bind);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#aaa39b3177aba775195d515b937ef78ff">GetEnvPtr</a>(bind-><a class="code" href="../../d3/d76/structrb__binding__t.html#a65f58a22eb376363f727c34b7fde7400">env</a>, <a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>);</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#aad6cc8c9d9f511c12cca5af8c8aa6e77">base_block</a> = &<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->block;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <a class="code" href="../../de/de9/vm_8c.html#aceae2e37af21e2228489afc5d0233103">vm_set_eval_stack</a>(th, iseqval, 0);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#aad6cc8c9d9f511c12cca5af8c8aa6e77">base_block</a> = 0;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span> </div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="comment">/* save binding */</span></div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#a5e6a3515e0ad9b9d6a4c0ab577dc50b6">GetISeqPtr</a>(iseqval, iseq);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="keywordflow">if</span> (bind && iseq-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#afbae994355f91f3ea547570debb757c0">local_size</a> > 0) {</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  bind-><a class="code" href="../../d3/d76/structrb__binding__t.html#a65f58a22eb376363f727c34b7fde7400">env</a> = <a class="code" href="../../de/de9/vm_8c.html#a38087978d8bc36f8cd48b62b70b15000">rb_vm_make_env_object</a>(th, th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  }</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span> </div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <a class="code" href="../../dd/dd0/eval__intern_8h.html#a03427c07c33d15b934d5f9f4bcfb1c95">CHECK_STACK_OVERFLOW</a>(th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>, iseq-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#a00494b6f5b1aa350819cad777e19eee8">stack_max</a>);</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span> }</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span> </div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <a class="code" href="../../dd/d84/structrb__control__frame__t.html">rb_control_frame_t</a> *</div><div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="../../d8/d32/vm__core_8h.html#a2709ccd7eeff81c0f749a7678223857e"> 169</a></span> <a class="code" href="../../de/de9/vm_8c.html#a2709ccd7eeff81c0f749a7678223857e">rb_vm_get_ruby_level_next_cfp</a>(<a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th, <a class="code" href="../../dd/d84/structrb__control__frame__t.html">rb_control_frame_t</a> *cfp)</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span> {</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keywordflow">while</span> (!<a class="code" href="../../d8/d32/vm__core_8h.html#ac3cef3df2cc03d3090ad49220cb453d5">RUBY_VM_CONTROL_FRAME_STACK_OVERFLOW_P</a>(th, cfp)) {</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d8/d32/vm__core_8h.html#a79d03ad9b9cf8b7a8ca2b849e495a74f">RUBY_VM_NORMAL_ISEQ_P</a>(cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4b25ca925a9f60481173632b9c09d4e0">iseq</a>)) {</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="keywordflow">return</span> cfp;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  }</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  cfp = <a class="code" href="../../d8/d32/vm__core_8h.html#af087c881c3c493e3a4e326852e8ed2a9">RUBY_VM_PREVIOUS_CONTROL_FRAME</a>(cfp);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  }</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span> }</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span> </div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="keyword">static</span> <a class="code" href="../../dd/d84/structrb__control__frame__t.html">rb_control_frame_t</a> *</div><div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a198b8bdfa01414239809443f0a7b2625"> 181</a></span> <a class="code" href="../../de/de9/vm_8c.html#a198b8bdfa01414239809443f0a7b2625">vm_get_ruby_level_caller_cfp</a>(<a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th, <a class="code" href="../../dd/d84/structrb__control__frame__t.html">rb_control_frame_t</a> *cfp)</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span> {</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d8/d32/vm__core_8h.html#a79d03ad9b9cf8b7a8ca2b849e495a74f">RUBY_VM_NORMAL_ISEQ_P</a>(cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4b25ca925a9f60481173632b9c09d4e0">iseq</a>)) {</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="keywordflow">return</span> cfp;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  }</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span> </div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  cfp = <a class="code" href="../../d8/d32/vm__core_8h.html#af087c881c3c493e3a4e326852e8ed2a9">RUBY_VM_PREVIOUS_CONTROL_FRAME</a>(cfp);</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span> </div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <span class="keywordflow">while</span> (!<a class="code" href="../../d8/d32/vm__core_8h.html#ac3cef3df2cc03d3090ad49220cb453d5">RUBY_VM_CONTROL_FRAME_STACK_OVERFLOW_P</a>(th, cfp)) {</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d8/d32/vm__core_8h.html#a79d03ad9b9cf8b7a8ca2b849e495a74f">RUBY_VM_NORMAL_ISEQ_P</a>(cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4b25ca925a9f60481173632b9c09d4e0">iseq</a>)) {</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="keywordflow">return</span> cfp;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  }</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span> </div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="keywordflow">if</span> ((cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a88144f455e4e42ff4379ab971f22cffc">flag</a> & <a class="code" href="../../d8/d32/vm__core_8h.html#a15218fe6d89c7897abd5a8ad8c9bc52f">VM_FRAME_FLAG_PASSED</a>) == 0) {</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  }</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  cfp = <a class="code" href="../../d8/d32/vm__core_8h.html#af087c881c3c493e3a4e326852e8ed2a9">RUBY_VM_PREVIOUS_CONTROL_FRAME</a>(cfp);</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  }</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span> }</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span> <span class="comment">/* at exit */</span></div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span> </div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#ae7ad8c359f6d89380dceca5a63bc2c48"> 205</a></span> <a class="code" href="../../de/de9/vm_8c.html#ae7ad8c359f6d89380dceca5a63bc2c48">ruby_vm_at_exit</a>(<span class="keywordtype">void</span> (*<a class="code" href="../../dc/dd1/ossl__ssl_8c.html#a86771351f4ef469ab9c94739a64fd7ea">func</a>)(<a class="code" href="../../db/d74/structrb__vm__struct.html">rb_vm_t</a> *))</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span> {</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <a class="code" href="../../dc/dcc/array_8c.html#a59d553a8cd781364b8bcb0deae25cca2">rb_ary_push</a>((<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a>)&<a class="code" href="../../d8/d32/vm__core_8h.html#a6cfcd3997994924c8cd13c3b5c099ec6">GET_VM</a>()-><a class="code" href="../../d5/d9d/tcltklib_8c.html#a0964f0f2c4ef2a9554392a5aaf13b032">at_exit</a>, (<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a>)<a class="code" href="../../dc/dd1/ossl__ssl_8c.html#a86771351f4ef469ab9c94739a64fd7ea">func</a>);</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span> }</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span> </div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#af41ce3aa993b8eb956d96a10060fdcca"> 211</a></span> <a class="code" href="../../de/de9/vm_8c.html#af41ce3aa993b8eb956d96a10060fdcca">ruby_vm_run_at_exit_hooks</a>(<a class="code" href="../../db/d74/structrb__vm__struct.html">rb_vm_t</a> *vm)</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span> {</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> hook = (<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a>)&vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#a328959223626113a5ceeb5638b5d9f8d">at_exit</a>;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span> </div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  while (<a class="code" href="../../d8/df4/generator_8h.html#ae988773ed219452578f881fc7189c486">RARRAY_LEN</a>(hook) > 0) {</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="keyword">typedef</span> <span class="keywordtype">void</span> rb_vm_at_exit_func(<a class="code" href="../../db/d74/structrb__vm__struct.html">rb_vm_t</a>*);</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  rb_vm_at_exit_func *<a class="code" href="../../dc/dd1/ossl__ssl_8c.html#a86771351f4ef469ab9c94739a64fd7ea">func</a> = (rb_vm_at_exit_func*)<a class="code" href="../../dc/dcc/array_8c.html#aacb1ec2239256ca2e537588fc534e7b8">rb_ary_pop</a>(hook);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  (*func)(vm);</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  }</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <a class="code" href="../../dc/dcc/array_8c.html#a5c6b248d971f78b215844c60cdb00020">rb_ary_free</a>(hook);</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span> }</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span> </div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span> <span class="comment">/* Env */</span></div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span> </div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span> <span class="comment">/*</span></div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span> <span class="comment"> env{</span></div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span> <span class="comment"> env[0] // special (block or prev env)</span></div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span> <span class="comment"> env[1] // env object</span></div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span> <span class="comment"> env[2] // prev env val</span></div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span> <span class="comment"> };</span></div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span> <span class="comment"> */</span></div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span> </div><div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a763a6b9c07ba29acc33611df4297f321"> 233</a></span> <span class="preprocessor">#define ENV_IN_HEAP_P(th, env) \</span></div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span> <span class="preprocessor"> (!((th)->stack < (env) && (env) < ((th)->stack + (th)->stack_size)))</span></div><div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a518d3ecb1212b2eea58b409fd4ace787"> 235</a></span> <span class="preprocessor">#define ENV_VAL(env) ((env)[1])</span></div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span> </div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#ae7481a42efe3169d09a302d1c6ffd38c"> 238</a></span> <a class="code" href="../../de/de9/vm_8c.html#ae7481a42efe3169d09a302d1c6ffd38c">env_mark</a>(<span class="keywordtype">void</span> * <span class="keyword">const</span> ptr)</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span> {</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <a class="code" href="../../d0/daa/gc_8h.html#a2aa4d10eb84bae94811007f68c795fb7">RUBY_MARK_ENTER</a>(<span class="stringliteral">"env"</span>);</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <span class="keywordflow">if</span> (ptr) {</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <span class="keyword">const</span> <a class="code" href="../../d0/d73/structrb__env__t.html">rb_env_t</a> * <span class="keyword">const</span> <a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a> = ptr;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span> </div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->env) {</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="comment">/* TODO: should mark more restricted range */</span></div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <a class="code" href="../../d0/daa/gc_8h.html#a634fb573223a0ffb428332fc45916fc6">RUBY_GC_INFO</a>(<span class="stringliteral">"env->env\n"</span>);</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <a class="code" href="../../d8/d16/gc_8c.html#a90e176b7e9d24053977f64a611c1d8bb">rb_gc_mark_locations</a>(<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->env, <a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->env + <a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->env_size);</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  }</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span> </div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <a class="code" href="../../d0/daa/gc_8h.html#a634fb573223a0ffb428332fc45916fc6">RUBY_GC_INFO</a>(<span class="stringliteral">"env->prev_envval\n"</span>);</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <a class="code" href="../../d0/daa/gc_8h.html#afad3c58fae104a867be4305d1f96414a">RUBY_MARK_UNLESS_NULL</a>(<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->prev_envval);</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <a class="code" href="../../d0/daa/gc_8h.html#afad3c58fae104a867be4305d1f96414a">RUBY_MARK_UNLESS_NULL</a>(<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->block.self);</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <a class="code" href="../../d0/daa/gc_8h.html#afad3c58fae104a867be4305d1f96414a">RUBY_MARK_UNLESS_NULL</a>(<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->block.proc);</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span> </div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->block.iseq) {</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <span class="keywordflow">if</span> (<a class="code" href="../../de/de6/ruby_2ruby_8h.html#aee74f540353cd2d77d1cb37a3714bd7d">BUILTIN_TYPE</a>(<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->block.iseq) == <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a5f1cc49c4da51d5bdffa64be79ff6fb0">T_NODE</a>) {</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <a class="code" href="../../d0/daa/gc_8h.html#afad3c58fae104a867be4305d1f96414a">RUBY_MARK_UNLESS_NULL</a>((<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a>)<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->block.iseq);</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  }</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <a class="code" href="../../d0/daa/gc_8h.html#afad3c58fae104a867be4305d1f96414a">RUBY_MARK_UNLESS_NULL</a>(<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->block.iseq->self);</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  }</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  }</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  }</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <a class="code" href="../../d0/daa/gc_8h.html#a036115d8c044f5c847e760c57b08e5a9">RUBY_MARK_LEAVE</a>(<span class="stringliteral">"env"</span>);</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span> }</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span> </div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00268"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#acb7274747d1f091bee63b471c7a81654"> 268</a></span> <a class="code" href="../../de/de9/vm_8c.html#acb7274747d1f091bee63b471c7a81654">env_free</a>(<span class="keywordtype">void</span> * <span class="keyword">const</span> ptr)</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span> {</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <a class="code" href="../../d0/daa/gc_8h.html#a5d959738efb454623a7dad84d728262a">RUBY_FREE_ENTER</a>(<span class="stringliteral">"env"</span>);</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <span class="keywordflow">if</span> (ptr) {</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <a class="code" href="../../d0/d73/structrb__env__t.html">rb_env_t</a> *<span class="keyword">const</span> <a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a> = ptr;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <a class="code" href="../../d0/daa/gc_8h.html#a904b1cd50d09d6c8ae915c78e425420a">RUBY_FREE_UNLESS_NULL</a>(<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->env);</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <a class="code" href="../../d8/d16/gc_8c.html#a0bffec5b2cc004adcebb6802e7620387">ruby_xfree</a>(ptr);</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  }</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <a class="code" href="../../d0/daa/gc_8h.html#af304d34de3474d75064e0cba170b7bf5">RUBY_FREE_LEAVE</a>(<span class="stringliteral">"env"</span>);</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span> }</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span> </div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span> <span class="keyword">static</span> <span class="keywordtype">size_t</span></div><div class="line"><a name="l00280"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a5e1259c3fa1d188528af5b535e3a7f00"> 280</a></span> <a class="code" href="../../de/de9/vm_8c.html#a5e1259c3fa1d188528af5b535e3a7f00">env_memsize</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *ptr)</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span> {</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <span class="keywordflow">if</span> (ptr) {</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <span class="keyword">const</span> <a class="code" href="../../d0/d73/structrb__env__t.html">rb_env_t</a> * <span class="keyword">const</span> <a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a> = ptr;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <span class="keywordtype">size_t</span> <a class="code" href="../../d5/db5/encoding_8c.html#a439227feff9d7f55384e8780cfc2eb82">size</a> = <span class="keyword">sizeof</span>(<a class="code" href="../../d0/d73/structrb__env__t.html">rb_env_t</a>);</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->env) {</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <a class="code" href="../../d5/db5/encoding_8c.html#a439227feff9d7f55384e8780cfc2eb82">size</a> += <a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->env_size * <span class="keyword">sizeof</span>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a>);</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  }</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <span class="keywordflow">return</span> <a class="code" href="../../d5/db5/encoding_8c.html#a439227feff9d7f55384e8780cfc2eb82">size</a>;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  }</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span> }</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span> </div><div class="line"><a name="l00293"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#ac09fe4b7c739818891e16b9b06110d87"> 293</a></span> <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="../../d7/de2/structrb__data__type__struct.html">rb_data_type_t</a> <a class="code" href="../../de/de9/vm_8c.html#ac09fe4b7c739818891e16b9b06110d87">env_data_type</a> = {</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <span class="stringliteral">"VM/env"</span>,</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  {<a class="code" href="../../de/de9/vm_8c.html#ae7481a42efe3169d09a302d1c6ffd38c">env_mark</a>, <a class="code" href="../../de/de9/vm_8c.html#acb7274747d1f091bee63b471c7a81654">env_free</a>, <a class="code" href="../../de/de9/vm_8c.html#a5e1259c3fa1d188528af5b535e3a7f00">env_memsize</a>,},</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span> };</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span> </div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span> <span class="keyword">static</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l00299"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a9f77b7ff2a4e6e64a9a1590f9b7219a7"> 299</a></span> <a class="code" href="../../de/de9/vm_8c.html#a9f77b7ff2a4e6e64a9a1590f9b7219a7">env_alloc</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span> {</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> obj;</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <a class="code" href="../../d0/d73/structrb__env__t.html">rb_env_t</a> *<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>;</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  obj = <a class="code" href="../../de/de6/ruby_2ruby_8h.html#acb14aa93d3dc60a9d16570270154e6fa">TypedData_Make_Struct</a>(<a class="code" href="../../de/de9/vm_8c.html#ad55204994fe946dcd317061047845c3a">rb_cEnv</a>, <a class="code" href="../../d0/d73/structrb__env__t.html">rb_env_t</a>, &<a class="code" href="../../de/de9/vm_8c.html#ac09fe4b7c739818891e16b9b06110d87">env_data_type</a>, <a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>);</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  <a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->env = 0;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->prev_envval = 0;</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->block.iseq = 0;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="keywordflow">return</span> obj;</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span> }</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span> </div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span> <span class="keyword">static</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../de/de9/vm_8c.html#ad686a96329c814869e6200edfac5107a">check_env_value</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> envval);</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span> </div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span> <span class="keyword">static</span> <span class="keywordtype">int</span></div><div class="line"><a name="l00313"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a32e6bd476abfda4d5fcca42de87ff4e2"> 313</a></span> <a class="code" href="../../de/de9/vm_8c.html#a32e6bd476abfda4d5fcca42de87ff4e2">check_env</a>(<a class="code" href="../../d0/d73/structrb__env__t.html">rb_env_t</a> * <span class="keyword">const</span> <a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>)</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span> {</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  printf(<span class="stringliteral">"---\n"</span>);</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  printf(<span class="stringliteral">"envptr: %p\n"</span>, (<span class="keywordtype">void</span> *)&<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->block.dfp[0]);</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  printf(<span class="stringliteral">"orphan: %p\n"</span>, (<span class="keywordtype">void</span> *)<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->block.dfp[1]);</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  printf(<span class="stringliteral">"inheap: %p\n"</span>, (<span class="keywordtype">void</span> *)<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->block.dfp[2]);</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  printf(<span class="stringliteral">"envval: %10p "</span>, (<span class="keywordtype">void</span> *)<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->block.dfp[3]);</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <a class="code" href="../../db/d16/debug_8h.html#a08a47aff6867e5ae146382e66d2cc26b">dp</a>(<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->block.dfp[3]);</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  printf(<span class="stringliteral">"penvv : %10p "</span>, (<span class="keywordtype">void</span> *)<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->block.dfp[4]);</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <a class="code" href="../../db/d16/debug_8h.html#a08a47aff6867e5ae146382e66d2cc26b">dp</a>(<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->block.dfp[4]);</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  printf(<span class="stringliteral">"lfp: %10p\n"</span>, (<span class="keywordtype">void</span> *)<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->block.lfp);</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  printf(<span class="stringliteral">"dfp: %10p\n"</span>, (<span class="keywordtype">void</span> *)<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->block.dfp);</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->block.dfp[4]) {</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  printf(<span class="stringliteral">">>\n"</span>);</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <a class="code" href="../../de/de9/vm_8c.html#ad686a96329c814869e6200edfac5107a">check_env_value</a>(<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->block.dfp[4]);</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  printf(<span class="stringliteral">"<<\n"</span>);</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  }</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span> }</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span> </div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span> <span class="keyword">static</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l00334"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#ad686a96329c814869e6200edfac5107a"> 334</a></span> <a class="code" href="../../de/de9/vm_8c.html#ad686a96329c814869e6200edfac5107a">check_env_value</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> envval)</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span> {</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <a class="code" href="../../d0/d73/structrb__env__t.html">rb_env_t</a> *<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>;</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#aaa39b3177aba775195d515b937ef78ff">GetEnvPtr</a>(envval, <a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>);</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span> </div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  <span class="keywordflow">if</span> (<a class="code" href="../../de/de9/vm_8c.html#a32e6bd476abfda4d5fcca42de87ff4e2">check_env</a>(<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>)) {</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  <span class="keywordflow">return</span> envval;</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  }</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <a class="code" href="../../db/dcc/error_8c.html#a2d5fb28e54f792e7341b2c45f52f3860">rb_bug</a>(<span class="stringliteral">"invalid env"</span>);</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <span class="keywordflow">return</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>; <span class="comment">/* unreachable */</span></div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span> }</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span> </div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span> <span class="keyword">static</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l00347"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a7920e56cee3ddd3b387cbe2d69b69544"> 347</a></span> <a class="code" href="../../de/de9/vm_8c.html#a7920e56cee3ddd3b387cbe2d69b69544">vm_make_env_each</a>(<a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> * <span class="keyword">const</span> th, <a class="code" href="../../dd/d84/structrb__control__frame__t.html">rb_control_frame_t</a> * <span class="keyword">const</span> cfp,</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *envptr, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> * <span class="keyword">const</span> endptr)</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span> {</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> envval, penvval = 0;</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  <a class="code" href="../../d0/d73/structrb__env__t.html">rb_env_t</a> *<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *nenvptr;</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  <span class="keywordtype">int</span> <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>, local_size;</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span> </div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <span class="keywordflow">if</span> (<a class="code" href="../../de/de9/vm_8c.html#a763a6b9c07ba29acc33611df4297f321">ENV_IN_HEAP_P</a>(th, envptr)) {</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <span class="keywordflow">return</span> <a class="code" href="../../de/de9/vm_8c.html#a518d3ecb1212b2eea58b409fd4ace787">ENV_VAL</a>(envptr);</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  }</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span> </div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  <span class="keywordflow">if</span> (envptr != endptr) {</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *penvptr = <a class="code" href="../../d8/d32/vm__core_8h.html#a373f1cafd944ff9e99986582d0fd695b">GC_GUARDED_PTR_REF</a>(*envptr);</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  <a class="code" href="../../dd/d84/structrb__control__frame__t.html">rb_control_frame_t</a> *pcfp = cfp;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span> </div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <span class="keywordflow">if</span> (<a class="code" href="../../de/de9/vm_8c.html#a763a6b9c07ba29acc33611df4297f321">ENV_IN_HEAP_P</a>(th, penvptr)) {</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  penvval = <a class="code" href="../../de/de9/vm_8c.html#a518d3ecb1212b2eea58b409fd4ace787">ENV_VAL</a>(penvptr);</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  }</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  <span class="keywordflow">while</span> (pcfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#ac1cafd093e114d3ec99ebeca0ffeb048">dfp</a> != penvptr) {</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  pcfp++;</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <span class="keywordflow">if</span> (pcfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#ac1cafd093e114d3ec99ebeca0ffeb048">dfp</a> == 0) {</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#ac33c371d81972685538097cb4f49181f">SDR</a>();</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <a class="code" href="../../db/dcc/error_8c.html#a2d5fb28e54f792e7341b2c45f52f3860">rb_bug</a>(<span class="stringliteral">"invalid dfp"</span>);</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  }</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  }</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  penvval = <a class="code" href="../../de/de9/vm_8c.html#a7920e56cee3ddd3b387cbe2d69b69544">vm_make_env_each</a>(th, pcfp, penvptr, endptr);</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#af3314cb37c8a27353101bf6f35574946">lfp</a> = pcfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#af3314cb37c8a27353101bf6f35574946">lfp</a>;</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  *envptr = <a class="code" href="../../d8/d32/vm__core_8h.html#a4bc9fa804787db9db7ea5d698da9db9e">GC_GUARDED_PTR</a>(pcfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#ac1cafd093e114d3ec99ebeca0ffeb048">dfp</a>);</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  }</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  }</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span> </div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <span class="comment">/* allocate env */</span></div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  envval = <a class="code" href="../../de/de9/vm_8c.html#a9f77b7ff2a4e6e64a9a1590f9b7219a7">env_alloc</a>();</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#aaa39b3177aba775195d515b937ef78ff">GetEnvPtr</a>(envval, <a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>);</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span> </div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  <span class="keywordflow">if</span> (!<a class="code" href="../../d8/d32/vm__core_8h.html#a79d03ad9b9cf8b7a8ca2b849e495a74f">RUBY_VM_NORMAL_ISEQ_P</a>(cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4b25ca925a9f60481173632b9c09d4e0">iseq</a>)) {</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  local_size = 2;</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  }</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  local_size = cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4b25ca925a9f60481173632b9c09d4e0">iseq</a>-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#afbae994355f91f3ea547570debb757c0">local_size</a>;</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  }</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span> </div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->env_size = local_size + 1 + 2;</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  <a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->local_size = local_size;</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  <a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->env = <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a79041aa2bc7439c11906a86f82a52eb6">ALLOC_N</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a>, <a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->env_size);</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  <a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->prev_envval = penvval;</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span> </div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  <span class="keywordflow">for</span> (<a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a> = 0; <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a> <= local_size; <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>++) {</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  <a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->env[<a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>] = envptr[-local_size + <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>];</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span> <span class="preprocessor">#if 0</span></div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  fprintf(stderr, <span class="stringliteral">"%2d "</span>, &envptr[-local_size + <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>] - th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a3fd7aab45a1c539bc9ca022acfc1ad51">stack</a>); <a class="code" href="../../db/d16/debug_8h.html#a08a47aff6867e5ae146382e66d2cc26b">dp</a>(<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->env[<a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>]);</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d8/d32/vm__core_8h.html#a79d03ad9b9cf8b7a8ca2b849e495a74f">RUBY_VM_NORMAL_ISEQ_P</a>(cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4b25ca925a9f60481173632b9c09d4e0">iseq</a>)) {</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  <span class="comment">/* clear value stack for GC */</span></div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  envptr[-local_size + <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>] = 0;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  }</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  }</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span> </div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  *envptr = envval; <span class="comment">/* GC mark */</span></div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  nenvptr = &<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->env[<a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a> - 1];</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  nenvptr[1] = envval; <span class="comment">/* frame self */</span></div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  nenvptr[2] = penvval; <span class="comment">/* frame prev env object */</span></div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span> </div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  <span class="comment">/* reset lfp/dfp in cfp */</span></div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#ac1cafd093e114d3ec99ebeca0ffeb048">dfp</a> = nenvptr;</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  <span class="keywordflow">if</span> (envptr == endptr) {</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#af3314cb37c8a27353101bf6f35574946">lfp</a> = nenvptr;</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  }</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span> </div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <span class="comment">/* as Binding */</span></div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->block.self = cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4c11a50358317e1207affd6d7b4ad576">self</a>;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->block.lfp = cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#af3314cb37c8a27353101bf6f35574946">lfp</a>;</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  <a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->block.dfp = cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#ac1cafd093e114d3ec99ebeca0ffeb048">dfp</a>;</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  <a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->block.iseq = cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4b25ca925a9f60481173632b9c09d4e0">iseq</a>;</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span> </div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  <span class="keywordflow">if</span> (!<a class="code" href="../../d8/d32/vm__core_8h.html#a79d03ad9b9cf8b7a8ca2b849e495a74f">RUBY_VM_NORMAL_ISEQ_P</a>(cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4b25ca925a9f60481173632b9c09d4e0">iseq</a>)) {</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  <span class="comment">/* TODO */</span></div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  <a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->block.iseq = 0;</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  }</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  <span class="keywordflow">return</span> envval;</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span> }</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span> </div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span> <span class="keyword">static</span> <span class="keywordtype">int</span></div><div class="line"><a name="l00432"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a16e2c046b4cf83df26232c0869ce7643"> 432</a></span> <a class="code" href="../../de/de9/vm_8c.html#a16e2c046b4cf83df26232c0869ce7643">collect_local_variables_in_iseq</a>(<a class="code" href="../../d6/de3/structrb__iseq__struct.html">rb_iseq_t</a> *iseq, <span class="keyword">const</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> ary)</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span> {</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  <span class="keywordtype">int</span> <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>;</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  <span class="keywordflow">if</span> (!iseq) <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  <span class="keywordflow">for</span> (<a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a> = 0; <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a> < iseq-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#a22ff1695f19e63e6540bc574949c55b0">local_table_size</a>; <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>++) {</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#afa5b9137f051ac26d7ccc8824f178233">ID</a> lid = iseq-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#a667787a2e393a8e2a203bf1c2442276d">local_table</a>[<a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>];</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d5/d11/ripper_8c.html#aed0d62fc21ec2baa9ae344fe3ff30668">rb_is_local_id</a>(lid)) {</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  <a class="code" href="../../dc/dcc/array_8c.html#a59d553a8cd781364b8bcb0deae25cca2">rb_ary_push</a>(ary, <a class="code" href="../../dc/d0c/cparse_8c.html#a48bfb6519a45249fb2ec0193ea3b6e1c">ID2SYM</a>(lid));</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  }</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  }</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span> }</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span> </div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span> <span class="keyword">static</span> <span class="keywordtype">int</span></div><div class="line"><a name="l00446"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a2290ee4bcece4d937e5e04cf65c1771c"> 446</a></span> <a class="code" href="../../de/de9/vm_8c.html#a2290ee4bcece4d937e5e04cf65c1771c">collect_local_variables_in_env</a>(<a class="code" href="../../d0/d73/structrb__env__t.html">rb_env_t</a> * <a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>, <span class="keyword">const</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> ary)</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span> {</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span> </div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <span class="keywordflow">while</span> (<a class="code" href="../../de/de9/vm_8c.html#a16e2c046b4cf83df26232c0869ce7643">collect_local_variables_in_iseq</a>(<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->block.iseq, ary),</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  <a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->prev_envval) {</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#aaa39b3177aba775195d515b937ef78ff">GetEnvPtr</a>(<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->prev_envval, <a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>);</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  }</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span> }</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span> </div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span> <span class="keyword">static</span> <span class="keywordtype">int</span></div><div class="line"><a name="l00457"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#af324cc69c6f1c3c72fa2b816615c6c80"> 457</a></span> <a class="code" href="../../de/de9/vm_8c.html#af324cc69c6f1c3c72fa2b816615c6c80">vm_collect_local_variables_in_heap</a>(<a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *dfp, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> ary)</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span> {</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  <span class="keywordflow">if</span> (<a class="code" href="../../de/de9/vm_8c.html#a763a6b9c07ba29acc33611df4297f321">ENV_IN_HEAP_P</a>(th, dfp)) {</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  <a class="code" href="../../d0/d73/structrb__env__t.html">rb_env_t</a> *<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>;</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#aaa39b3177aba775195d515b937ef78ff">GetEnvPtr</a>(<a class="code" href="../../de/de9/vm_8c.html#a518d3ecb1212b2eea58b409fd4ace787">ENV_VAL</a>(dfp), <a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>);</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  <a class="code" href="../../de/de9/vm_8c.html#a2290ee4bcece4d937e5e04cf65c1771c">collect_local_variables_in_env</a>(<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>, ary);</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  }</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  }</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span> }</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span> </div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span> <span class="keyword">static</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../de/de9/vm_8c.html#afbd004fdeff5b9e93c1a3792114f0be0">vm_make_proc_from_block</a>(<a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th, <a class="code" href="../../da/dc0/structrb__block__struct.html">rb_block_t</a> *block);</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span> <span class="keyword">static</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../de/de9/vm_8c.html#a3ddaf8dd022a2376d14fa8bff79e0a53">vm_make_env_object</a>(<a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> * th, <a class="code" href="../../dd/d84/structrb__control__frame__t.html">rb_control_frame_t</a> *cfp, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *blockprocptr);</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span> </div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l00474"></a><span class="lineno"><a class="line" href="../../d8/d32/vm__core_8h.html#a38087978d8bc36f8cd48b62b70b15000"> 474</a></span> <a class="code" href="../../de/de9/vm_8c.html#a38087978d8bc36f8cd48b62b70b15000">rb_vm_make_env_object</a>(<a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> * th, <a class="code" href="../../dd/d84/structrb__control__frame__t.html">rb_control_frame_t</a> *cfp)</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span> {</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> blockprocval;</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  <span class="keywordflow">return</span> <a class="code" href="../../de/de9/vm_8c.html#a3ddaf8dd022a2376d14fa8bff79e0a53">vm_make_env_object</a>(th, cfp, &blockprocval);</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span> }</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span> </div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span> <span class="keyword">static</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l00481"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a3ddaf8dd022a2376d14fa8bff79e0a53"> 481</a></span> <a class="code" href="../../de/de9/vm_8c.html#a3ddaf8dd022a2376d14fa8bff79e0a53">vm_make_env_object</a>(<a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th, <a class="code" href="../../dd/d84/structrb__control__frame__t.html">rb_control_frame_t</a> *cfp, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *blockprocptr)</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span> {</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> envval;</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *lfp;</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  <a class="code" href="../../da/dc0/structrb__block__struct.html">rb_block_t</a> *blockptr;</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span> </div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d8/d32/vm__core_8h.html#a423bad734fe427f4d5deeb4fe71fff65">VM_FRAME_TYPE</a>(cfp) == <a class="code" href="../../d8/d32/vm__core_8h.html#a885c6468caef6c3de80b0ad6c50ae38d">VM_FRAME_MAGIC_FINISH</a>) {</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  <span class="comment">/* for method_missing */</span></div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  cfp = <a class="code" href="../../d8/d32/vm__core_8h.html#af087c881c3c493e3a4e326852e8ed2a9">RUBY_VM_PREVIOUS_CONTROL_FRAME</a>(cfp);</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  }</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span> </div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  lfp = cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#af3314cb37c8a27353101bf6f35574946">lfp</a>;</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  blockptr = <a class="code" href="../../d8/d32/vm__core_8h.html#a373f1cafd944ff9e99986582d0fd695b">GC_GUARDED_PTR_REF</a>(lfp[0]);</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span> </div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  <span class="keywordflow">if</span> (blockptr && !(lfp[0] & 0x02)) {</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> blockprocval = <a class="code" href="../../de/de9/vm_8c.html#afbd004fdeff5b9e93c1a3792114f0be0">vm_make_proc_from_block</a>(th, blockptr);</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  <a class="code" href="../../d5/d77/structrb__proc__t.html">rb_proc_t</a> *<a class="code" href="../../d2/d99/win32ole_8c.html#a4b5a598a4f53b3724549c48dcfbf7c48">p</a>;</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#ad9cb04a311c21bdbbd936d8f8b7237db">GetProcPtr</a>(blockprocval, <a class="code" href="../../d2/d99/win32ole_8c.html#a4b5a598a4f53b3724549c48dcfbf7c48">p</a>);</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  lfp[0] = <a class="code" href="../../d8/d32/vm__core_8h.html#a4bc9fa804787db9db7ea5d698da9db9e">GC_GUARDED_PTR</a>(&<a class="code" href="../../d2/d99/win32ole_8c.html#a4b5a598a4f53b3724549c48dcfbf7c48">p</a>->block);</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  *blockprocptr = blockprocval;</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  }</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span> </div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  envval = <a class="code" href="../../de/de9/vm_8c.html#a7920e56cee3ddd3b387cbe2d69b69544">vm_make_env_each</a>(th, cfp, cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#ac1cafd093e114d3ec99ebeca0ffeb048">dfp</a>, cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#af3314cb37c8a27353101bf6f35574946">lfp</a>);</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  <a class="code" href="../../de/de9/vm_8c.html#a193faf68e941a3c79d23e310ed1d424c">rb_vm_rewrite_dfp_in_errinfo</a>(th);</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span> </div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  <span class="keywordflow">if</span> (<a class="code" href="../../de/de9/vm_8c.html#a750084962ee12011b63dd0b901058f71">PROCDEBUG</a>) {</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  <a class="code" href="../../de/de9/vm_8c.html#ad686a96329c814869e6200edfac5107a">check_env_value</a>(envval);</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  }</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span> </div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  <span class="keywordflow">return</span> envval;</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span> }</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span> </div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00514"></a><span class="lineno"><a class="line" href="../../d8/d32/vm__core_8h.html#a193faf68e941a3c79d23e310ed1d424c"> 514</a></span> <a class="code" href="../../de/de9/vm_8c.html#a193faf68e941a3c79d23e310ed1d424c">rb_vm_rewrite_dfp_in_errinfo</a>(<a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th)</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span> {</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  <a class="code" href="../../dd/d84/structrb__control__frame__t.html">rb_control_frame_t</a> *cfp = th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>;</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  <span class="keywordflow">while</span> (!<a class="code" href="../../d8/d32/vm__core_8h.html#ac3cef3df2cc03d3090ad49220cb453d5">RUBY_VM_CONTROL_FRAME_STACK_OVERFLOW_P</a>(th, cfp)) {</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  <span class="comment">/* rewrite dfp in errinfo to point to heap */</span></div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d8/d32/vm__core_8h.html#a79d03ad9b9cf8b7a8ca2b849e495a74f">RUBY_VM_NORMAL_ISEQ_P</a>(cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4b25ca925a9f60481173632b9c09d4e0">iseq</a>) &&</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  (cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4b25ca925a9f60481173632b9c09d4e0">iseq</a>-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#af8bc7dbae6f61d836b5bb9fb50b6cfb8">type</a> == ISEQ_TYPE_RESCUE ||</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4b25ca925a9f60481173632b9c09d4e0">iseq</a>-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#af8bc7dbae6f61d836b5bb9fb50b6cfb8">type</a> == ISEQ_TYPE_ENSURE)) {</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> errinfo = cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#ac1cafd093e114d3ec99ebeca0ffeb048">dfp</a>[-2]; <span class="comment">/* #$! */</span></div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  <span class="keywordflow">if</span> (<a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac4f895997656c2abd27a29a8b8e982ca">RB_TYPE_P</a>(errinfo, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a5f1cc49c4da51d5bdffa64be79ff6fb0">T_NODE</a>)) {</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *escape_dfp = <a class="code" href="../../dd/dd0/eval__intern_8h.html#aeeda78ded67b3dc359c8911e679f0f15">GET_THROWOBJ_CATCH_POINT</a>(errinfo);</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  <span class="keywordflow">if</span> (! <a class="code" href="../../de/de9/vm_8c.html#a763a6b9c07ba29acc33611df4297f321">ENV_IN_HEAP_P</a>(th, escape_dfp)) {</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> dfpval = *escape_dfp;</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  <span class="keywordflow">if</span> (<a class="code" href="../../de/de6/ruby_2ruby_8h.html#ad07df58de9895cbc33c10f02540d2d4d">CLASS_OF</a>(dfpval) == <a class="code" href="../../de/de9/vm_8c.html#ad55204994fe946dcd317061047845c3a">rb_cEnv</a>) {</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  <a class="code" href="../../d0/d73/structrb__env__t.html">rb_env_t</a> *dfpenv;</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#aaa39b3177aba775195d515b937ef78ff">GetEnvPtr</a>(dfpval, dfpenv);</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  <a class="code" href="../../dd/dd0/eval__intern_8h.html#aa893e1d4238c9135f318ddaff6b1c679">SET_THROWOBJ_CATCH_POINT</a>(errinfo, (<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a>)(dfpenv-><a class="code" href="../../d0/d73/structrb__env__t.html#a1c42d4847422b6ffd0fb340fdd0cfa8b">env</a> + dfpenv-><a class="code" href="../../d0/d73/structrb__env__t.html#a5babbdd0740bbdc371ae7d2f225e8b64">local_size</a>));</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  }</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  }</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  }</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  }</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  cfp = <a class="code" href="../../d8/d32/vm__core_8h.html#af087c881c3c493e3a4e326852e8ed2a9">RUBY_VM_PREVIOUS_CONTROL_FRAME</a>(cfp);</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  }</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span> }</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span> </div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00540"></a><span class="lineno"><a class="line" href="../../d8/d32/vm__core_8h.html#af0a6e7c3e77f3c6c8e7738b79dfbde2f"> 540</a></span> <a class="code" href="../../de/de9/vm_8c.html#af0a6e7c3e77f3c6c8e7738b79dfbde2f">rb_vm_stack_to_heap</a>(<a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th)</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span> {</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  <a class="code" href="../../dd/d84/structrb__control__frame__t.html">rb_control_frame_t</a> *cfp = th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>;</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  <span class="keywordflow">while</span> ((cfp = <a class="code" href="../../de/de9/vm_8c.html#a2709ccd7eeff81c0f749a7678223857e">rb_vm_get_ruby_level_next_cfp</a>(th, cfp)) != 0) {</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  <a class="code" href="../../de/de9/vm_8c.html#a38087978d8bc36f8cd48b62b70b15000">rb_vm_make_env_object</a>(th, cfp);</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  cfp = <a class="code" href="../../d8/d32/vm__core_8h.html#af087c881c3c493e3a4e326852e8ed2a9">RUBY_VM_PREVIOUS_CONTROL_FRAME</a>(cfp);</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  }</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span> }</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span> </div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span> <span class="comment">/* Proc */</span></div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span> </div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span> <span class="keyword">static</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l00552"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#afbd004fdeff5b9e93c1a3792114f0be0"> 552</a></span> <a class="code" href="../../de/de9/vm_8c.html#afbd004fdeff5b9e93c1a3792114f0be0">vm_make_proc_from_block</a>(<a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th, <a class="code" href="../../da/dc0/structrb__block__struct.html">rb_block_t</a> *block)</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span> {</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  <span class="keywordflow">if</span> (!block-><a class="code" href="../../da/dc0/structrb__block__struct.html#a305ea0fcc6d1233de416bd8e7edab218">proc</a>) {</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  block-><a class="code" href="../../da/dc0/structrb__block__struct.html#a305ea0fcc6d1233de416bd8e7edab218">proc</a> = <a class="code" href="../../de/de9/vm_8c.html#a7e8d71dee905abc403d671561b12f4e8">rb_vm_make_proc</a>(th, block, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#abd0d5fa9d171dbf020e85958391437f9">rb_cProc</a>);</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  }</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  <span class="keywordflow">return</span> block-><a class="code" href="../../da/dc0/structrb__block__struct.html#a305ea0fcc6d1233de416bd8e7edab218">proc</a>;</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span> }</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span> </div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l00561"></a><span class="lineno"><a class="line" href="../../d8/d32/vm__core_8h.html#a7e8d71dee905abc403d671561b12f4e8"> 561</a></span> <a class="code" href="../../de/de9/vm_8c.html#a7e8d71dee905abc403d671561b12f4e8">rb_vm_make_proc</a>(<a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th, <span class="keyword">const</span> <a class="code" href="../../da/dc0/structrb__block__struct.html">rb_block_t</a> *block, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> klass)</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span> {</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> procval, envval, blockprocval = 0;</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  <a class="code" href="../../d5/d77/structrb__proc__t.html">rb_proc_t</a> *proc;</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  <a class="code" href="../../dd/d84/structrb__control__frame__t.html">rb_control_frame_t</a> *cfp = <a class="code" href="../../d8/d32/vm__core_8h.html#a2cc1c838fecda2400fa9f2fb5fad3618">RUBY_VM_GET_CFP_FROM_BLOCK_PTR</a>(block);</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span> </div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  <span class="keywordflow">if</span> (block-><a class="code" href="../../da/dc0/structrb__block__struct.html#a305ea0fcc6d1233de416bd8e7edab218">proc</a>) {</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  <a class="code" href="../../db/dcc/error_8c.html#a2d5fb28e54f792e7341b2c45f52f3860">rb_bug</a>(<span class="stringliteral">"rb_vm_make_proc: Proc value is already created."</span>);</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  }</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span> </div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  envval = <a class="code" href="../../de/de9/vm_8c.html#a3ddaf8dd022a2376d14fa8bff79e0a53">vm_make_env_object</a>(th, cfp, &blockprocval);</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span> </div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  <span class="keywordflow">if</span> (<a class="code" href="../../de/de9/vm_8c.html#a750084962ee12011b63dd0b901058f71">PROCDEBUG</a>) {</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  <a class="code" href="../../de/de9/vm_8c.html#ad686a96329c814869e6200edfac5107a">check_env_value</a>(envval);</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  }</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  procval = <a class="code" href="../../d3/dda/proc_8c.html#afdfd5397f25a751a5bf34dbfeb0968ba">rb_proc_alloc</a>(klass);</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#ad9cb04a311c21bdbbd936d8f8b7237db">GetProcPtr</a>(procval, proc);</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  proc-><a class="code" href="../../d5/d77/structrb__proc__t.html#a6541c1e61b0734aef20b7c2af3b4de5e">blockprocval</a> = blockprocval;</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  proc-><a class="code" href="../../d5/d77/structrb__proc__t.html#acf80b0e350012548c28cba1ea64a7a6e">block</a>.<a class="code" href="../../da/dc0/structrb__block__struct.html#ad54e1ec45ab21ef384fe9e4346570397">self</a> = block-><a class="code" href="../../da/dc0/structrb__block__struct.html#ad54e1ec45ab21ef384fe9e4346570397">self</a>;</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  proc-><a class="code" href="../../d5/d77/structrb__proc__t.html#acf80b0e350012548c28cba1ea64a7a6e">block</a>.<a class="code" href="../../da/dc0/structrb__block__struct.html#a834e1c9b35a06714deeb62097636564f">lfp</a> = block-><a class="code" href="../../da/dc0/structrb__block__struct.html#a834e1c9b35a06714deeb62097636564f">lfp</a>;</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  proc-><a class="code" href="../../d5/d77/structrb__proc__t.html#acf80b0e350012548c28cba1ea64a7a6e">block</a>.<a class="code" href="../../da/dc0/structrb__block__struct.html#ac3696ee534a836d6ccc55cdeb2181ac5">dfp</a> = block-><a class="code" href="../../da/dc0/structrb__block__struct.html#ac3696ee534a836d6ccc55cdeb2181ac5">dfp</a>;</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  proc-><a class="code" href="../../d5/d77/structrb__proc__t.html#acf80b0e350012548c28cba1ea64a7a6e">block</a>.<a class="code" href="../../da/dc0/structrb__block__struct.html#a8e2b3b9218b4a184f198872404e81605">iseq</a> = block-><a class="code" href="../../da/dc0/structrb__block__struct.html#a8e2b3b9218b4a184f198872404e81605">iseq</a>;</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  proc-><a class="code" href="../../d5/d77/structrb__proc__t.html#acf80b0e350012548c28cba1ea64a7a6e">block</a>.<a class="code" href="../../da/dc0/structrb__block__struct.html#a305ea0fcc6d1233de416bd8e7edab218">proc</a> = procval;</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  proc-><a class="code" href="../../d5/d77/structrb__proc__t.html#acdb9a8c85422bf299615f7942ffbc916">envval</a> = envval;</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  proc-><a class="code" href="../../d5/d77/structrb__proc__t.html#aceef0bead8eaa17dd1217f6078e9cd75">safe_level</a> = th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#adc5048ddde96e3ea2e6b22c3e58ce696">safe_level</a>;</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span> </div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d2/d5f/vm__insnhelper_8h.html#a5e6b7f865cae591e5e27b0e36b0d357f">VMDEBUG</a>) {</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  <span class="keywordflow">if</span> (th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a3fd7aab45a1c539bc9ca022acfc1ad51">stack</a> < block-><a class="code" href="../../da/dc0/structrb__block__struct.html#ac3696ee534a836d6ccc55cdeb2181ac5">dfp</a> && block-><a class="code" href="../../da/dc0/structrb__block__struct.html#ac3696ee534a836d6ccc55cdeb2181ac5">dfp</a> < th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a3fd7aab45a1c539bc9ca022acfc1ad51">stack</a> + th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a1587dec1a575fb9f8d6a689ef4fdb6b5">stack_size</a>) {</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>  <a class="code" href="../../db/dcc/error_8c.html#a2d5fb28e54f792e7341b2c45f52f3860">rb_bug</a>(<span class="stringliteral">"invalid ptr: block->dfp"</span>);</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  }</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  <span class="keywordflow">if</span> (th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a3fd7aab45a1c539bc9ca022acfc1ad51">stack</a> < block-><a class="code" href="../../da/dc0/structrb__block__struct.html#a834e1c9b35a06714deeb62097636564f">lfp</a> && block-><a class="code" href="../../da/dc0/structrb__block__struct.html#a834e1c9b35a06714deeb62097636564f">lfp</a> < th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a3fd7aab45a1c539bc9ca022acfc1ad51">stack</a> + th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a1587dec1a575fb9f8d6a689ef4fdb6b5">stack_size</a>) {</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  <a class="code" href="../../db/dcc/error_8c.html#a2d5fb28e54f792e7341b2c45f52f3860">rb_bug</a>(<span class="stringliteral">"invalid ptr: block->lfp"</span>);</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  }</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  }</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span> </div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  <span class="keywordflow">return</span> procval;</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span> }</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span> </div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span> <span class="comment">/* C -> Ruby: block */</span></div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span> </div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l00602"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a9ccac59de15bb257e3b0243b4c5ef43c"> 602</a></span> <a class="code" href="../../de/de9/vm_8c.html#a9ccac59de15bb257e3b0243b4c5ef43c">invoke_block_from_c</a>(<a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th, <span class="keyword">const</span> <a class="code" href="../../da/dc0/structrb__block__struct.html">rb_block_t</a> *block,</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <span class="keyword">self</span>, <span class="keywordtype">int</span> <a class="code" href="../../df/d77/ruby_8c.html#ad1447518f4372828b8435ae82e48499e">argc</a>, <span class="keyword">const</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *<a class="code" href="../../df/d77/ruby_8c.html#af2efa898e9eed6fe6715279cb1ec35b0">argv</a>,</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  <span class="keyword">const</span> <a class="code" href="../../da/dc0/structrb__block__struct.html">rb_block_t</a> *blockptr, <span class="keyword">const</span> <a class="code" href="../../dd/de6/struct_r_node.html">NODE</a> *cref)</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span> {</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  <span class="keywordflow">if</span> (<a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac59489a7ed093e29019047d13e79c009">SPECIAL_CONST_P</a>(block-><a class="code" href="../../da/dc0/structrb__block__struct.html#a8e2b3b9218b4a184f198872404e81605">iseq</a>))</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  <span class="keywordflow">return</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>;</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="../../de/de6/ruby_2ruby_8h.html#aee74f540353cd2d77d1cb37a3714bd7d">BUILTIN_TYPE</a>(block-><a class="code" href="../../da/dc0/structrb__block__struct.html#a8e2b3b9218b4a184f198872404e81605">iseq</a>) != <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a5f1cc49c4da51d5bdffa64be79ff6fb0">T_NODE</a>) {</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  <span class="keyword">const</span> <a class="code" href="../../d6/de3/structrb__iseq__struct.html">rb_iseq_t</a> *iseq = block-><a class="code" href="../../da/dc0/structrb__block__struct.html#a8e2b3b9218b4a184f198872404e81605">iseq</a>;</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  <span class="keyword">const</span> <a class="code" href="../../dd/d84/structrb__control__frame__t.html">rb_control_frame_t</a> *cfp;</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  <a class="code" href="../../dd/d84/structrb__control__frame__t.html">rb_control_frame_t</a> *ncfp;</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  <span class="keywordtype">int</span> <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>, opt_pc, arg_size = iseq-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#abd2b67e0dffb2262ab272a67bbe747d6">arg_size</a>;</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  <span class="keywordtype">int</span> <a class="code" href="../../d5/d9d/tcltklib_8c.html#ac765329451135abec74c45e1897abf26">type</a> = <a class="code" href="../../d0/db2/vm__insnhelper_8c.html#a12e2a36d6e51eedb258d07ee68314671">block_proc_is_lambda</a>(block-><a class="code" href="../../da/dc0/structrb__block__struct.html#a305ea0fcc6d1233de416bd8e7edab218">proc</a>) ?</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#a57840803108748406429fb1cb3b10530">VM_FRAME_MAGIC_LAMBDA</a> : <a class="code" href="../../d8/d32/vm__core_8h.html#a83eeedff3dde6d2d1ffce5d84c2ba2f1">VM_FRAME_MAGIC_BLOCK</a>;</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span> </div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>  <a class="code" href="../../de/de9/vm_8c.html#aa8deb4813e5d237bb18713ddb5d98b74">rb_vm_set_finish_env</a>(th);</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span> </div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  cfp = th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>;</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  <a class="code" href="../../dd/dd0/eval__intern_8h.html#a03427c07c33d15b934d5f9f4bcfb1c95">CHECK_STACK_OVERFLOW</a>(cfp, <a class="code" href="../../df/d77/ruby_8c.html#ad1447518f4372828b8435ae82e48499e">argc</a> + iseq-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#a00494b6f5b1aa350819cad777e19eee8">stack_max</a>);</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span> </div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  <span class="keywordflow">for</span> (<a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>=0; <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a><<a class="code" href="../../df/d77/ruby_8c.html#ad1447518f4372828b8435ae82e48499e">argc</a>; <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>++) {</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a29b331b150e5cae1e206cd87f892bad8">sp</a>[<a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>] = <a class="code" href="../../df/d77/ruby_8c.html#af2efa898e9eed6fe6715279cb1ec35b0">argv</a>[<a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>];</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  }</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span> </div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  opt_pc = <a class="code" href="../../d0/db2/vm__insnhelper_8c.html#a738cd1c8e659fcea3cc75f1f97169878">vm_yield_setup_args</a>(th, iseq, <a class="code" href="../../df/d77/ruby_8c.html#ad1447518f4372828b8435ae82e48499e">argc</a>, cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a29b331b150e5cae1e206cd87f892bad8">sp</a>, blockptr,</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>  <a class="code" href="../../d5/d9d/tcltklib_8c.html#ac765329451135abec74c45e1897abf26">type</a> == <a class="code" href="../../d8/d32/vm__core_8h.html#a57840803108748406429fb1cb3b10530">VM_FRAME_MAGIC_LAMBDA</a>);</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span> </div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>  ncfp = <a class="code" href="../../d0/db2/vm__insnhelper_8c.html#a30340566da5743c4d660c8931dffd86e">vm_push_frame</a>(th, iseq, <a class="code" href="../../d5/d9d/tcltklib_8c.html#ac765329451135abec74c45e1897abf26">type</a>,</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>  <span class="keyword">self</span>, <a class="code" href="../../d8/d32/vm__core_8h.html#a4bc9fa804787db9db7ea5d698da9db9e">GC_GUARDED_PTR</a>(block-><a class="code" href="../../da/dc0/structrb__block__struct.html#ac3696ee534a836d6ccc55cdeb2181ac5">dfp</a>),</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>  iseq-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#aa70f3e195a4350acbbc130f8a95c9958">iseq_encoded</a> + opt_pc, cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a29b331b150e5cae1e206cd87f892bad8">sp</a> + arg_size, block-><a class="code" href="../../da/dc0/structrb__block__struct.html#a834e1c9b35a06714deeb62097636564f">lfp</a>,</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>  iseq-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#afbae994355f91f3ea547570debb757c0">local_size</a> - arg_size);</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>  ncfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#aa0ec76f80ebaf0668b688c4e4e5e3e3f">me</a> = th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a42b995c9fe5e654442129c060c1a8219">passed_me</a>;</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a42b995c9fe5e654442129c060c1a8219">passed_me</a> = 0;</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#ae680ba33fe514b2b0031d77ad1527e1a">passed_block</a> = blockptr;</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span> </div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>  <span class="keywordflow">if</span> (cref) {</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#ac1cafd093e114d3ec99ebeca0ffeb048">dfp</a>[-1] = (<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a>)cref;</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>  }</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span> </div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>  <span class="keywordflow">return</span> <a class="code" href="../../de/de9/vm_8c.html#a6fca4e13002f037d2e15bc1c77ab18ed">vm_exec</a>(th);</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>  }</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>  <span class="keywordflow">return</span> <a class="code" href="../../d0/db2/vm__insnhelper_8c.html#abdbae6f122fc653110b2893cece182df">vm_yield_with_cfunc</a>(th, block, <span class="keyword">self</span>, <a class="code" href="../../df/d77/ruby_8c.html#ad1447518f4372828b8435ae82e48499e">argc</a>, <a class="code" href="../../df/d77/ruby_8c.html#af2efa898e9eed6fe6715279cb1ec35b0">argv</a>, blockptr);</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>  }</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span> }</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span> </div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="../../da/dc0/structrb__block__struct.html">rb_block_t</a> *</div><div class="line"><a name="l00648"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#ad3546781259eb3e30b64580b1f35e6fb"> 648</a></span> <a class="code" href="../../de/de9/vm_8c.html#ad3546781259eb3e30b64580b1f35e6fb">check_block</a>(<a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th)</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span> {</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>  <span class="keyword">const</span> <a class="code" href="../../da/dc0/structrb__block__struct.html">rb_block_t</a> *blockptr = <a class="code" href="../../d8/d32/vm__core_8h.html#a373f1cafd944ff9e99986582d0fd695b">GC_GUARDED_PTR_REF</a>(th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#af3314cb37c8a27353101bf6f35574946">lfp</a>[0]);</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span> </div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>  <span class="keywordflow">if</span> (blockptr == 0) {</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>  <a class="code" href="../../de/de9/vm_8c.html#a0402672d92f48e0018ab5f8aeda270e6">rb_vm_localjump_error</a>(<span class="stringliteral">"no block given"</span>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>, 0);</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>  }</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span> </div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>  <span class="keywordflow">return</span> blockptr;</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span> }</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span> </div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l00660"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a2525811685e5b25a1d89a966f862fbea"> 660</a></span> <a class="code" href="../../de/de9/vm_8c.html#a2525811685e5b25a1d89a966f862fbea">vm_yield_with_cref</a>(<a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th, <span class="keywordtype">int</span> <a class="code" href="../../df/d77/ruby_8c.html#ad1447518f4372828b8435ae82e48499e">argc</a>, <span class="keyword">const</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *<a class="code" href="../../df/d77/ruby_8c.html#af2efa898e9eed6fe6715279cb1ec35b0">argv</a>, <span class="keyword">const</span> <a class="code" href="../../dd/de6/struct_r_node.html">NODE</a> *cref)</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span> {</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>  <span class="keyword">const</span> <a class="code" href="../../da/dc0/structrb__block__struct.html">rb_block_t</a> *blockptr = <a class="code" href="../../de/de9/vm_8c.html#ad3546781259eb3e30b64580b1f35e6fb">check_block</a>(th);</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>  <span class="keywordflow">return</span> <a class="code" href="../../de/de9/vm_8c.html#a9ccac59de15bb257e3b0243b4c5ef43c">invoke_block_from_c</a>(th, blockptr, blockptr-><a class="code" href="../../da/dc0/structrb__block__struct.html#ad54e1ec45ab21ef384fe9e4346570397">self</a>, <a class="code" href="../../df/d77/ruby_8c.html#ad1447518f4372828b8435ae82e48499e">argc</a>, <a class="code" href="../../df/d77/ruby_8c.html#af2efa898e9eed6fe6715279cb1ec35b0">argv</a>, 0, cref);</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span> }</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span> </div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l00667"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a60a89de76b17391f34b5905586c9651f"> 667</a></span> <a class="code" href="../../de/de9/vm_8c.html#a60a89de76b17391f34b5905586c9651f">vm_yield</a>(<a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th, <span class="keywordtype">int</span> <a class="code" href="../../df/d77/ruby_8c.html#ad1447518f4372828b8435ae82e48499e">argc</a>, <span class="keyword">const</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *<a class="code" href="../../df/d77/ruby_8c.html#af2efa898e9eed6fe6715279cb1ec35b0">argv</a>)</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span> {</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>  <span class="keyword">const</span> <a class="code" href="../../da/dc0/structrb__block__struct.html">rb_block_t</a> *blockptr = <a class="code" href="../../de/de9/vm_8c.html#ad3546781259eb3e30b64580b1f35e6fb">check_block</a>(th);</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>  <span class="keywordflow">return</span> <a class="code" href="../../de/de9/vm_8c.html#a9ccac59de15bb257e3b0243b4c5ef43c">invoke_block_from_c</a>(th, blockptr, blockptr-><a class="code" href="../../da/dc0/structrb__block__struct.html#ad54e1ec45ab21ef384fe9e4346570397">self</a>, <a class="code" href="../../df/d77/ruby_8c.html#ad1447518f4372828b8435ae82e48499e">argc</a>, <a class="code" href="../../df/d77/ruby_8c.html#af2efa898e9eed6fe6715279cb1ec35b0">argv</a>, 0, 0);</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span> }</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span> </div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l00674"></a><span class="lineno"><a class="line" href="../../d8/d32/vm__core_8h.html#a87fd97e34aa2d7399db658edb02ea083"> 674</a></span> <a class="code" href="../../de/de9/vm_8c.html#a87fd97e34aa2d7399db658edb02ea083">rb_vm_invoke_proc</a>(<a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th, <a class="code" href="../../d5/d77/structrb__proc__t.html">rb_proc_t</a> *proc, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <span class="keyword">self</span>,</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>  <span class="keywordtype">int</span> <a class="code" href="../../df/d77/ruby_8c.html#ad1447518f4372828b8435ae82e48499e">argc</a>, <span class="keyword">const</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *<a class="code" href="../../df/d77/ruby_8c.html#af2efa898e9eed6fe6715279cb1ec35b0">argv</a>, <span class="keyword">const</span> <a class="code" href="../../da/dc0/structrb__block__struct.html">rb_block_t</a> * blockptr)</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span> {</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> val = <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a2edf6990280eb2637623ccd421dee4f0">Qundef</a>;</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>  <span class="keywordtype">int</span> <a class="code" href="../../d5/d1d/gb18030_8c.html#adc6e5733fc3c22f0a7b2914188c49c90">state</a>;</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>  <span class="keyword">volatile</span> <span class="keywordtype">int</span> stored_safe = th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#adc5048ddde96e3ea2e6b22c3e58ce696">safe_level</a>;</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span> </div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>  <a class="code" href="../../dd/dd0/eval__intern_8h.html#a4410e4208d7ae0de8dae7c5b61f9d55c">TH_PUSH_TAG</a>(th);</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>  <span class="keywordflow">if</span> ((<a class="code" href="../../d5/d1d/gb18030_8c.html#adc6e5733fc3c22f0a7b2914188c49c90">state</a> = <a class="code" href="../../dd/dd0/eval__intern_8h.html#a3441e3967c633da99c3dcd025494053e">EXEC_TAG</a>()) == 0) {</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>  <span class="keywordflow">if</span> (!proc-><a class="code" href="../../d5/d77/structrb__proc__t.html#ab758491302d7ae34dba60f7c39b97c95">is_from_method</a>) {</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#adc5048ddde96e3ea2e6b22c3e58ce696">safe_level</a> = proc-><a class="code" href="../../d5/d77/structrb__proc__t.html#aceef0bead8eaa17dd1217f6078e9cd75">safe_level</a>;</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>  }</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>  val = <a class="code" href="../../de/de9/vm_8c.html#a9ccac59de15bb257e3b0243b4c5ef43c">invoke_block_from_c</a>(th, &proc-><a class="code" href="../../d5/d77/structrb__proc__t.html#acf80b0e350012548c28cba1ea64a7a6e">block</a>, <span class="keyword">self</span>, <a class="code" href="../../df/d77/ruby_8c.html#ad1447518f4372828b8435ae82e48499e">argc</a>, <a class="code" href="../../df/d77/ruby_8c.html#af2efa898e9eed6fe6715279cb1ec35b0">argv</a>, blockptr, 0);</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>  }</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>  <a class="code" href="../../dd/dd0/eval__intern_8h.html#a4d06135dea1a72a3ab73b20cc1a9fc55">TH_POP_TAG</a>();</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span> </div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>  <span class="keywordflow">if</span> (!proc-><a class="code" href="../../d5/d77/structrb__proc__t.html#ab758491302d7ae34dba60f7c39b97c95">is_from_method</a>) {</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#adc5048ddde96e3ea2e6b22c3e58ce696">safe_level</a> = stored_safe;</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>  }</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span> </div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d5/d1d/gb18030_8c.html#adc6e5733fc3c22f0a7b2914188c49c90">state</a>) {</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>  <a class="code" href="../../dd/dd0/eval__intern_8h.html#a24884166ae699029ade34fd36bedd688">JUMP_TAG</a>(<a class="code" href="../../d5/d1d/gb18030_8c.html#adc6e5733fc3c22f0a7b2914188c49c90">state</a>);</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>  }</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>  <span class="keywordflow">return</span> val;</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span> }</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span> </div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span> <span class="comment">/* special variable */</span></div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span> </div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span> <span class="keyword">static</span> <a class="code" href="../../dd/d84/structrb__control__frame__t.html">rb_control_frame_t</a> *</div><div class="line"><a name="l00703"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#aa10e58958709037c9e4bba549b0d4755"> 703</a></span> <a class="code" href="../../de/de9/vm_8c.html#aa10e58958709037c9e4bba549b0d4755">vm_normal_frame</a>(<a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th, <a class="code" href="../../dd/d84/structrb__control__frame__t.html">rb_control_frame_t</a> *cfp)</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span> {</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>  <span class="keywordflow">while</span> (cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a28b0b301811a891225ba9a58c412482d">pc</a> == 0) {</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>  cfp = <a class="code" href="../../d8/d32/vm__core_8h.html#af087c881c3c493e3a4e326852e8ed2a9">RUBY_VM_PREVIOUS_CONTROL_FRAME</a>(cfp);</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d8/d32/vm__core_8h.html#ac3cef3df2cc03d3090ad49220cb453d5">RUBY_VM_CONTROL_FRAME_STACK_OVERFLOW_P</a>(th, cfp)) {</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>  }</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>  }</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>  <span class="keywordflow">return</span> cfp;</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span> }</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span> </div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span> <span class="keyword">static</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l00715"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a5077c2fe5c10efbf02a0ee287b84c809"> 715</a></span> <a class="code" href="../../de/de9/vm_8c.html#a5077c2fe5c10efbf02a0ee287b84c809">vm_cfp_svar_get</a>(<a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th, <a class="code" href="../../dd/d84/structrb__control__frame__t.html">rb_control_frame_t</a> *cfp, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../dc/de5/random_8c.html#a742229490b6759a90ece7ba82ba129d5">key</a>)</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span> {</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>  cfp = <a class="code" href="../../de/de9/vm_8c.html#aa10e58958709037c9e4bba549b0d4755">vm_normal_frame</a>(th, cfp);</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>  <span class="keywordflow">return</span> <a class="code" href="../../d0/db2/vm__insnhelper_8c.html#a2f52576fff162c56bc4ccdc7acadcdf5">lfp_svar_get</a>(th, cfp ? cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#af3314cb37c8a27353101bf6f35574946">lfp</a> : 0, <a class="code" href="../../dc/de5/random_8c.html#a742229490b6759a90ece7ba82ba129d5">key</a>);</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span> }</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span> </div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00722"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#aa873ebca03e88966c9fd8710cff0a429"> 722</a></span> <a class="code" href="../../de/de9/vm_8c.html#aa873ebca03e88966c9fd8710cff0a429">vm_cfp_svar_set</a>(<a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th, <a class="code" href="../../dd/d84/structrb__control__frame__t.html">rb_control_frame_t</a> *cfp, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../dc/de5/random_8c.html#a742229490b6759a90ece7ba82ba129d5">key</a>, <span class="keyword">const</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> val)</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span> {</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>  cfp = <a class="code" href="../../de/de9/vm_8c.html#aa10e58958709037c9e4bba549b0d4755">vm_normal_frame</a>(th, cfp);</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>  <a class="code" href="../../d0/db2/vm__insnhelper_8c.html#a7fbb437f7cf58ba79c6c3dc6a1ff1944">lfp_svar_set</a>(th, cfp ? cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#af3314cb37c8a27353101bf6f35574946">lfp</a> : 0, <a class="code" href="../../dc/de5/random_8c.html#a742229490b6759a90ece7ba82ba129d5">key</a>, val);</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span> }</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span> </div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span> <span class="keyword">static</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l00729"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a9ae786ebda2b26b25d2fc8212420e665"> 729</a></span> <a class="code" href="../../de/de9/vm_8c.html#a9ae786ebda2b26b25d2fc8212420e665">vm_svar_get</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../dc/de5/random_8c.html#a742229490b6759a90ece7ba82ba129d5">key</a>)</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span> {</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>  <a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th = <a class="code" href="../../d8/d32/vm__core_8h.html#a8deb84ec6023e3229db88ac2c9da6138">GET_THREAD</a>();</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>  <span class="keywordflow">return</span> <a class="code" href="../../de/de9/vm_8c.html#a5077c2fe5c10efbf02a0ee287b84c809">vm_cfp_svar_get</a>(th, th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>, <a class="code" href="../../dc/de5/random_8c.html#a742229490b6759a90ece7ba82ba129d5">key</a>);</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span> }</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span> </div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00736"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#ab3cf4160fd472c04e48e7569c2ed34fe"> 736</a></span> <a class="code" href="../../de/de9/vm_8c.html#ab3cf4160fd472c04e48e7569c2ed34fe">vm_svar_set</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../dc/de5/random_8c.html#a742229490b6759a90ece7ba82ba129d5">key</a>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> val)</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span> {</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>  <a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th = <a class="code" href="../../d8/d32/vm__core_8h.html#a8deb84ec6023e3229db88ac2c9da6138">GET_THREAD</a>();</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>  <a class="code" href="../../de/de9/vm_8c.html#aa873ebca03e88966c9fd8710cff0a429">vm_cfp_svar_set</a>(th, th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>, <a class="code" href="../../dc/de5/random_8c.html#a742229490b6759a90ece7ba82ba129d5">key</a>, val);</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span> }</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span> </div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l00743"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a2590f9272c0599ff0d1922bd0fb6efce"> 743</a></span> <a class="code" href="../../de/de9/vm_8c.html#a2590f9272c0599ff0d1922bd0fb6efce">rb_backref_get</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span> {</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>  <span class="keywordflow">return</span> <a class="code" href="../../de/de9/vm_8c.html#a9ae786ebda2b26b25d2fc8212420e665">vm_svar_get</a>(1);</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span> }</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span> </div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00749"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a96a10fbdd9c8c5718f51516c714da0b1"> 749</a></span> <a class="code" href="../../de/de9/vm_8c.html#a96a10fbdd9c8c5718f51516c714da0b1">rb_backref_set</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> val)</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span> {</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>  <a class="code" href="../../de/de9/vm_8c.html#ab3cf4160fd472c04e48e7569c2ed34fe">vm_svar_set</a>(1, val);</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span> }</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span> </div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l00755"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#ac185acdaeb1aadf3f4297609e05fd083"> 755</a></span> <a class="code" href="../../de/de9/vm_8c.html#ac185acdaeb1aadf3f4297609e05fd083">rb_lastline_get</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span> {</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>  <span class="keywordflow">return</span> <a class="code" href="../../de/de9/vm_8c.html#a9ae786ebda2b26b25d2fc8212420e665">vm_svar_get</a>(0);</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span> }</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span> </div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00761"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a1afa8b88ecd32dd5f8fecdc8c31568e7"> 761</a></span> <a class="code" href="../../de/de9/vm_8c.html#a1afa8b88ecd32dd5f8fecdc8c31568e7">rb_lastline_set</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> val)</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span> {</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>  <a class="code" href="../../de/de9/vm_8c.html#ab3cf4160fd472c04e48e7569c2ed34fe">vm_svar_set</a>(0, val);</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span> }</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span> </div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span> <span class="comment">/* backtrace */</span></div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span> </div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span> <span class="keywordtype">int</span></div><div class="line"><a name="l00769"></a><span class="lineno"><a class="line" href="../../d8/d32/vm__core_8h.html#a645bbb43d2f118e9fa17817082c47a79"> 769</a></span> <a class="code" href="../../de/de9/vm_8c.html#a70289cbb34babceed6243d9471e70e5f">rb_vm_get_sourceline</a>(<span class="keyword">const</span> <a class="code" href="../../dd/d84/structrb__control__frame__t.html">rb_control_frame_t</a> *cfp)</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span> {</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>  <span class="keywordtype">int</span> line_no = 0;</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>  <span class="keyword">const</span> <a class="code" href="../../d6/de3/structrb__iseq__struct.html">rb_iseq_t</a> *iseq = cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4b25ca925a9f60481173632b9c09d4e0">iseq</a>;</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span> </div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d8/d32/vm__core_8h.html#a79d03ad9b9cf8b7a8ca2b849e495a74f">RUBY_VM_NORMAL_ISEQ_P</a>(iseq) && iseq-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#a4f2f75b5dd56c2069139710fc684bb67">insn_info_size</a> > 0) {</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#afa3629f5cb977b24532d09e1aa055e4a">rb_num_t</a> <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>;</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>  <span class="keywordtype">size_t</span> pos = cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a28b0b301811a891225ba9a58c412482d">pc</a> - cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4b25ca925a9f60481173632b9c09d4e0">iseq</a>-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#aa70f3e195a4350acbbc130f8a95c9958">iseq_encoded</a>;</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span> </div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>  <span class="keywordflow">if</span> (iseq-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#a7d6b0dd003b6703454061024b11481ad">insn_info_table</a>[0].<a class="code" href="../../db/ded/structiseq__insn__info__entry.html#ad42ccac526cf4800ca5262006d35ee26">position</a> == pos) <span class="keywordflow">goto</span> found;</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>  <span class="keywordflow">for</span> (<a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a> = 1; <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a> < iseq-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#a4f2f75b5dd56c2069139710fc684bb67">insn_info_size</a>; <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>++) {</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>  <span class="keywordflow">if</span> (iseq-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#a7d6b0dd003b6703454061024b11481ad">insn_info_table</a>[<a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>].<a class="code" href="../../db/ded/structiseq__insn__info__entry.html#ad42ccac526cf4800ca5262006d35ee26">position</a> == pos) {</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>  line_no = iseq-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#a7d6b0dd003b6703454061024b11481ad">insn_info_table</a>[<a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a> - 1].<a class="code" href="../../db/ded/structiseq__insn__info__entry.html#a6d449a8f403d3452777aca050b5c97fb">line_no</a>;</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>  <span class="keywordflow">goto</span> found;</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>  }</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>  }</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>  line_no = iseq-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#a7d6b0dd003b6703454061024b11481ad">insn_info_table</a>[<a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a> - 1].<a class="code" href="../../db/ded/structiseq__insn__info__entry.html#a6d449a8f403d3452777aca050b5c97fb">line_no</a>;</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>  }</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>  found:</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>  <span class="keywordflow">return</span> line_no;</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span> }</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span> </div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span> <span class="keyword">static</span> <span class="keywordtype">int</span></div><div class="line"><a name="l00792"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a9c233b8f4d2f77f12089fc293705ddea"> 792</a></span> <a class="code" href="../../de/de9/vm_8c.html#a9c233b8f4d2f77f12089fc293705ddea">vm_backtrace_each</a>(<a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th, <span class="keywordtype">int</span> lev, <span class="keywordtype">void</span> (*<a class="code" href="../../df/d43/-test-_2string_2init_8c.html#a7c6f1d2e32298f69b4ea18be4aa62129">init</a>)(<span class="keywordtype">void</span> *), <a class="code" href="../../d8/d32/vm__core_8h.html#af17ad00cbac9b23ea267784b2547acbe">rb_backtrace_iter_func</a> *iter, <span class="keywordtype">void</span> *arg)</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span> {</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>  <span class="keyword">const</span> <a class="code" href="../../dd/d84/structrb__control__frame__t.html">rb_control_frame_t</a> *limit_cfp = th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>;</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>  <span class="keyword">const</span> <a class="code" href="../../dd/d84/structrb__control__frame__t.html">rb_control_frame_t</a> *cfp = (<span class="keywordtype">void</span> *)(th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a3fd7aab45a1c539bc9ca022acfc1ad51">stack</a> + th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a1587dec1a575fb9f8d6a689ef4fdb6b5">stack_size</a>);</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> file = <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>;</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>  <span class="keywordtype">int</span> line_no = 0;</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span> </div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>  cfp -= 2;</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>  <span class="keywordflow">while</span> (lev-- >= 0) {</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>  <span class="keywordflow">if</span> (++limit_cfp > cfp) {</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>  <span class="keywordflow">return</span> <a class="code" href="../../d1/d5c/nkf_8h.html#aa93f0eb578d23995850d61f7d61c55c1">FALSE</a>;</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>  }</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>  }</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>  <span class="keywordflow">if</span> (<a class="code" href="../../df/d43/-test-_2string_2init_8c.html#a7c6f1d2e32298f69b4ea18be4aa62129">init</a>) (*init)(arg);</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>  limit_cfp = <a class="code" href="../../d8/d32/vm__core_8h.html#a456e0e30a5829a029128bcb785ff6933">RUBY_VM_NEXT_CONTROL_FRAME</a>(limit_cfp);</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>  <span class="keywordflow">if</span> (th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a3e7d0b05e2d73f324e70c735ba50739e">vm</a>-><a class="code" href="../../db/d74/structrb__vm__struct.html#a0fabbe8c44aac34d9538388955e2b461">progname</a>) file = th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a3e7d0b05e2d73f324e70c735ba50739e">vm</a>-><a class="code" href="../../db/d74/structrb__vm__struct.html#a0fabbe8c44aac34d9538388955e2b461">progname</a>;</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>  <span class="keywordflow">while</span> (cfp > limit_cfp) {</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>  <span class="keywordflow">if</span> (cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4b25ca925a9f60481173632b9c09d4e0">iseq</a> != 0) {</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>  <span class="keywordflow">if</span> (cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a28b0b301811a891225ba9a58c412482d">pc</a> != 0) {</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>  <a class="code" href="../../d6/de3/structrb__iseq__struct.html">rb_iseq_t</a> *iseq = cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4b25ca925a9f60481173632b9c09d4e0">iseq</a>;</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span> </div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>  line_no = <a class="code" href="../../de/de9/vm_8c.html#a70289cbb34babceed6243d9471e70e5f">rb_vm_get_sourceline</a>(cfp);</div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>  file = iseq-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#a06859fa5de56f2ede3cb692f1d9215e2">filename</a>;</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>  <span class="keywordflow">if</span> ((*iter)(arg, file, line_no, iseq-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#a35596da255ce28a5d1da94c2cc508c7d">name</a>)) <span class="keywordflow">break</span>;</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>  }</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>  }</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="../../d8/d32/vm__core_8h.html#ae154762699bf1f722bdf05c22026d678">RUBYVM_CFUNC_FRAME_P</a>(cfp)) {</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#afa5b9137f051ac26d7ccc8824f178233">ID</a> <a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a64ae40793ade89d800a8c5646d2980fc">id</a>;</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>  <span class="keyword">extern</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../d2/d0b/version_8c.html#aca7df2b4c101d2d9bc946de586de224c">ruby_engine_name</a>;</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span> </div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>  <span class="keywordflow">if</span> (<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a4832bad8845a35fc50f7a160901854a1">NIL_P</a>(file)) file = <a class="code" href="../../d2/d0b/version_8c.html#aca7df2b4c101d2d9bc946de586de224c">ruby_engine_name</a>;</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>  <span class="keywordflow">if</span> (cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#aa0ec76f80ebaf0668b688c4e4e5e3e3f">me</a>-><a class="code" href="../../d7/db7/structrb__method__entry__struct.html#a6c868c50e67b757c6324dfef0f3184dc">def</a>)</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>  <span class="keywordtype">id</span> = cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#aa0ec76f80ebaf0668b688c4e4e5e3e3f">me</a>-><a class="code" href="../../d7/db7/structrb__method__entry__struct.html#a6c868c50e67b757c6324dfef0f3184dc">def</a>-><a class="code" href="../../d6/dab/structrb__method__definition__struct.html#a7fc0edb8505a61f8ae8bf2544fa7f676">original_id</a>;</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>  <span class="keywordtype">id</span> = cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#aa0ec76f80ebaf0668b688c4e4e5e3e3f">me</a>-><a class="code" href="../../d7/db7/structrb__method__entry__struct.html#a31439bd620e98940410ba59244a85eae">called_id</a>;</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>  <span class="keywordflow">if</span> (<span class="keywordtype">id</span> != <a class="code" href="../../db/d2e/intern_8h.html#aae711a904c63bacc1664e9ee240fc9b3">ID_ALLOCATOR</a> && (*iter)(arg, file, line_no, <a class="code" href="../../d5/d11/ripper_8c.html#aec42ef320e57234e789bdda6d655716f">rb_id2str</a>(<span class="keywordtype">id</span>)))</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span>  }</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>  cfp = <a class="code" href="../../d8/d32/vm__core_8h.html#a456e0e30a5829a029128bcb785ff6933">RUBY_VM_NEXT_CONTROL_FRAME</a>(cfp);</div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>  }</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span>  <span class="keywordflow">return</span> <a class="code" href="../../d1/d5c/nkf_8h.html#aa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>;</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span> }</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span> </div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00836"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a0bfc83f8e81743a8e2267f285fc687e0"> 836</a></span> <a class="code" href="../../de/de9/vm_8c.html#a0bfc83f8e81743a8e2267f285fc687e0">vm_backtrace_alloc</a>(<span class="keywordtype">void</span> *arg)</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span> {</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *aryp = arg;</div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>  *aryp = <a class="code" href="../../dc/dcc/array_8c.html#a9518114fd36cb4ef4656ec1dc63348c9">rb_ary_new</a>();</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span> }</div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span> </div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span> <span class="keyword">static</span> <span class="keywordtype">int</span></div><div class="line"><a name="l00843"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#ac10c02440395b95b8b6fbc79d2e1e127"> 843</a></span> <a class="code" href="../../de/de9/vm_8c.html#ac10c02440395b95b8b6fbc79d2e1e127">vm_backtrace_push</a>(<span class="keywordtype">void</span> *arg, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> file, <span class="keywordtype">int</span> line_no, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a>)</div><div class="line"><a name="l00844"></a><span class="lineno"> 844</span> {</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *aryp = arg;</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> bt;</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span> </div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>  <span class="keywordflow">if</span> (line_no) {</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>  bt = <a class="code" href="../../d9/d2d/sprintf_8c.html#a216ef515f4c79ee337820c5f637b802c">rb_enc_sprintf</a>(<a class="code" href="../../d5/db5/encoding_8c.html#a533ed45f02a3f72987b0f6f5ce04c996">rb_enc_compatible</a>(file, <a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a>), <span class="stringliteral">"%s:%d:in `%s'"</span>,</div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>  <a class="code" href="../../d8/df4/generator_8h.html#aa0c7097c0d82c8372072fbab5a604e39">RSTRING_PTR</a>(file), line_no, <a class="code" href="../../d8/df4/generator_8h.html#aa0c7097c0d82c8372072fbab5a604e39">RSTRING_PTR</a>(<a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a>));</div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>  }</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>  bt = <a class="code" href="../../d9/d2d/sprintf_8c.html#a216ef515f4c79ee337820c5f637b802c">rb_enc_sprintf</a>(<a class="code" href="../../d5/db5/encoding_8c.html#a533ed45f02a3f72987b0f6f5ce04c996">rb_enc_compatible</a>(file, <a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a>), <span class="stringliteral">"%s:in `%s'"</span>,</div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>  <a class="code" href="../../d8/df4/generator_8h.html#aa0c7097c0d82c8372072fbab5a604e39">RSTRING_PTR</a>(file), <a class="code" href="../../d8/df4/generator_8h.html#aa0c7097c0d82c8372072fbab5a604e39">RSTRING_PTR</a>(<a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a>));</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>  }</div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span>  <a class="code" href="../../dc/dcc/array_8c.html#a59d553a8cd781364b8bcb0deae25cca2">rb_ary_push</a>(*aryp, bt);</div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span> }</div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span> </div><div class="line"><a name="l00860"></a><span class="lineno"> 860</span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l00861"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a1a2da1f8e6027c3088ccde6bc397b34d"> 861</a></span> <a class="code" href="../../de/de9/vm_8c.html#a1a2da1f8e6027c3088ccde6bc397b34d">vm_backtrace</a>(<a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th, <span class="keywordtype">int</span> lev)</div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span> {</div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> ary = 0;</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span> </div><div class="line"><a name="l00865"></a><span class="lineno"> 865</span>  <span class="keywordflow">if</span> (lev < 0) {</div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span>  ary = <a class="code" href="../../dc/dcc/array_8c.html#a9518114fd36cb4ef4656ec1dc63348c9">rb_ary_new</a>();</div><div class="line"><a name="l00867"></a><span class="lineno"> 867</span>  }</div><div class="line"><a name="l00868"></a><span class="lineno"> 868</span>  <a class="code" href="../../de/de9/vm_8c.html#a9c233b8f4d2f77f12089fc293705ddea">vm_backtrace_each</a>(th, lev, <a class="code" href="../../de/de9/vm_8c.html#a0bfc83f8e81743a8e2267f285fc687e0">vm_backtrace_alloc</a>, <a class="code" href="../../de/de9/vm_8c.html#ac10c02440395b95b8b6fbc79d2e1e127">vm_backtrace_push</a>, &ary);</div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span>  <span class="keywordflow">if</span> (!ary) <span class="keywordflow">return</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>;</div><div class="line"><a name="l00870"></a><span class="lineno"> 870</span>  <span class="keywordflow">return</span> <a class="code" href="../../dc/dcc/array_8c.html#a28b218710cccc0bf0ca8467e9bbfa60f">rb_ary_reverse</a>(ary);</div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span> }</div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span> </div><div class="line"><a name="l00873"></a><span class="lineno"> 873</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *</div><div class="line"><a name="l00874"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a452b5b1b1a54238cd749112eb9e9d688"> 874</a></span> <a class="code" href="../../de/de9/vm_8c.html#a452b5b1b1a54238cd749112eb9e9d688">rb_sourcefile</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span> {</div><div class="line"><a name="l00876"></a><span class="lineno"> 876</span>  <a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th = <a class="code" href="../../d8/d32/vm__core_8h.html#a8deb84ec6023e3229db88ac2c9da6138">GET_THREAD</a>();</div><div class="line"><a name="l00877"></a><span class="lineno"> 877</span>  <a class="code" href="../../dd/d84/structrb__control__frame__t.html">rb_control_frame_t</a> *cfp = <a class="code" href="../../de/de9/vm_8c.html#a2709ccd7eeff81c0f749a7678223857e">rb_vm_get_ruby_level_next_cfp</a>(th, th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>);</div><div class="line"><a name="l00878"></a><span class="lineno"> 878</span> </div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span>  <span class="keywordflow">if</span> (cfp) {</div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span>  <span class="keywordflow">return</span> <a class="code" href="../../d8/df4/generator_8h.html#aa0c7097c0d82c8372072fbab5a604e39">RSTRING_PTR</a>(cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4b25ca925a9f60481173632b9c09d4e0">iseq</a>-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#a06859fa5de56f2ede3cb692f1d9215e2">filename</a>);</div><div class="line"><a name="l00881"></a><span class="lineno"> 881</span>  }</div><div class="line"><a name="l00882"></a><span class="lineno"> 882</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00883"></a><span class="lineno"> 883</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span>  }</div><div class="line"><a name="l00885"></a><span class="lineno"> 885</span> }</div><div class="line"><a name="l00886"></a><span class="lineno"> 886</span> </div><div class="line"><a name="l00887"></a><span class="lineno"> 887</span> <span class="keywordtype">int</span></div><div class="line"><a name="l00888"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#af5f87f9d39ea7433dc0de2f655bd6359"> 888</a></span> <a class="code" href="../../de/de9/vm_8c.html#af5f87f9d39ea7433dc0de2f655bd6359">rb_sourceline</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00889"></a><span class="lineno"> 889</span> {</div><div class="line"><a name="l00890"></a><span class="lineno"> 890</span>  <a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th = <a class="code" href="../../d8/d32/vm__core_8h.html#a8deb84ec6023e3229db88ac2c9da6138">GET_THREAD</a>();</div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span>  <a class="code" href="../../dd/d84/structrb__control__frame__t.html">rb_control_frame_t</a> *cfp = <a class="code" href="../../de/de9/vm_8c.html#a2709ccd7eeff81c0f749a7678223857e">rb_vm_get_ruby_level_next_cfp</a>(th, th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>);</div><div class="line"><a name="l00892"></a><span class="lineno"> 892</span> </div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>  <span class="keywordflow">if</span> (cfp) {</div><div class="line"><a name="l00894"></a><span class="lineno"> 894</span>  <span class="keywordflow">return</span> <a class="code" href="../../de/de9/vm_8c.html#a70289cbb34babceed6243d9471e70e5f">rb_vm_get_sourceline</a>(cfp);</div><div class="line"><a name="l00895"></a><span class="lineno"> 895</span>  }</div><div class="line"><a name="l00896"></a><span class="lineno"> 896</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00897"></a><span class="lineno"> 897</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00898"></a><span class="lineno"> 898</span>  }</div><div class="line"><a name="l00899"></a><span class="lineno"> 899</span> }</div><div class="line"><a name="l00900"></a><span class="lineno"> 900</span> </div><div class="line"><a name="l00901"></a><span class="lineno"> 901</span> <a class="code" href="../../dd/de6/struct_r_node.html">NODE</a> *</div><div class="line"><a name="l00902"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a148afe59d50d9a0f3bde4d9968d8a2f5"> 902</a></span> <a class="code" href="../../de/de9/vm_8c.html#a148afe59d50d9a0f3bde4d9968d8a2f5">rb_vm_cref</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00903"></a><span class="lineno"> 903</span> {</div><div class="line"><a name="l00904"></a><span class="lineno"> 904</span>  <a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th = <a class="code" href="../../d8/d32/vm__core_8h.html#a8deb84ec6023e3229db88ac2c9da6138">GET_THREAD</a>();</div><div class="line"><a name="l00905"></a><span class="lineno"> 905</span>  <a class="code" href="../../dd/d84/structrb__control__frame__t.html">rb_control_frame_t</a> *cfp = <a class="code" href="../../de/de9/vm_8c.html#a2709ccd7eeff81c0f749a7678223857e">rb_vm_get_ruby_level_next_cfp</a>(th, th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>);</div><div class="line"><a name="l00906"></a><span class="lineno"> 906</span> </div><div class="line"><a name="l00907"></a><span class="lineno"> 907</span>  <span class="keywordflow">if</span> (cfp == 0) {</div><div class="line"><a name="l00908"></a><span class="lineno"> 908</span>  <a class="code" href="../../db/dcc/error_8c.html#a0f771a2840561f1838169b3d7d4616f3">rb_raise</a>(<a class="code" href="../../db/dcc/error_8c.html#a95ad3953d535707e2cf2b1d837f5e253">rb_eRuntimeError</a>, <span class="stringliteral">"Can't call on top of Fiber or Thread"</span>);</div><div class="line"><a name="l00909"></a><span class="lineno"> 909</span>  }</div><div class="line"><a name="l00910"></a><span class="lineno"> 910</span>  <span class="keywordflow">return</span> <a class="code" href="../../d0/db2/vm__insnhelper_8c.html#aa231905b7ab6df0352fe4332ff5f5deb">vm_get_cref</a>(cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4b25ca925a9f60481173632b9c09d4e0">iseq</a>, cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#af3314cb37c8a27353101bf6f35574946">lfp</a>, cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#ac1cafd093e114d3ec99ebeca0ffeb048">dfp</a>);</div><div class="line"><a name="l00911"></a><span class="lineno"> 911</span> }</div><div class="line"><a name="l00912"></a><span class="lineno"> 912</span> </div><div class="line"><a name="l00913"></a><span class="lineno"> 913</span> <span class="preprocessor">#if 0</span></div><div class="line"><a name="l00914"></a><span class="lineno"> 914</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00915"></a><span class="lineno"> 915</span> debug_cref(<a class="code" href="../../dd/de6/struct_r_node.html">NODE</a> *cref)</div><div class="line"><a name="l00916"></a><span class="lineno"> 916</span> {</div><div class="line"><a name="l00917"></a><span class="lineno"> 917</span>  <span class="keywordflow">while</span> (cref) {</div><div class="line"><a name="l00918"></a><span class="lineno"> 918</span>  <a class="code" href="../../db/d16/debug_8h.html#a08a47aff6867e5ae146382e66d2cc26b">dp</a>(cref->nd_clss);</div><div class="line"><a name="l00919"></a><span class="lineno"> 919</span>  printf(<span class="stringliteral">"%ld\n"</span>, cref->nd_visi);</div><div class="line"><a name="l00920"></a><span class="lineno"> 920</span>  cref = cref->nd_next;</div><div class="line"><a name="l00921"></a><span class="lineno"> 921</span>  }</div><div class="line"><a name="l00922"></a><span class="lineno"> 922</span> }</div><div class="line"><a name="l00923"></a><span class="lineno"> 923</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00924"></a><span class="lineno"> 924</span> </div><div class="line"><a name="l00925"></a><span class="lineno"> 925</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l00926"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#ab942ba41eb7429c6a2059edcf7403233"> 926</a></span> <a class="code" href="../../de/de9/vm_8c.html#ab942ba41eb7429c6a2059edcf7403233">rb_vm_cbase</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00927"></a><span class="lineno"> 927</span> {</div><div class="line"><a name="l00928"></a><span class="lineno"> 928</span>  <a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th = <a class="code" href="../../d8/d32/vm__core_8h.html#a8deb84ec6023e3229db88ac2c9da6138">GET_THREAD</a>();</div><div class="line"><a name="l00929"></a><span class="lineno"> 929</span>  <a class="code" href="../../dd/d84/structrb__control__frame__t.html">rb_control_frame_t</a> *cfp = <a class="code" href="../../de/de9/vm_8c.html#a2709ccd7eeff81c0f749a7678223857e">rb_vm_get_ruby_level_next_cfp</a>(th, th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>);</div><div class="line"><a name="l00930"></a><span class="lineno"> 930</span> </div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span>  <span class="keywordflow">if</span> (cfp == 0) {</div><div class="line"><a name="l00932"></a><span class="lineno"> 932</span>  <a class="code" href="../../db/dcc/error_8c.html#a0f771a2840561f1838169b3d7d4616f3">rb_raise</a>(<a class="code" href="../../db/dcc/error_8c.html#a95ad3953d535707e2cf2b1d837f5e253">rb_eRuntimeError</a>, <span class="stringliteral">"Can't call on top of Fiber or Thread"</span>);</div><div class="line"><a name="l00933"></a><span class="lineno"> 933</span>  }</div><div class="line"><a name="l00934"></a><span class="lineno"> 934</span>  <span class="keywordflow">return</span> <a class="code" href="../../d0/db2/vm__insnhelper_8c.html#ac06f2b083c5e0eb199111f9d31fee829">vm_get_cbase</a>(cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4b25ca925a9f60481173632b9c09d4e0">iseq</a>, cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#af3314cb37c8a27353101bf6f35574946">lfp</a>, cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#ac1cafd093e114d3ec99ebeca0ffeb048">dfp</a>);</div><div class="line"><a name="l00935"></a><span class="lineno"> 935</span> }</div><div class="line"><a name="l00936"></a><span class="lineno"> 936</span> </div><div class="line"><a name="l00937"></a><span class="lineno"> 937</span> <span class="comment">/* jump */</span></div><div class="line"><a name="l00938"></a><span class="lineno"> 938</span> </div><div class="line"><a name="l00939"></a><span class="lineno"> 939</span> <span class="keyword">static</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l00940"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#aee005debbaae740dafe23261682f80d2"> 940</a></span> <a class="code" href="../../de/de9/vm_8c.html#aee005debbaae740dafe23261682f80d2">make_localjump_error</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *mesg, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> value, <span class="keywordtype">int</span> reason)</div><div class="line"><a name="l00941"></a><span class="lineno"> 941</span> {</div><div class="line"><a name="l00942"></a><span class="lineno"> 942</span>  <span class="keyword">extern</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../d3/d57/eval_8c.html#a0d9f0f9371f3273e30d146f54767da6f">rb_eLocalJumpError</a>;</div><div class="line"><a name="l00943"></a><span class="lineno"> 943</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> exc = <a class="code" href="../../db/dcc/error_8c.html#ab629d2b031e852bf387e32c836417061">rb_exc_new2</a>(<a class="code" href="../../d3/d57/eval_8c.html#a0d9f0f9371f3273e30d146f54767da6f">rb_eLocalJumpError</a>, mesg);</div><div class="line"><a name="l00944"></a><span class="lineno"> 944</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#afa5b9137f051ac26d7ccc8824f178233">ID</a> <a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a64ae40793ade89d800a8c5646d2980fc">id</a>;</div><div class="line"><a name="l00945"></a><span class="lineno"> 945</span> </div><div class="line"><a name="l00946"></a><span class="lineno"> 946</span>  <span class="keywordflow">switch</span> (reason) {</div><div class="line"><a name="l00947"></a><span class="lineno"> 947</span>  <span class="keywordflow">case</span> <a class="code" href="../../dd/dd0/eval__intern_8h.html#aa69d9fa25afdc01237612a6047b96189">TAG_BREAK</a>:</div><div class="line"><a name="l00948"></a><span class="lineno"> 948</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aa50b9d5bc665eb5545f6857c89232161">CONST_ID</a>(<span class="keywordtype">id</span>, <span class="stringliteral">"break"</span>);</div><div class="line"><a name="l00949"></a><span class="lineno"> 949</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00950"></a><span class="lineno"> 950</span>  <span class="keywordflow">case</span> <a class="code" href="../../dd/dd0/eval__intern_8h.html#a82e8bb282a1d35fcc453335b090bd4a7">TAG_REDO</a>:</div><div class="line"><a name="l00951"></a><span class="lineno"> 951</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aa50b9d5bc665eb5545f6857c89232161">CONST_ID</a>(<span class="keywordtype">id</span>, <span class="stringliteral">"redo"</span>);</div><div class="line"><a name="l00952"></a><span class="lineno"> 952</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00953"></a><span class="lineno"> 953</span>  <span class="keywordflow">case</span> <a class="code" href="../../dd/dd0/eval__intern_8h.html#a277f73abdf66e83f4fc75b93d6e87b72">TAG_RETRY</a>:</div><div class="line"><a name="l00954"></a><span class="lineno"> 954</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aa50b9d5bc665eb5545f6857c89232161">CONST_ID</a>(<span class="keywordtype">id</span>, <span class="stringliteral">"retry"</span>);</div><div class="line"><a name="l00955"></a><span class="lineno"> 955</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00956"></a><span class="lineno"> 956</span>  <span class="keywordflow">case</span> <a class="code" href="../../dd/dd0/eval__intern_8h.html#ac5d3e11622cde853addb87cfae24021e">TAG_NEXT</a>:</div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aa50b9d5bc665eb5545f6857c89232161">CONST_ID</a>(<span class="keywordtype">id</span>, <span class="stringliteral">"next"</span>);</div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00959"></a><span class="lineno"> 959</span>  <span class="keywordflow">case</span> <a class="code" href="../../dd/dd0/eval__intern_8h.html#abfe39758eac9658dbce9750e4bfddbc6">TAG_RETURN</a>:</div><div class="line"><a name="l00960"></a><span class="lineno"> 960</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aa50b9d5bc665eb5545f6857c89232161">CONST_ID</a>(<span class="keywordtype">id</span>, <span class="stringliteral">"return"</span>);</div><div class="line"><a name="l00961"></a><span class="lineno"> 961</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00962"></a><span class="lineno"> 962</span>  <span class="keywordflow">default</span>:</div><div class="line"><a name="l00963"></a><span class="lineno"> 963</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aa50b9d5bc665eb5545f6857c89232161">CONST_ID</a>(<span class="keywordtype">id</span>, <span class="stringliteral">"noreason"</span>);</div><div class="line"><a name="l00964"></a><span class="lineno"> 964</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00965"></a><span class="lineno"> 965</span>  }</div><div class="line"><a name="l00966"></a><span class="lineno"> 966</span>  <a class="code" href="../../db/d2e/intern_8h.html#a7e5b0d4c40fecb26c1ac946f674a690e">rb_iv_set</a>(exc, <span class="stringliteral">"@exit_value"</span>, value);</div><div class="line"><a name="l00967"></a><span class="lineno"> 967</span>  <a class="code" href="../../db/d2e/intern_8h.html#a7e5b0d4c40fecb26c1ac946f674a690e">rb_iv_set</a>(exc, <span class="stringliteral">"@reason"</span>, <a class="code" href="../../dc/d0c/cparse_8c.html#a48bfb6519a45249fb2ec0193ea3b6e1c">ID2SYM</a>(<span class="keywordtype">id</span>));</div><div class="line"><a name="l00968"></a><span class="lineno"> 968</span>  <span class="keywordflow">return</span> exc;</div><div class="line"><a name="l00969"></a><span class="lineno"> 969</span> }</div><div class="line"><a name="l00970"></a><span class="lineno"> 970</span> </div><div class="line"><a name="l00971"></a><span class="lineno"> 971</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00972"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a0402672d92f48e0018ab5f8aeda270e6"> 972</a></span> <a class="code" href="../../de/de9/vm_8c.html#a0402672d92f48e0018ab5f8aeda270e6">rb_vm_localjump_error</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *mesg, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> value, <span class="keywordtype">int</span> reason)</div><div class="line"><a name="l00973"></a><span class="lineno"> 973</span> {</div><div class="line"><a name="l00974"></a><span class="lineno"> 974</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> exc = <a class="code" href="../../de/de9/vm_8c.html#aee005debbaae740dafe23261682f80d2">make_localjump_error</a>(mesg, value, reason);</div><div class="line"><a name="l00975"></a><span class="lineno"> 975</span>  <a class="code" href="../../d3/d57/eval_8c.html#a237939d28c83950b84fb6a45ccca53a0">rb_exc_raise</a>(exc);</div><div class="line"><a name="l00976"></a><span class="lineno"> 976</span> }</div><div class="line"><a name="l00977"></a><span class="lineno"> 977</span> </div><div class="line"><a name="l00978"></a><span class="lineno"> 978</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l00979"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#aa81384e9111765fdcf967b201efb2e6b"> 979</a></span> <a class="code" href="../../de/de9/vm_8c.html#aa81384e9111765fdcf967b201efb2e6b">rb_vm_make_jump_tag_but_local_jump</a>(<span class="keywordtype">int</span> <a class="code" href="../../d5/d1d/gb18030_8c.html#adc6e5733fc3c22f0a7b2914188c49c90">state</a>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> val)</div><div class="line"><a name="l00980"></a><span class="lineno"> 980</span> {</div><div class="line"><a name="l00981"></a><span class="lineno"> 981</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../d8/d90/nkf_8c.html#a5ea5ac7abf5cce39283e422add1067d5">result</a> = <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>;</div><div class="line"><a name="l00982"></a><span class="lineno"> 982</span> </div><div class="line"><a name="l00983"></a><span class="lineno"> 983</span>  <span class="keywordflow">if</span> (val == <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a2edf6990280eb2637623ccd421dee4f0">Qundef</a>) {</div><div class="line"><a name="l00984"></a><span class="lineno"> 984</span>  val = <a class="code" href="../../d8/d32/vm__core_8h.html#a8deb84ec6023e3229db88ac2c9da6138">GET_THREAD</a>()->tag->retval;</div><div class="line"><a name="l00985"></a><span class="lineno"> 985</span>  }</div><div class="line"><a name="l00986"></a><span class="lineno"> 986</span>  <span class="keywordflow">switch</span> (<a class="code" href="../../d5/d1d/gb18030_8c.html#adc6e5733fc3c22f0a7b2914188c49c90">state</a>) {</div><div class="line"><a name="l00987"></a><span class="lineno"> 987</span>  <span class="keywordflow">case</span> 0:</div><div class="line"><a name="l00988"></a><span class="lineno"> 988</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00989"></a><span class="lineno"> 989</span>  <span class="keywordflow">case</span> <a class="code" href="../../dd/dd0/eval__intern_8h.html#abfe39758eac9658dbce9750e4bfddbc6">TAG_RETURN</a>:</div><div class="line"><a name="l00990"></a><span class="lineno"> 990</span>  <a class="code" href="../../d8/d90/nkf_8c.html#a5ea5ac7abf5cce39283e422add1067d5">result</a> = <a class="code" href="../../de/de9/vm_8c.html#aee005debbaae740dafe23261682f80d2">make_localjump_error</a>(<span class="stringliteral">"unexpected return"</span>, val, <a class="code" href="../../d5/d1d/gb18030_8c.html#adc6e5733fc3c22f0a7b2914188c49c90">state</a>);</div><div class="line"><a name="l00991"></a><span class="lineno"> 991</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00992"></a><span class="lineno"> 992</span>  <span class="keywordflow">case</span> <a class="code" href="../../dd/dd0/eval__intern_8h.html#aa69d9fa25afdc01237612a6047b96189">TAG_BREAK</a>:</div><div class="line"><a name="l00993"></a><span class="lineno"> 993</span>  <a class="code" href="../../d8/d90/nkf_8c.html#a5ea5ac7abf5cce39283e422add1067d5">result</a> = <a class="code" href="../../de/de9/vm_8c.html#aee005debbaae740dafe23261682f80d2">make_localjump_error</a>(<span class="stringliteral">"unexpected break"</span>, val, <a class="code" href="../../d5/d1d/gb18030_8c.html#adc6e5733fc3c22f0a7b2914188c49c90">state</a>);</div><div class="line"><a name="l00994"></a><span class="lineno"> 994</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00995"></a><span class="lineno"> 995</span>  <span class="keywordflow">case</span> <a class="code" href="../../dd/dd0/eval__intern_8h.html#ac5d3e11622cde853addb87cfae24021e">TAG_NEXT</a>:</div><div class="line"><a name="l00996"></a><span class="lineno"> 996</span>  <a class="code" href="../../d8/d90/nkf_8c.html#a5ea5ac7abf5cce39283e422add1067d5">result</a> = <a class="code" href="../../de/de9/vm_8c.html#aee005debbaae740dafe23261682f80d2">make_localjump_error</a>(<span class="stringliteral">"unexpected next"</span>, val, <a class="code" href="../../d5/d1d/gb18030_8c.html#adc6e5733fc3c22f0a7b2914188c49c90">state</a>);</div><div class="line"><a name="l00997"></a><span class="lineno"> 997</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00998"></a><span class="lineno"> 998</span>  <span class="keywordflow">case</span> <a class="code" href="../../dd/dd0/eval__intern_8h.html#a82e8bb282a1d35fcc453335b090bd4a7">TAG_REDO</a>:</div><div class="line"><a name="l00999"></a><span class="lineno"> 999</span>  <a class="code" href="../../d8/d90/nkf_8c.html#a5ea5ac7abf5cce39283e422add1067d5">result</a> = <a class="code" href="../../de/de9/vm_8c.html#aee005debbaae740dafe23261682f80d2">make_localjump_error</a>(<span class="stringliteral">"unexpected redo"</span>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>, <a class="code" href="../../d5/d1d/gb18030_8c.html#adc6e5733fc3c22f0a7b2914188c49c90">state</a>);</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>  <span class="keywordflow">case</span> <a class="code" href="../../dd/dd0/eval__intern_8h.html#a277f73abdf66e83f4fc75b93d6e87b72">TAG_RETRY</a>:</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>  <a class="code" href="../../d8/d90/nkf_8c.html#a5ea5ac7abf5cce39283e422add1067d5">result</a> = <a class="code" href="../../de/de9/vm_8c.html#aee005debbaae740dafe23261682f80d2">make_localjump_error</a>(<span class="stringliteral">"retry outside of rescue clause"</span>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>, <a class="code" href="../../d5/d1d/gb18030_8c.html#adc6e5733fc3c22f0a7b2914188c49c90">state</a>);</div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>  <span class="keywordflow">default</span>:</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>  }</div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>  <span class="keywordflow">return</span> <a class="code" href="../../d8/d90/nkf_8c.html#a5ea5ac7abf5cce39283e422add1067d5">result</a>;</div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span> }</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span> </div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span> <span class="keywordtype">void</span></div><div class="line"><a name="l01011"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a976657030590c458cdb538951138a823"> 1011</a></span> <a class="code" href="../../de/de9/vm_8c.html#a976657030590c458cdb538951138a823">rb_vm_jump_tag_but_local_jump</a>(<span class="keywordtype">int</span> <a class="code" href="../../d5/d1d/gb18030_8c.html#adc6e5733fc3c22f0a7b2914188c49c90">state</a>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> val)</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span> {</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>  <span class="keywordflow">if</span> (val != <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>) {</div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> exc = <a class="code" href="../../de/de9/vm_8c.html#aa81384e9111765fdcf967b201efb2e6b">rb_vm_make_jump_tag_but_local_jump</a>(<a class="code" href="../../d5/d1d/gb18030_8c.html#adc6e5733fc3c22f0a7b2914188c49c90">state</a>, val);</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>  <span class="keywordflow">if</span> (!<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a4832bad8845a35fc50f7a160901854a1">NIL_P</a>(exc)) <a class="code" href="../../d3/d57/eval_8c.html#a237939d28c83950b84fb6a45ccca53a0">rb_exc_raise</a>(exc);</div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>  }</div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>  <a class="code" href="../../dd/dd0/eval__intern_8h.html#a24884166ae699029ade34fd36bedd688">JUMP_TAG</a>(<a class="code" href="../../d5/d1d/gb18030_8c.html#adc6e5733fc3c22f0a7b2914188c49c90">state</a>);</div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span> }</div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span> </div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span> <a class="code" href="../../de/de9/vm_8c.html#a22cceb6d47bb25095efe58a0a6ab2a34">NORETURN</a>(<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="../../de/de9/vm_8c.html#a558682fa4d3466e2877e03310d2d98d9">vm_iter_break</a>(<a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th));</div><div class="line"><a name="l01021"></a><span class="lineno"> 1021</span> </div><div class="line"><a name="l01022"></a><span class="lineno"> 1022</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l01023"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a558682fa4d3466e2877e03310d2d98d9"> 1023</a></span> <a class="code" href="../../de/de9/vm_8c.html#a558682fa4d3466e2877e03310d2d98d9">vm_iter_break</a>(<a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th)</div><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span> {</div><div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>  <a class="code" href="../../dd/d84/structrb__control__frame__t.html">rb_control_frame_t</a> *cfp = th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>;</div><div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *dfp = <a class="code" href="../../d8/d32/vm__core_8h.html#a373f1cafd944ff9e99986582d0fd695b">GC_GUARDED_PTR_REF</a>(*cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#ac1cafd093e114d3ec99ebeca0ffeb048">dfp</a>);</div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span> </div><div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a25bbafcd0a1e0f6f79b42cc29baf3eb8">state</a> = <a class="code" href="../../dd/dd0/eval__intern_8h.html#aa69d9fa25afdc01237612a6047b96189">TAG_BREAK</a>;</div><div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a173e2da61fa57c7044fd7874a8c7a924">errinfo</a> = (<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a>)<a class="code" href="../../dd/dd0/eval__intern_8h.html#a73e5172525e734da0d617c532cef0c6d">NEW_THROW_OBJECT</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>, (<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a>)dfp, <a class="code" href="../../dd/dd0/eval__intern_8h.html#aa69d9fa25afdc01237612a6047b96189">TAG_BREAK</a>);</div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>  <a class="code" href="../../dd/dd0/eval__intern_8h.html#a94d7b62a0538b4dc8a1d0c7c1308bfe7">TH_JUMP_TAG</a>(th, <a class="code" href="../../dd/dd0/eval__intern_8h.html#aa69d9fa25afdc01237612a6047b96189">TAG_BREAK</a>);</div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span> }</div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span> </div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span> <span class="keywordtype">void</span></div><div class="line"><a name="l01034"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a2d68db6481cad1995cbdb77a8ddd5291"> 1034</a></span> <a class="code" href="../../de/de9/vm_8c.html#a2d68db6481cad1995cbdb77a8ddd5291">rb_iter_break</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span> {</div><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>  <a class="code" href="../../de/de9/vm_8c.html#a558682fa4d3466e2877e03310d2d98d9">vm_iter_break</a>(<a class="code" href="../../d8/d32/vm__core_8h.html#a8deb84ec6023e3229db88ac2c9da6138">GET_THREAD</a>());</div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</span> }</div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span> </div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span> <span class="comment">/* optimization: redefine management */</span></div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span> </div><div class="line"><a name="l01041"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#ac6493695633068f17f9c245d529698d9"> 1041</a></span> <span class="keyword">static</span> <a class="code" href="../../d0/ddd/structst__table.html">st_table</a> *<a class="code" href="../../de/de9/vm_8c.html#ac6493695633068f17f9c245d529698d9">vm_opt_method_table</a> = 0;</div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span> </div><div class="line"><a name="l01043"></a><span class="lineno"> 1043</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l01044"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a810304f38337326e623456a52492584f"> 1044</a></span> <a class="code" href="../../de/de9/vm_8c.html#a810304f38337326e623456a52492584f">rb_vm_check_redefinition_opt_method</a>(<span class="keyword">const</span> <a class="code" href="../../d7/db7/structrb__method__entry__struct.html">rb_method_entry_t</a> *me)</div><div class="line"><a name="l01045"></a><span class="lineno"> 1045</span> {</div><div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>  <a class="code" href="../../de/dce/syck_8h.html#a8a45dfe133c1fd041e1b902bda9e43e8">st_data_t</a> bop;</div><div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>  <span class="keywordflow">if</span> (!me-><a class="code" href="../../d7/db7/structrb__method__entry__struct.html#a6c868c50e67b757c6324dfef0f3184dc">def</a> || me-><a class="code" href="../../d7/db7/structrb__method__entry__struct.html#a6c868c50e67b757c6324dfef0f3184dc">def</a>-><a class="code" href="../../d6/dab/structrb__method__definition__struct.html#a60ad63aa9037403df6e773853973c41b">type</a> == <a class="code" href="../../db/d0a/method_8h.html#a88a981f6cc69187ed9c2de2630a1687aa1691810af54507b018d2639b60e8057d">VM_METHOD_TYPE_CFUNC</a>) {</div><div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d6/d87/regint_8h.html#a8032e662c4b4ee0ded05bbe3f15d5c45">st_lookup</a>(<a class="code" href="../../de/de9/vm_8c.html#ac6493695633068f17f9c245d529698d9">vm_opt_method_table</a>, (<a class="code" href="../../de/dce/syck_8h.html#a8a45dfe133c1fd041e1b902bda9e43e8">st_data_t</a>)me, &bop)) {</div><div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>  <a class="code" href="../../de/de9/vm_8c.html#ae7ebc888013290c4c514a63794167a87">ruby_vm_redefined_flag</a>[bop] = 1;</div><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>  }</div><div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>  }</div><div class="line"><a name="l01052"></a><span class="lineno"> 1052</span> }</div><div class="line"><a name="l01053"></a><span class="lineno"> 1053</span> </div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l01055"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a19074acfc80b03239ef6b07b13a4b460"> 1055</a></span> <a class="code" href="../../de/de9/vm_8c.html#a19074acfc80b03239ef6b07b13a4b460">add_opt_method</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> klass, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#afa5b9137f051ac26d7ccc8824f178233">ID</a> mid, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> bop)</div><div class="line"><a name="l01056"></a><span class="lineno"> 1056</span> {</div><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>  <a class="code" href="../../d7/db7/structrb__method__entry__struct.html">rb_method_entry_t</a> *me;</div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d6/d87/regint_8h.html#a8032e662c4b4ee0ded05bbe3f15d5c45">st_lookup</a>(<a class="code" href="../../db/dde/internal_8h.html#ab59ea80cdf15f3f19bbae0346314c9ad">RCLASS_M_TBL</a>(klass), mid, (<span class="keywordtype">void</span> *)&me) && me->def &&</div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>  me->def->type == <a class="code" href="../../db/d0a/method_8h.html#a88a981f6cc69187ed9c2de2630a1687aa1691810af54507b018d2639b60e8057d">VM_METHOD_TYPE_CFUNC</a>) {</div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>  <a class="code" href="../../d6/d87/regint_8h.html#ab6920d7d3a34f3d179d1f35806e1965f">st_insert</a>(<a class="code" href="../../de/de9/vm_8c.html#ac6493695633068f17f9c245d529698d9">vm_opt_method_table</a>, (<a class="code" href="../../de/dce/syck_8h.html#a8a45dfe133c1fd041e1b902bda9e43e8">st_data_t</a>)me, (<a class="code" href="../../de/dce/syck_8h.html#a8a45dfe133c1fd041e1b902bda9e43e8">st_data_t</a>)bop);</div><div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>  }</div><div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>  <a class="code" href="../../db/dcc/error_8c.html#a2d5fb28e54f792e7341b2c45f52f3860">rb_bug</a>(<span class="stringliteral">"undefined optimized method: %s"</span>, <a class="code" href="../../d5/d11/ripper_8c.html#a877bc58c495643fcf49dc64c44631e72">rb_id2name</a>(mid));</div><div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>  }</div><div class="line"><a name="l01065"></a><span class="lineno"> 1065</span> }</div><div class="line"><a name="l01066"></a><span class="lineno"> 1066</span> </div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l01068"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a891ada54116b1442538ca6fc0e2861b1"> 1068</a></span> <a class="code" href="../../de/de9/vm_8c.html#a891ada54116b1442538ca6fc0e2861b1">vm_init_redefined_flag</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span> {</div><div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#afa5b9137f051ac26d7ccc8824f178233">ID</a> mid;</div><div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> bop;</div><div class="line"><a name="l01072"></a><span class="lineno"> 1072</span> </div><div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>  <a class="code" href="../../de/de9/vm_8c.html#ac6493695633068f17f9c245d529698d9">vm_opt_method_table</a> = <a class="code" href="../../d6/d87/regint_8h.html#a6de11f24647b8c2938badf820e79a976">st_init_numtable</a>();</div><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span> </div><div class="line"><a name="l01075"></a><span class="lineno"> 1075</span> <span class="preprocessor">#define OP(mid_, bop_) (mid = id##mid_, bop = BOP_##bop_, ruby_vm_redefined_flag[bop] = 0)</span></div><div class="line"><a name="l01076"></a><span class="lineno"> 1076</span> <span class="preprocessor">#define C(k) add_opt_method(rb_c##k, mid, bop)</span></div><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>  <a class="code" href="../../de/de9/vm_8c.html#a73a24c093ebc1906a9831819833fc1f7">OP</a>(PLUS, PLUS), (<a class="code" href="../../de/de9/vm_8c.html#abd5a67cb02cf079c0674935966148915">C</a>(Fixnum), <a class="code" href="../../de/de9/vm_8c.html#abd5a67cb02cf079c0674935966148915">C</a>(Float), <a class="code" href="../../de/de9/vm_8c.html#abd5a67cb02cf079c0674935966148915">C</a>(String), <a class="code" href="../../de/de9/vm_8c.html#abd5a67cb02cf079c0674935966148915">C</a>(Array));</div><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>  <a class="code" href="../../de/de9/vm_8c.html#a73a24c093ebc1906a9831819833fc1f7">OP</a>(MINUS, MINUS), (<a class="code" href="../../de/de9/vm_8c.html#abd5a67cb02cf079c0674935966148915">C</a>(Fixnum));</div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>  <a class="code" href="../../de/de9/vm_8c.html#a73a24c093ebc1906a9831819833fc1f7">OP</a>(MULT, MULT), (<a class="code" href="../../de/de9/vm_8c.html#abd5a67cb02cf079c0674935966148915">C</a>(Fixnum), <a class="code" href="../../de/de9/vm_8c.html#abd5a67cb02cf079c0674935966148915">C</a>(Float));</div><div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>  <a class="code" href="../../de/de9/vm_8c.html#a73a24c093ebc1906a9831819833fc1f7">OP</a>(<a class="code" href="../../dd/dc0/date__core_8c.html#a49becf5019eb7d2fa43fea31b977b203">DIV</a>, <a class="code" href="../../dd/dc0/date__core_8c.html#a49becf5019eb7d2fa43fea31b977b203">DIV</a>), (<a class="code" href="../../de/de9/vm_8c.html#abd5a67cb02cf079c0674935966148915">C</a>(Fixnum), <a class="code" href="../../de/de9/vm_8c.html#abd5a67cb02cf079c0674935966148915">C</a>(Float));</div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>  <a class="code" href="../../de/de9/vm_8c.html#a73a24c093ebc1906a9831819833fc1f7">OP</a>(<a class="code" href="../../dd/dc0/date__core_8c.html#aedafc0dc710c634ecec3900b66547a36">MOD</a>, <a class="code" href="../../dd/dc0/date__core_8c.html#aedafc0dc710c634ecec3900b66547a36">MOD</a>), (<a class="code" href="../../de/de9/vm_8c.html#abd5a67cb02cf079c0674935966148915">C</a>(Fixnum), <a class="code" href="../../de/de9/vm_8c.html#abd5a67cb02cf079c0674935966148915">C</a>(Float));</div><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>  <a class="code" href="../../de/de9/vm_8c.html#a73a24c093ebc1906a9831819833fc1f7">OP</a>(Eq, EQ), (<a class="code" href="../../de/de9/vm_8c.html#abd5a67cb02cf079c0674935966148915">C</a>(Fixnum), <a class="code" href="../../de/de9/vm_8c.html#abd5a67cb02cf079c0674935966148915">C</a>(Float), <a class="code" href="../../de/de9/vm_8c.html#abd5a67cb02cf079c0674935966148915">C</a>(String));</div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>  <a class="code" href="../../de/de9/vm_8c.html#a73a24c093ebc1906a9831819833fc1f7">OP</a>(Eqq, EQQ), (<a class="code" href="../../de/de9/vm_8c.html#abd5a67cb02cf079c0674935966148915">C</a>(Fixnum), <a class="code" href="../../de/de9/vm_8c.html#abd5a67cb02cf079c0674935966148915">C</a>(Bignum), <a class="code" href="../../de/de9/vm_8c.html#abd5a67cb02cf079c0674935966148915">C</a>(Float), <a class="code" href="../../de/de9/vm_8c.html#abd5a67cb02cf079c0674935966148915">C</a>(Symbol), <a class="code" href="../../de/de9/vm_8c.html#abd5a67cb02cf079c0674935966148915">C</a>(String));</div><div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>  <a class="code" href="../../de/de9/vm_8c.html#a73a24c093ebc1906a9831819833fc1f7">OP</a>(LT, LT), (<a class="code" href="../../de/de9/vm_8c.html#abd5a67cb02cf079c0674935966148915">C</a>(Fixnum));</div><div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>  <a class="code" href="../../de/de9/vm_8c.html#a73a24c093ebc1906a9831819833fc1f7">OP</a>(<a class="code" href="../../d5/d2d/utf__16__32_8c.html#aa4d6abc7b58eb11e517993df83b7f0f7">LE</a>, <a class="code" href="../../d5/d2d/utf__16__32_8c.html#aa4d6abc7b58eb11e517993df83b7f0f7">LE</a>), (<a class="code" href="../../de/de9/vm_8c.html#abd5a67cb02cf079c0674935966148915">C</a>(Fixnum));</div><div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>  <a class="code" href="../../de/de9/vm_8c.html#a73a24c093ebc1906a9831819833fc1f7">OP</a>(LTLT, LTLT), (<a class="code" href="../../de/de9/vm_8c.html#abd5a67cb02cf079c0674935966148915">C</a>(String), <a class="code" href="../../de/de9/vm_8c.html#abd5a67cb02cf079c0674935966148915">C</a>(Array));</div><div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>  <a class="code" href="../../de/de9/vm_8c.html#a73a24c093ebc1906a9831819833fc1f7">OP</a>(<a class="code" href="../../dc/d0c/cparse_8c.html#a2c5302305d878024276c413652549eb9">AREF</a>, <a class="code" href="../../dc/d0c/cparse_8c.html#a2c5302305d878024276c413652549eb9">AREF</a>), (<a class="code" href="../../de/de9/vm_8c.html#abd5a67cb02cf079c0674935966148915">C</a>(Array), <a class="code" href="../../de/de9/vm_8c.html#abd5a67cb02cf079c0674935966148915">C</a>(Hash));</div><div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>  <a class="code" href="../../de/de9/vm_8c.html#a73a24c093ebc1906a9831819833fc1f7">OP</a>(ASET, ASET), (<a class="code" href="../../de/de9/vm_8c.html#abd5a67cb02cf079c0674935966148915">C</a>(Array), <a class="code" href="../../de/de9/vm_8c.html#abd5a67cb02cf079c0674935966148915">C</a>(Hash));</div><div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>  <a class="code" href="../../de/de9/vm_8c.html#a73a24c093ebc1906a9831819833fc1f7">OP</a>(Length, LENGTH), (<a class="code" href="../../de/de9/vm_8c.html#abd5a67cb02cf079c0674935966148915">C</a>(Array), <a class="code" href="../../de/de9/vm_8c.html#abd5a67cb02cf079c0674935966148915">C</a>(String), <a class="code" href="../../de/de9/vm_8c.html#abd5a67cb02cf079c0674935966148915">C</a>(Hash));</div><div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>  <a class="code" href="../../de/de9/vm_8c.html#a73a24c093ebc1906a9831819833fc1f7">OP</a>(Size, SIZE), (<a class="code" href="../../de/de9/vm_8c.html#abd5a67cb02cf079c0674935966148915">C</a>(Array), <a class="code" href="../../de/de9/vm_8c.html#abd5a67cb02cf079c0674935966148915">C</a>(String), <a class="code" href="../../de/de9/vm_8c.html#abd5a67cb02cf079c0674935966148915">C</a>(Hash));</div><div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>  <a class="code" href="../../de/de9/vm_8c.html#a73a24c093ebc1906a9831819833fc1f7">OP</a>(Succ, SUCC), (<a class="code" href="../../de/de9/vm_8c.html#abd5a67cb02cf079c0674935966148915">C</a>(Fixnum), <a class="code" href="../../de/de9/vm_8c.html#abd5a67cb02cf079c0674935966148915">C</a>(String), <a class="code" href="../../de/de9/vm_8c.html#abd5a67cb02cf079c0674935966148915">C</a>(Time));</div><div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>  <a class="code" href="../../de/de9/vm_8c.html#a73a24c093ebc1906a9831819833fc1f7">OP</a>(GT, GT), (<a class="code" href="../../de/de9/vm_8c.html#abd5a67cb02cf079c0674935966148915">C</a>(Fixnum));</div><div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>  <a class="code" href="../../de/de9/vm_8c.html#a73a24c093ebc1906a9831819833fc1f7">OP</a>(GE, GE), (<a class="code" href="../../de/de9/vm_8c.html#abd5a67cb02cf079c0674935966148915">C</a>(Fixnum));</div><div class="line"><a name="l01094"></a><span class="lineno"> 1094</span> <span class="preprocessor">#undef C</span></div><div class="line"><a name="l01095"></a><span class="lineno"> 1095</span> <span class="preprocessor">#undef OP</span></div><div class="line"><a name="l01096"></a><span class="lineno"> 1096</span> }</div><div class="line"><a name="l01097"></a><span class="lineno"> 1097</span> </div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span> <span class="comment">/* for vm development */</span></div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span> </div><div class="line"><a name="l01100"></a><span class="lineno"> 1100</span> <span class="preprocessor">#if VMDEBUG</span></div><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *</div><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span> vm_frametype_name(<span class="keyword">const</span> <a class="code" href="../../dd/d84/structrb__control__frame__t.html">rb_control_frame_t</a> *cfp)</div><div class="line"><a name="l01103"></a><span class="lineno"> 1103</span> {</div><div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>  <span class="keywordflow">switch</span> (<a class="code" href="../../d8/d32/vm__core_8h.html#a423bad734fe427f4d5deeb4fe71fff65">VM_FRAME_TYPE</a>(cfp)) {</div><div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>  <span class="keywordflow">case</span> <a class="code" href="../../d8/d32/vm__core_8h.html#abc8be29d36c6252fce6bc61621f81b71">VM_FRAME_MAGIC_METHOD</a>: <span class="keywordflow">return</span> <span class="stringliteral">"method"</span>;</div><div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>  <span class="keywordflow">case</span> <a class="code" href="../../d8/d32/vm__core_8h.html#a83eeedff3dde6d2d1ffce5d84c2ba2f1">VM_FRAME_MAGIC_BLOCK</a>: <span class="keywordflow">return</span> <span class="stringliteral">"block"</span>;</div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>  <span class="keywordflow">case</span> <a class="code" href="../../d8/d32/vm__core_8h.html#a2524f590c07fceb689b2b7d53114ff5f">VM_FRAME_MAGIC_CLASS</a>: <span class="keywordflow">return</span> <span class="stringliteral">"class"</span>;</div><div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>  <span class="keywordflow">case</span> <a class="code" href="../../d8/d32/vm__core_8h.html#ac9390ef02c17a0bc7e3bd359264562c7">VM_FRAME_MAGIC_TOP</a>: <span class="keywordflow">return</span> <span class="stringliteral">"top"</span>;</div><div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>  <span class="keywordflow">case</span> <a class="code" href="../../d8/d32/vm__core_8h.html#a885c6468caef6c3de80b0ad6c50ae38d">VM_FRAME_MAGIC_FINISH</a>: <span class="keywordflow">return</span> <span class="stringliteral">"finish"</span>;</div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>  <span class="keywordflow">case</span> <a class="code" href="../../d8/d32/vm__core_8h.html#a26308f33317bb5b96ff89924822e8eab">VM_FRAME_MAGIC_CFUNC</a>: <span class="keywordflow">return</span> <span class="stringliteral">"cfunc"</span>;</div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>  <span class="keywordflow">case</span> <a class="code" href="../../d8/d32/vm__core_8h.html#ac1f5b7efa57bccbeb4ff5e7ae6ff18c2">VM_FRAME_MAGIC_PROC</a>: <span class="keywordflow">return</span> <span class="stringliteral">"proc"</span>;</div><div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>  <span class="keywordflow">case</span> <a class="code" href="../../d8/d32/vm__core_8h.html#a795522d157a66fe8f0cdd335b28099c9">VM_FRAME_MAGIC_IFUNC</a>: <span class="keywordflow">return</span> <span class="stringliteral">"ifunc"</span>;</div><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>  <span class="keywordflow">case</span> <a class="code" href="../../d8/d32/vm__core_8h.html#ac7b8d797cce488d08572c273f49f28fe">VM_FRAME_MAGIC_EVAL</a>: <span class="keywordflow">return</span> <span class="stringliteral">"eval"</span>;</div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>  <span class="keywordflow">case</span> <a class="code" href="../../d8/d32/vm__core_8h.html#a57840803108748406429fb1cb3b10530">VM_FRAME_MAGIC_LAMBDA</a>: <span class="keywordflow">return</span> <span class="stringliteral">"lambda"</span>;</div><div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>  <span class="keywordflow">default</span>:</div><div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>  <a class="code" href="../../db/dcc/error_8c.html#a2d5fb28e54f792e7341b2c45f52f3860">rb_bug</a>(<span class="stringliteral">"unknown frame"</span>);</div><div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>  }</div><div class="line"><a name="l01118"></a><span class="lineno"> 1118</span> }</div><div class="line"><a name="l01119"></a><span class="lineno"> 1119</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l01120"></a><span class="lineno"> 1120</span> </div><div class="line"><a name="l01121"></a><span class="lineno"> 1121</span> <span class="comment">/* evaluator body */</span></div><div class="line"><a name="l01122"></a><span class="lineno"> 1122</span> </div><div class="line"><a name="l01123"></a><span class="lineno"> 1123</span> <span class="comment">/* finish</span></div><div class="line"><a name="l01124"></a><span class="lineno"> 1124</span> <span class="comment"> VMe (h1) finish</span></div><div class="line"><a name="l01125"></a><span class="lineno"> 1125</span> <span class="comment"> VM finish F1 F2</span></div><div class="line"><a name="l01126"></a><span class="lineno"> 1126</span> <span class="comment"> cfunc finish F1 F2 C1</span></div><div class="line"><a name="l01127"></a><span class="lineno"> 1127</span> <span class="comment"> rb_funcall finish F1 F2 C1</span></div><div class="line"><a name="l01128"></a><span class="lineno"> 1128</span> <span class="comment"> VMe finish F1 F2 C1</span></div><div class="line"><a name="l01129"></a><span class="lineno"> 1129</span> <span class="comment"> VM finish F1 F2 C1 F3</span></div><div class="line"><a name="l01130"></a><span class="lineno"> 1130</span> <span class="comment"></span></div><div class="line"><a name="l01131"></a><span class="lineno"> 1131</span> <span class="comment"> F1 - F3 : pushed by VM</span></div><div class="line"><a name="l01132"></a><span class="lineno"> 1132</span> <span class="comment"> C1 : pushed by send insn (CFUNC)</span></div><div class="line"><a name="l01133"></a><span class="lineno"> 1133</span> <span class="comment"></span></div><div class="line"><a name="l01134"></a><span class="lineno"> 1134</span> <span class="comment"> struct CONTROL_FRAME {</span></div><div class="line"><a name="l01135"></a><span class="lineno"> 1135</span> <span class="comment"> VALUE *pc; // cfp[0], program counter</span></div><div class="line"><a name="l01136"></a><span class="lineno"> 1136</span> <span class="comment"> VALUE *sp; // cfp[1], stack pointer</span></div><div class="line"><a name="l01137"></a><span class="lineno"> 1137</span> <span class="comment"> VALUE *bp; // cfp[2], base pointer</span></div><div class="line"><a name="l01138"></a><span class="lineno"> 1138</span> <span class="comment"> rb_iseq_t *iseq; // cfp[3], iseq</span></div><div class="line"><a name="l01139"></a><span class="lineno"> 1139</span> <span class="comment"> VALUE flag; // cfp[4], magic</span></div><div class="line"><a name="l01140"></a><span class="lineno"> 1140</span> <span class="comment"> VALUE self; // cfp[5], self</span></div><div class="line"><a name="l01141"></a><span class="lineno"> 1141</span> <span class="comment"> VALUE *lfp; // cfp[6], local frame pointer</span></div><div class="line"><a name="l01142"></a><span class="lineno"> 1142</span> <span class="comment"> VALUE *dfp; // cfp[7], dynamic frame pointer</span></div><div class="line"><a name="l01143"></a><span class="lineno"> 1143</span> <span class="comment"> rb_iseq_t * block_iseq; // cfp[8], block iseq</span></div><div class="line"><a name="l01144"></a><span class="lineno"> 1144</span> <span class="comment"> VALUE proc; // cfp[9], always 0</span></div><div class="line"><a name="l01145"></a><span class="lineno"> 1145</span> <span class="comment"> };</span></div><div class="line"><a name="l01146"></a><span class="lineno"> 1146</span> <span class="comment"></span></div><div class="line"><a name="l01147"></a><span class="lineno"> 1147</span> <span class="comment"> struct BLOCK {</span></div><div class="line"><a name="l01148"></a><span class="lineno"> 1148</span> <span class="comment"> VALUE self;</span></div><div class="line"><a name="l01149"></a><span class="lineno"> 1149</span> <span class="comment"> VALUE *lfp;</span></div><div class="line"><a name="l01150"></a><span class="lineno"> 1150</span> <span class="comment"> VALUE *dfp;</span></div><div class="line"><a name="l01151"></a><span class="lineno"> 1151</span> <span class="comment"> rb_iseq_t *block_iseq;</span></div><div class="line"><a name="l01152"></a><span class="lineno"> 1152</span> <span class="comment"> VALUE proc;</span></div><div class="line"><a name="l01153"></a><span class="lineno"> 1153</span> <span class="comment"> };</span></div><div class="line"><a name="l01154"></a><span class="lineno"> 1154</span> <span class="comment"></span></div><div class="line"><a name="l01155"></a><span class="lineno"> 1155</span> <span class="comment"> struct METHOD_CONTROL_FRAME {</span></div><div class="line"><a name="l01156"></a><span class="lineno"> 1156</span> <span class="comment"> rb_control_frame_t frame;</span></div><div class="line"><a name="l01157"></a><span class="lineno"> 1157</span> <span class="comment"> };</span></div><div class="line"><a name="l01158"></a><span class="lineno"> 1158</span> <span class="comment"></span></div><div class="line"><a name="l01159"></a><span class="lineno"> 1159</span> <span class="comment"> struct METHOD_FRAME {</span></div><div class="line"><a name="l01160"></a><span class="lineno"> 1160</span> <span class="comment"> VALUE arg0;</span></div><div class="line"><a name="l01161"></a><span class="lineno"> 1161</span> <span class="comment"> ...</span></div><div class="line"><a name="l01162"></a><span class="lineno"> 1162</span> <span class="comment"> VALUE argM;</span></div><div class="line"><a name="l01163"></a><span class="lineno"> 1163</span> <span class="comment"> VALUE param0;</span></div><div class="line"><a name="l01164"></a><span class="lineno"> 1164</span> <span class="comment"> ...</span></div><div class="line"><a name="l01165"></a><span class="lineno"> 1165</span> <span class="comment"> VALUE paramN;</span></div><div class="line"><a name="l01166"></a><span class="lineno"> 1166</span> <span class="comment"> VALUE cref;</span></div><div class="line"><a name="l01167"></a><span class="lineno"> 1167</span> <span class="comment"> VALUE special; // lfp [1]</span></div><div class="line"><a name="l01168"></a><span class="lineno"> 1168</span> <span class="comment"> struct block_object *block_ptr | 0x01; // lfp [0]</span></div><div class="line"><a name="l01169"></a><span class="lineno"> 1169</span> <span class="comment"> };</span></div><div class="line"><a name="l01170"></a><span class="lineno"> 1170</span> <span class="comment"></span></div><div class="line"><a name="l01171"></a><span class="lineno"> 1171</span> <span class="comment"> struct BLOCK_CONTROL_FRAME {</span></div><div class="line"><a name="l01172"></a><span class="lineno"> 1172</span> <span class="comment"> rb_control_frame_t frame;</span></div><div class="line"><a name="l01173"></a><span class="lineno"> 1173</span> <span class="comment"> };</span></div><div class="line"><a name="l01174"></a><span class="lineno"> 1174</span> <span class="comment"></span></div><div class="line"><a name="l01175"></a><span class="lineno"> 1175</span> <span class="comment"> struct BLOCK_FRAME {</span></div><div class="line"><a name="l01176"></a><span class="lineno"> 1176</span> <span class="comment"> VALUE arg0;</span></div><div class="line"><a name="l01177"></a><span class="lineno"> 1177</span> <span class="comment"> ...</span></div><div class="line"><a name="l01178"></a><span class="lineno"> 1178</span> <span class="comment"> VALUE argM;</span></div><div class="line"><a name="l01179"></a><span class="lineno"> 1179</span> <span class="comment"> VALUE param0;</span></div><div class="line"><a name="l01180"></a><span class="lineno"> 1180</span> <span class="comment"> ...</span></div><div class="line"><a name="l01181"></a><span class="lineno"> 1181</span> <span class="comment"> VALUE paramN;</span></div><div class="line"><a name="l01182"></a><span class="lineno"> 1182</span> <span class="comment"> VALUE cref;</span></div><div class="line"><a name="l01183"></a><span class="lineno"> 1183</span> <span class="comment"> VALUE *(prev_ptr | 0x01); // DFP[0]</span></div><div class="line"><a name="l01184"></a><span class="lineno"> 1184</span> <span class="comment"> };</span></div><div class="line"><a name="l01185"></a><span class="lineno"> 1185</span> <span class="comment"></span></div><div class="line"><a name="l01186"></a><span class="lineno"> 1186</span> <span class="comment"> struct CLASS_CONTROL_FRAME {</span></div><div class="line"><a name="l01187"></a><span class="lineno"> 1187</span> <span class="comment"> rb_control_frame_t frame;</span></div><div class="line"><a name="l01188"></a><span class="lineno"> 1188</span> <span class="comment"> };</span></div><div class="line"><a name="l01189"></a><span class="lineno"> 1189</span> <span class="comment"></span></div><div class="line"><a name="l01190"></a><span class="lineno"> 1190</span> <span class="comment"> struct CLASS_FRAME {</span></div><div class="line"><a name="l01191"></a><span class="lineno"> 1191</span> <span class="comment"> VALUE param0;</span></div><div class="line"><a name="l01192"></a><span class="lineno"> 1192</span> <span class="comment"> ...</span></div><div class="line"><a name="l01193"></a><span class="lineno"> 1193</span> <span class="comment"> VALUE paramN;</span></div><div class="line"><a name="l01194"></a><span class="lineno"> 1194</span> <span class="comment"> VALUE cref;</span></div><div class="line"><a name="l01195"></a><span class="lineno"> 1195</span> <span class="comment"> VALUE prev_dfp; // for frame jump</span></div><div class="line"><a name="l01196"></a><span class="lineno"> 1196</span> <span class="comment"> };</span></div><div class="line"><a name="l01197"></a><span class="lineno"> 1197</span> <span class="comment"></span></div><div class="line"><a name="l01198"></a><span class="lineno"> 1198</span> <span class="comment"> struct C_METHOD_CONTROL_FRAME {</span></div><div class="line"><a name="l01199"></a><span class="lineno"> 1199</span> <span class="comment"> VALUE *pc; // 0</span></div><div class="line"><a name="l01200"></a><span class="lineno"> 1200</span> <span class="comment"> VALUE *sp; // stack pointer</span></div><div class="line"><a name="l01201"></a><span class="lineno"> 1201</span> <span class="comment"> VALUE *bp; // base pointer (used in exception)</span></div><div class="line"><a name="l01202"></a><span class="lineno"> 1202</span> <span class="comment"> rb_iseq_t *iseq; // cmi</span></div><div class="line"><a name="l01203"></a><span class="lineno"> 1203</span> <span class="comment"> VALUE magic; // C_METHOD_FRAME</span></div><div class="line"><a name="l01204"></a><span class="lineno"> 1204</span> <span class="comment"> VALUE self; // ?</span></div><div class="line"><a name="l01205"></a><span class="lineno"> 1205</span> <span class="comment"> VALUE *lfp; // lfp</span></div><div class="line"><a name="l01206"></a><span class="lineno"> 1206</span> <span class="comment"> VALUE *dfp; // == lfp</span></div><div class="line"><a name="l01207"></a><span class="lineno"> 1207</span> <span class="comment"> rb_iseq_t * block_iseq; //</span></div><div class="line"><a name="l01208"></a><span class="lineno"> 1208</span> <span class="comment"> VALUE proc; // always 0</span></div><div class="line"><a name="l01209"></a><span class="lineno"> 1209</span> <span class="comment"> };</span></div><div class="line"><a name="l01210"></a><span class="lineno"> 1210</span> <span class="comment"></span></div><div class="line"><a name="l01211"></a><span class="lineno"> 1211</span> <span class="comment"> struct C_BLOCK_CONTROL_FRAME {</span></div><div class="line"><a name="l01212"></a><span class="lineno"> 1212</span> <span class="comment"> VALUE *pc; // point only "finish" insn</span></div><div class="line"><a name="l01213"></a><span class="lineno"> 1213</span> <span class="comment"> VALUE *sp; // sp</span></div><div class="line"><a name="l01214"></a><span class="lineno"> 1214</span> <span class="comment"> rb_iseq_t *iseq; // ?</span></div><div class="line"><a name="l01215"></a><span class="lineno"> 1215</span> <span class="comment"> VALUE magic; // C_METHOD_FRAME</span></div><div class="line"><a name="l01216"></a><span class="lineno"> 1216</span> <span class="comment"> VALUE self; // needed?</span></div><div class="line"><a name="l01217"></a><span class="lineno"> 1217</span> <span class="comment"> VALUE *lfp; // lfp</span></div><div class="line"><a name="l01218"></a><span class="lineno"> 1218</span> <span class="comment"> VALUE *dfp; // lfp</span></div><div class="line"><a name="l01219"></a><span class="lineno"> 1219</span> <span class="comment"> rb_iseq_t * block_iseq; // 0</span></div><div class="line"><a name="l01220"></a><span class="lineno"> 1220</span> <span class="comment"> };</span></div><div class="line"><a name="l01221"></a><span class="lineno"> 1221</span> <span class="comment"> */</span></div><div class="line"><a name="l01222"></a><span class="lineno"> 1222</span> </div><div class="line"><a name="l01223"></a><span class="lineno"> 1223</span> </div><div class="line"><a name="l01224"></a><span class="lineno"> 1224</span> <span class="keyword">static</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l01225"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a6fca4e13002f037d2e15bc1c77ab18ed"> 1225</a></span> <a class="code" href="../../de/de9/vm_8c.html#a6fca4e13002f037d2e15bc1c77ab18ed">vm_exec</a>(<a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th)</div><div class="line"><a name="l01226"></a><span class="lineno"> 1226</span> {</div><div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>  <span class="keywordtype">int</span> <a class="code" href="../../d5/d1d/gb18030_8c.html#adc6e5733fc3c22f0a7b2914188c49c90">state</a>;</div><div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../d8/d90/nkf_8c.html#a5ea5ac7abf5cce39283e422add1067d5">result</a>, <a class="code" href="../../d5/df2/win32_8c.html#a6ce68847c12434f60d1b2654a3dc3409">err</a>;</div><div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> initial = 0;</div><div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *escape_dfp = <a class="code" href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div><div class="line"><a name="l01231"></a><span class="lineno"> 1231</span> </div><div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>  <a class="code" href="../../dd/dd0/eval__intern_8h.html#a4410e4208d7ae0de8dae7c5b61f9d55c">TH_PUSH_TAG</a>(th);</div><div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>  _tag.retval = <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>;</div><div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>  <span class="keywordflow">if</span> ((<a class="code" href="../../d5/d1d/gb18030_8c.html#adc6e5733fc3c22f0a7b2914188c49c90">state</a> = <a class="code" href="../../dd/dd0/eval__intern_8h.html#a3441e3967c633da99c3dcd025494053e">EXEC_TAG</a>()) == 0) {</div><div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>  vm_loop_start:</div><div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>  <a class="code" href="../../d8/d90/nkf_8c.html#a5ea5ac7abf5cce39283e422add1067d5">result</a> = <a class="code" href="../../df/d38/vm__exec_8c.html#a5f6167faed281f68dfb092bc052afacf">vm_exec_core</a>(th, initial);</div><div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>  <span class="keywordflow">if</span> ((<a class="code" href="../../d5/d1d/gb18030_8c.html#adc6e5733fc3c22f0a7b2914188c49c90">state</a> = th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a25bbafcd0a1e0f6f79b42cc29baf3eb8">state</a>) != 0) {</div><div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>  <a class="code" href="../../d5/df2/win32_8c.html#a6ce68847c12434f60d1b2654a3dc3409">err</a> = <a class="code" href="../../d8/d90/nkf_8c.html#a5ea5ac7abf5cce39283e422add1067d5">result</a>;</div><div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a25bbafcd0a1e0f6f79b42cc29baf3eb8">state</a> = 0;</div><div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>  <span class="keywordflow">goto</span> exception_handler;</div><div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>  }</div><div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>  }</div><div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>  <span class="keywordtype">int</span> <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>;</div><div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>  <span class="keyword">struct </span><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html">iseq_catch_table_entry</a> *entry;</div><div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> epc, cont_pc, cont_sp;</div><div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> catch_iseqval;</div><div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>  <a class="code" href="../../dd/d84/structrb__control__frame__t.html">rb_control_frame_t</a> *cfp;</div><div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../d5/d9d/tcltklib_8c.html#ac765329451135abec74c45e1897abf26">type</a>;</div><div class="line"><a name="l01250"></a><span class="lineno"> 1250</span> </div><div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>  <a class="code" href="../../d5/df2/win32_8c.html#a6ce68847c12434f60d1b2654a3dc3409">err</a> = th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a173e2da61fa57c7044fd7874a8c7a924">errinfo</a>;</div><div class="line"><a name="l01252"></a><span class="lineno"> 1252</span> </div><div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>  exception_handler:</div><div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>  cont_pc = cont_sp = catch_iseqval = 0;</div><div class="line"><a name="l01255"></a><span class="lineno"> 1255</span> </div><div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>  <span class="keywordflow">while</span> (th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a28b0b301811a891225ba9a58c412482d">pc</a> == 0 || th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4b25ca925a9f60481173632b9c09d4e0">iseq</a> == 0) {</div><div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d8/d32/vm__core_8h.html#ab10d0a221f4d7a706701b806c8135fd7">UNLIKELY</a>(<a class="code" href="../../d8/d32/vm__core_8h.html#a423bad734fe427f4d5deeb4fe71fff65">VM_FRAME_TYPE</a>(th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>) == <a class="code" href="../../d8/d32/vm__core_8h.html#a26308f33317bb5b96ff89924822e8eab">VM_FRAME_MAGIC_CFUNC</a>)) {</div><div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>  <span class="keyword">const</span> <a class="code" href="../../d7/db7/structrb__method__entry__struct.html">rb_method_entry_t</a> *me = th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#aa0ec76f80ebaf0668b688c4e4e5e3e3f">me</a>;</div><div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#a724eed84e4b041ec1867e198ee129192">EXEC_EVENT_HOOK</a>(th, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aa8f8ed837ea1ef257ef6575f6785ca34">RUBY_EVENT_C_RETURN</a>, th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4c11a50358317e1207affd6d7b4ad576">self</a>, me-><a class="code" href="../../d7/db7/structrb__method__entry__struct.html#a31439bd620e98940410ba59244a85eae">called_id</a>, me-><a class="code" href="../../d7/db7/structrb__method__entry__struct.html#a9ce0871480ac405b00673b25234738de">klass</a>);</div><div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>  }</div><div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a> = <a class="code" href="../../d8/d32/vm__core_8h.html#af087c881c3c493e3a4e326852e8ed2a9">RUBY_VM_PREVIOUS_CONTROL_FRAME</a>(th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>);</div><div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>  }</div><div class="line"><a name="l01263"></a><span class="lineno"> 1263</span> </div><div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>  cfp = th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>;</div><div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>  epc = cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a28b0b301811a891225ba9a58c412482d">pc</a> - cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4b25ca925a9f60481173632b9c09d4e0">iseq</a>-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#aa70f3e195a4350acbbc130f8a95c9958">iseq_encoded</a>;</div><div class="line"><a name="l01266"></a><span class="lineno"> 1266</span> </div><div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d5/d1d/gb18030_8c.html#adc6e5733fc3c22f0a7b2914188c49c90">state</a> == <a class="code" href="../../dd/dd0/eval__intern_8h.html#aa69d9fa25afdc01237612a6047b96189">TAG_BREAK</a> || <a class="code" href="../../d5/d1d/gb18030_8c.html#adc6e5733fc3c22f0a7b2914188c49c90">state</a> == <a class="code" href="../../dd/dd0/eval__intern_8h.html#abfe39758eac9658dbce9750e4bfddbc6">TAG_RETURN</a>) {</div><div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>  escape_dfp = <a class="code" href="../../dd/dd0/eval__intern_8h.html#aeeda78ded67b3dc359c8911e679f0f15">GET_THROWOBJ_CATCH_POINT</a>(<a class="code" href="../../d5/df2/win32_8c.html#a6ce68847c12434f60d1b2654a3dc3409">err</a>);</div><div class="line"><a name="l01269"></a><span class="lineno"> 1269</span> </div><div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>  <span class="keywordflow">if</span> (cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#ac1cafd093e114d3ec99ebeca0ffeb048">dfp</a> == escape_dfp) {</div><div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d5/d1d/gb18030_8c.html#adc6e5733fc3c22f0a7b2914188c49c90">state</a> == <a class="code" href="../../dd/dd0/eval__intern_8h.html#abfe39758eac9658dbce9750e4bfddbc6">TAG_RETURN</a>) {</div><div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>  <span class="keywordflow">if</span> ((cfp + 1)->pc != &<a class="code" href="../../df/d38/vm__exec_8c.html#a6f84f6d4b822e9b021a1e64cacf21847">finish_insn_seq</a>[0]) {</div><div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>  <a class="code" href="../../dd/dd0/eval__intern_8h.html#aa893e1d4238c9135f318ddaff6b1c679">SET_THROWOBJ_CATCH_POINT</a>(<a class="code" href="../../d5/df2/win32_8c.html#a6ce68847c12434f60d1b2654a3dc3409">err</a>, (<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a>)(cfp + 1)->dfp);</div><div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>  <a class="code" href="../../dd/dd0/eval__intern_8h.html#a017f76c5f9b6ec0ceac2244ac80ab5cf">SET_THROWOBJ_STATE</a>(<a class="code" href="../../d5/df2/win32_8c.html#a6ce68847c12434f60d1b2654a3dc3409">err</a>, <a class="code" href="../../d5/d1d/gb18030_8c.html#adc6e5733fc3c22f0a7b2914188c49c90">state</a> = <a class="code" href="../../dd/dd0/eval__intern_8h.html#aa69d9fa25afdc01237612a6047b96189">TAG_BREAK</a>);</div><div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>  }</div><div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>  <span class="keywordflow">for</span> (<a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a> = 0; <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a> < cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4b25ca925a9f60481173632b9c09d4e0">iseq</a>-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#ae1d2b9b5e2ae668e100d814f2da38ac0">catch_table_size</a>; <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>++) {</div><div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>  entry = &cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4b25ca925a9f60481173632b9c09d4e0">iseq</a>-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#aaf3c6629a41865ab662884b7481fb394">catch_table</a>[<a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>];</div><div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>  <span class="keywordflow">if</span> (entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a9427499a8613b4046de7b20d3153c5ab">start</a> < epc && entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#af2d9fb3c5142c7e037d1405e0b7c59ae">end</a> >= epc) {</div><div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>  <span class="keywordflow">if</span> (entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#ac2b2471bbfb0ada41e777d8e1919ba00">type</a> == <a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a1c2635a230708dfba8857a6d6509b6a1af40d37f8dee0a7d299cf107101dd588b">CATCH_TYPE_ENSURE</a>) {</div><div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>  catch_iseqval = entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a919aa1dbe534777ff38a07a17b956524">iseq</a>;</div><div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>  cont_pc = entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a948846a98f14e75301964e17a95afcea">cont</a>;</div><div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>  cont_sp = entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a0b7ff23536c8be69a62188be1a84c1d5">sp</a>;</div><div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>  }</div><div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>  }</div><div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>  }</div><div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>  <span class="keywordflow">if</span> (!catch_iseqval) {</div><div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>  <a class="code" href="../../d8/d90/nkf_8c.html#a5ea5ac7abf5cce39283e422add1067d5">result</a> = <a class="code" href="../../dd/dd0/eval__intern_8h.html#a3cc03eefb2b828e688368c647698e1b7">GET_THROWOBJ_VAL</a>(<a class="code" href="../../d5/df2/win32_8c.html#a6ce68847c12434f60d1b2654a3dc3409">err</a>);</div><div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a173e2da61fa57c7044fd7874a8c7a924">errinfo</a> = <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>;</div><div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a> += 2;</div><div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>  <span class="keywordflow">goto</span> finish_vme;</div><div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>  }</div><div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>  }</div><div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>  <span class="comment">/* through */</span></div><div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>  }</div><div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>  <span class="comment">/* TAG_BREAK */</span></div><div class="line"><a name="l01299"></a><span class="lineno"> 1299</span> <span class="preprocessor">#if OPT_STACK_CACHING</span></div><div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>  initial = (<a class="code" href="../../dd/dd0/eval__intern_8h.html#a3cc03eefb2b828e688368c647698e1b7">GET_THROWOBJ_VAL</a>(<a class="code" href="../../d5/df2/win32_8c.html#a6ce68847c12434f60d1b2654a3dc3409">err</a>));</div><div class="line"><a name="l01301"></a><span class="lineno"> 1301</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>  *th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a29b331b150e5cae1e206cd87f892bad8">sp</a>++ = (<a class="code" href="../../dd/dd0/eval__intern_8h.html#a3cc03eefb2b828e688368c647698e1b7">GET_THROWOBJ_VAL</a>(<a class="code" href="../../d5/df2/win32_8c.html#a6ce68847c12434f60d1b2654a3dc3409">err</a>));</div><div class="line"><a name="l01303"></a><span class="lineno"> 1303</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a173e2da61fa57c7044fd7874a8c7a924">errinfo</a> = <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>;</div><div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>  <span class="keywordflow">goto</span> vm_loop_start;</div><div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>  }</div><div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>  }</div><div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>  }</div><div class="line"><a name="l01309"></a><span class="lineno"> 1309</span> </div><div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d5/d1d/gb18030_8c.html#adc6e5733fc3c22f0a7b2914188c49c90">state</a> == <a class="code" href="../../dd/dd0/eval__intern_8h.html#a0b034bce069147e233776bc1dcc74c01">TAG_RAISE</a>) {</div><div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>  <span class="keywordflow">for</span> (<a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a> = 0; <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a> < cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4b25ca925a9f60481173632b9c09d4e0">iseq</a>-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#ae1d2b9b5e2ae668e100d814f2da38ac0">catch_table_size</a>; <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>++) {</div><div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>  entry = &cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4b25ca925a9f60481173632b9c09d4e0">iseq</a>-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#aaf3c6629a41865ab662884b7481fb394">catch_table</a>[<a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>];</div><div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>  <span class="keywordflow">if</span> (entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a9427499a8613b4046de7b20d3153c5ab">start</a> < epc && entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#af2d9fb3c5142c7e037d1405e0b7c59ae">end</a> >= epc) {</div><div class="line"><a name="l01314"></a><span class="lineno"> 1314</span> </div><div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>  <span class="keywordflow">if</span> (entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#ac2b2471bbfb0ada41e777d8e1919ba00">type</a> == <a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a1c2635a230708dfba8857a6d6509b6a1ab0479ba418aae875e074a9d1d32f77e4">CATCH_TYPE_RESCUE</a> ||</div><div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>  entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#ac2b2471bbfb0ada41e777d8e1919ba00">type</a> == <a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a1c2635a230708dfba8857a6d6509b6a1af40d37f8dee0a7d299cf107101dd588b">CATCH_TYPE_ENSURE</a>) {</div><div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>  catch_iseqval = entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a919aa1dbe534777ff38a07a17b956524">iseq</a>;</div><div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>  cont_pc = entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a948846a98f14e75301964e17a95afcea">cont</a>;</div><div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>  cont_sp = entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a0b7ff23536c8be69a62188be1a84c1d5">sp</a>;</div><div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>  }</div><div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>  }</div><div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>  }</div><div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>  }</div><div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="../../d5/d1d/gb18030_8c.html#adc6e5733fc3c22f0a7b2914188c49c90">state</a> == <a class="code" href="../../dd/dd0/eval__intern_8h.html#a277f73abdf66e83f4fc75b93d6e87b72">TAG_RETRY</a>) {</div><div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>  <span class="keywordflow">for</span> (<a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a> = 0; <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a> < cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4b25ca925a9f60481173632b9c09d4e0">iseq</a>-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#ae1d2b9b5e2ae668e100d814f2da38ac0">catch_table_size</a>; <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>++) {</div><div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>  entry = &cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4b25ca925a9f60481173632b9c09d4e0">iseq</a>-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#aaf3c6629a41865ab662884b7481fb394">catch_table</a>[<a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>];</div><div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>  <span class="keywordflow">if</span> (entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a9427499a8613b4046de7b20d3153c5ab">start</a> < epc && entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#af2d9fb3c5142c7e037d1405e0b7c59ae">end</a> >= epc) {</div><div class="line"><a name="l01329"></a><span class="lineno"> 1329</span> </div><div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>  <span class="keywordflow">if</span> (entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#ac2b2471bbfb0ada41e777d8e1919ba00">type</a> == <a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a1c2635a230708dfba8857a6d6509b6a1af40d37f8dee0a7d299cf107101dd588b">CATCH_TYPE_ENSURE</a>) {</div><div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>  catch_iseqval = entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a919aa1dbe534777ff38a07a17b956524">iseq</a>;</div><div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>  cont_pc = entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a948846a98f14e75301964e17a95afcea">cont</a>;</div><div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>  cont_sp = entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a0b7ff23536c8be69a62188be1a84c1d5">sp</a>;</div><div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>  }</div><div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#ac2b2471bbfb0ada41e777d8e1919ba00">type</a> == <a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a1c2635a230708dfba8857a6d6509b6a1a47795bf670cf0e9b6d3c2f4b01f4f9e7">CATCH_TYPE_RETRY</a>) {</div><div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *escape_dfp;</div><div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>  escape_dfp = <a class="code" href="../../dd/dd0/eval__intern_8h.html#aeeda78ded67b3dc359c8911e679f0f15">GET_THROWOBJ_CATCH_POINT</a>(<a class="code" href="../../d5/df2/win32_8c.html#a6ce68847c12434f60d1b2654a3dc3409">err</a>);</div><div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>  <span class="keywordflow">if</span> (cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#ac1cafd093e114d3ec99ebeca0ffeb048">dfp</a> == escape_dfp) {</div><div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>  cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a28b0b301811a891225ba9a58c412482d">pc</a> = cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4b25ca925a9f60481173632b9c09d4e0">iseq</a>-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#aa70f3e195a4350acbbc130f8a95c9958">iseq_encoded</a> + entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a948846a98f14e75301964e17a95afcea">cont</a>;</div><div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a173e2da61fa57c7044fd7874a8c7a924">errinfo</a> = <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>;</div><div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>  <span class="keywordflow">goto</span> vm_loop_start;</div><div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>  }</div><div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>  }</div><div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>  }</div><div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>  }</div><div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>  }</div><div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="../../d5/d1d/gb18030_8c.html#adc6e5733fc3c22f0a7b2914188c49c90">state</a> == <a class="code" href="../../dd/dd0/eval__intern_8h.html#aa69d9fa25afdc01237612a6047b96189">TAG_BREAK</a> && ((<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a>)escape_dfp & ~0x03) == 0) {</div><div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>  <a class="code" href="../../d5/d9d/tcltklib_8c.html#ac765329451135abec74c45e1897abf26">type</a> = <a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a1c2635a230708dfba8857a6d6509b6a1ae556eed8cf5ae82c6e44b2ee9f5bc3d7">CATCH_TYPE_BREAK</a>;</div><div class="line"><a name="l01350"></a><span class="lineno"> 1350</span> </div><div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>  search_restart_point:</div><div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>  <span class="keywordflow">for</span> (<a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a> = 0; <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a> < cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4b25ca925a9f60481173632b9c09d4e0">iseq</a>-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#ae1d2b9b5e2ae668e100d814f2da38ac0">catch_table_size</a>; <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>++) {</div><div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>  entry = &cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4b25ca925a9f60481173632b9c09d4e0">iseq</a>-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#aaf3c6629a41865ab662884b7481fb394">catch_table</a>[<a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>];</div><div class="line"><a name="l01354"></a><span class="lineno"> 1354</span> </div><div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>  <span class="keywordflow">if</span> (entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a9427499a8613b4046de7b20d3153c5ab">start</a> < epc && entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#af2d9fb3c5142c7e037d1405e0b7c59ae">end</a> >= epc) {</div><div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>  <span class="keywordflow">if</span> (entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#ac2b2471bbfb0ada41e777d8e1919ba00">type</a> == <a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a1c2635a230708dfba8857a6d6509b6a1af40d37f8dee0a7d299cf107101dd588b">CATCH_TYPE_ENSURE</a>) {</div><div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>  catch_iseqval = entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a919aa1dbe534777ff38a07a17b956524">iseq</a>;</div><div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>  cont_pc = entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a948846a98f14e75301964e17a95afcea">cont</a>;</div><div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>  cont_sp = entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a0b7ff23536c8be69a62188be1a84c1d5">sp</a>;</div><div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>  }</div><div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#ac2b2471bbfb0ada41e777d8e1919ba00">type</a> == <a class="code" href="../../d5/d9d/tcltklib_8c.html#ac765329451135abec74c45e1897abf26">type</a>) {</div><div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>  cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a28b0b301811a891225ba9a58c412482d">pc</a> = cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4b25ca925a9f60481173632b9c09d4e0">iseq</a>-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#aa70f3e195a4350acbbc130f8a95c9958">iseq_encoded</a> + entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a948846a98f14e75301964e17a95afcea">cont</a>;</div><div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>  cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a29b331b150e5cae1e206cd87f892bad8">sp</a> = cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a8e19fd7af779b623f1e9477f271358e6">bp</a> + entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a0b7ff23536c8be69a62188be1a84c1d5">sp</a>;</div><div class="line"><a name="l01365"></a><span class="lineno"> 1365</span> </div><div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d5/d1d/gb18030_8c.html#adc6e5733fc3c22f0a7b2914188c49c90">state</a> != <a class="code" href="../../dd/dd0/eval__intern_8h.html#a82e8bb282a1d35fcc453335b090bd4a7">TAG_REDO</a>) {</div><div class="line"><a name="l01367"></a><span class="lineno"> 1367</span> <span class="preprocessor">#if OPT_STACK_CACHING</span></div><div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>  initial = (<a class="code" href="../../dd/dd0/eval__intern_8h.html#a3cc03eefb2b828e688368c647698e1b7">GET_THROWOBJ_VAL</a>(<a class="code" href="../../d5/df2/win32_8c.html#a6ce68847c12434f60d1b2654a3dc3409">err</a>));</div><div class="line"><a name="l01369"></a><span class="lineno"> 1369</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>  *th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a29b331b150e5cae1e206cd87f892bad8">sp</a>++ = (<a class="code" href="../../dd/dd0/eval__intern_8h.html#a3cc03eefb2b828e688368c647698e1b7">GET_THROWOBJ_VAL</a>(<a class="code" href="../../d5/df2/win32_8c.html#a6ce68847c12434f60d1b2654a3dc3409">err</a>));</div><div class="line"><a name="l01371"></a><span class="lineno"> 1371</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>  }</div><div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a25bbafcd0a1e0f6f79b42cc29baf3eb8">state</a> = 0;</div><div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a173e2da61fa57c7044fd7874a8c7a924">errinfo</a> = <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>;</div><div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>  <span class="keywordflow">goto</span> vm_loop_start;</div><div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>  }</div><div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>  }</div><div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>  }</div><div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>  }</div><div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="../../d5/d1d/gb18030_8c.html#adc6e5733fc3c22f0a7b2914188c49c90">state</a> == <a class="code" href="../../dd/dd0/eval__intern_8h.html#a82e8bb282a1d35fcc453335b090bd4a7">TAG_REDO</a>) {</div><div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>  <a class="code" href="../../d5/d9d/tcltklib_8c.html#ac765329451135abec74c45e1897abf26">type</a> = <a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a1c2635a230708dfba8857a6d6509b6a1aa4e94b0ce1178f40ead4772fba48178d">CATCH_TYPE_REDO</a>;</div><div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>  <span class="keywordflow">goto</span> search_restart_point;</div><div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>  }</div><div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="../../d5/d1d/gb18030_8c.html#adc6e5733fc3c22f0a7b2914188c49c90">state</a> == <a class="code" href="../../dd/dd0/eval__intern_8h.html#ac5d3e11622cde853addb87cfae24021e">TAG_NEXT</a>) {</div><div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>  <a class="code" href="../../d5/d9d/tcltklib_8c.html#ac765329451135abec74c45e1897abf26">type</a> = <a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a1c2635a230708dfba8857a6d6509b6a1a98ba159a92bfd8eabf0edb7381b8dcac">CATCH_TYPE_NEXT</a>;</div><div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>  <span class="keywordflow">goto</span> search_restart_point;</div><div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>  }</div><div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>  <span class="keywordflow">for</span> (<a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a> = 0; <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a> < cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4b25ca925a9f60481173632b9c09d4e0">iseq</a>-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#ae1d2b9b5e2ae668e100d814f2da38ac0">catch_table_size</a>; <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>++) {</div><div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>  entry = &cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4b25ca925a9f60481173632b9c09d4e0">iseq</a>-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#aaf3c6629a41865ab662884b7481fb394">catch_table</a>[<a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>];</div><div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>  <span class="keywordflow">if</span> (entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a9427499a8613b4046de7b20d3153c5ab">start</a> < epc && entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#af2d9fb3c5142c7e037d1405e0b7c59ae">end</a> >= epc) {</div><div class="line"><a name="l01392"></a><span class="lineno"> 1392</span> </div><div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>  <span class="keywordflow">if</span> (entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#ac2b2471bbfb0ada41e777d8e1919ba00">type</a> == <a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a1c2635a230708dfba8857a6d6509b6a1af40d37f8dee0a7d299cf107101dd588b">CATCH_TYPE_ENSURE</a>) {</div><div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>  catch_iseqval = entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a919aa1dbe534777ff38a07a17b956524">iseq</a>;</div><div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>  cont_pc = entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a948846a98f14e75301964e17a95afcea">cont</a>;</div><div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>  cont_sp = entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a0b7ff23536c8be69a62188be1a84c1d5">sp</a>;</div><div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>  }</div><div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>  }</div><div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>  }</div><div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>  }</div><div class="line"><a name="l01402"></a><span class="lineno"> 1402</span> </div><div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>  <span class="keywordflow">if</span> (catch_iseqval != 0) {</div><div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>  <span class="comment">/* found catch table */</span></div><div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>  <a class="code" href="../../d6/de3/structrb__iseq__struct.html">rb_iseq_t</a> *catch_iseq;</div><div class="line"><a name="l01406"></a><span class="lineno"> 1406</span> </div><div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>  <span class="comment">/* enter catch scope */</span></div><div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#a5e6a3515e0ad9b9d6a4c0ab577dc50b6">GetISeqPtr</a>(catch_iseqval, catch_iseq);</div><div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>  cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a29b331b150e5cae1e206cd87f892bad8">sp</a> = cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a8e19fd7af779b623f1e9477f271358e6">bp</a> + cont_sp;</div><div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>  cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a28b0b301811a891225ba9a58c412482d">pc</a> = cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4b25ca925a9f60481173632b9c09d4e0">iseq</a>-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#aa70f3e195a4350acbbc130f8a95c9958">iseq_encoded</a> + cont_pc;</div><div class="line"><a name="l01411"></a><span class="lineno"> 1411</span> </div><div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>  <span class="comment">/* push block frame */</span></div><div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>  cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a29b331b150e5cae1e206cd87f892bad8">sp</a>[0] = <a class="code" href="../../d5/df2/win32_8c.html#a6ce68847c12434f60d1b2654a3dc3409">err</a>;</div><div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>  <a class="code" href="../../d0/db2/vm__insnhelper_8c.html#a30340566da5743c4d660c8931dffd86e">vm_push_frame</a>(th, catch_iseq, <a class="code" href="../../d8/d32/vm__core_8h.html#a83eeedff3dde6d2d1ffce5d84c2ba2f1">VM_FRAME_MAGIC_BLOCK</a>,</div><div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>  cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4c11a50358317e1207affd6d7b4ad576">self</a>, (<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a>)cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#ac1cafd093e114d3ec99ebeca0ffeb048">dfp</a>, catch_iseq-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#aa70f3e195a4350acbbc130f8a95c9958">iseq_encoded</a>,</div><div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>  cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a29b331b150e5cae1e206cd87f892bad8">sp</a> + 1 <span class="comment">/* push value */</span>, cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#af3314cb37c8a27353101bf6f35574946">lfp</a>, catch_iseq-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#afbae994355f91f3ea547570debb757c0">local_size</a> - 1);</div><div class="line"><a name="l01417"></a><span class="lineno"> 1417</span> </div><div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>  <a class="code" href="../../d5/d1d/gb18030_8c.html#adc6e5733fc3c22f0a7b2914188c49c90">state</a> = 0;</div><div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a25bbafcd0a1e0f6f79b42cc29baf3eb8">state</a> = 0;</div><div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a173e2da61fa57c7044fd7874a8c7a924">errinfo</a> = <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>;</div><div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>  <span class="keywordflow">goto</span> vm_loop_start;</div><div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>  }</div><div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>  <span class="comment">/* skip frame */</span></div><div class="line"><a name="l01425"></a><span class="lineno"> 1425</span> </div><div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>  <span class="keywordflow">switch</span> (<a class="code" href="../../d8/d32/vm__core_8h.html#a423bad734fe427f4d5deeb4fe71fff65">VM_FRAME_TYPE</a>(th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>)) {</div><div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>  <span class="keywordflow">case</span> <a class="code" href="../../d8/d32/vm__core_8h.html#abc8be29d36c6252fce6bc61621f81b71">VM_FRAME_MAGIC_METHOD</a>:</div><div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#a7a99483c2c0fd30a4d89052ef1d7d547">EXEC_EVENT_HOOK_AND_POP_FRAME</a>(th, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aa6ebd81993faad84c09b5080e1fde73d">RUBY_EVENT_RETURN</a>, th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4c11a50358317e1207affd6d7b4ad576">self</a>, 0, 0);</div><div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>  <span class="keywordflow">case</span> <a class="code" href="../../d8/d32/vm__core_8h.html#a2524f590c07fceb689b2b7d53114ff5f">VM_FRAME_MAGIC_CLASS</a>:</div><div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#a7a99483c2c0fd30a4d89052ef1d7d547">EXEC_EVENT_HOOK_AND_POP_FRAME</a>(th, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a008ad47ad1b6add87c9dc674e976380c">RUBY_EVENT_END</a>, th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4c11a50358317e1207affd6d7b4ad576">self</a>, 0, 0);</div><div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>  }</div><div class="line"><a name="l01434"></a><span class="lineno"> 1434</span> </div><div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a> = <a class="code" href="../../d8/d32/vm__core_8h.html#af087c881c3c493e3a4e326852e8ed2a9">RUBY_VM_PREVIOUS_CONTROL_FRAME</a>(th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>);</div><div class="line"><a name="l01436"></a><span class="lineno"> 1436</span> </div><div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d8/d32/vm__core_8h.html#a423bad734fe427f4d5deeb4fe71fff65">VM_FRAME_TYPE</a>(th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>) != <a class="code" href="../../d8/d32/vm__core_8h.html#a885c6468caef6c3de80b0ad6c50ae38d">VM_FRAME_MAGIC_FINISH</a>) {</div><div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>  <span class="keywordflow">goto</span> exception_handler;</div><div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>  }</div><div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>  <a class="code" href="../../d0/db2/vm__insnhelper_8c.html#a0aeeee637bf9706f9d240bac4ae359c3">vm_pop_frame</a>(th);</div><div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a173e2da61fa57c7044fd7874a8c7a924">errinfo</a> = <a class="code" href="../../d5/df2/win32_8c.html#a6ce68847c12434f60d1b2654a3dc3409">err</a>;</div><div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>  <a class="code" href="../../dd/dd0/eval__intern_8h.html#a4bb909636fd43ab591291ffb47b83d3f">TH_POP_TAG2</a>();</div><div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>  <a class="code" href="../../dd/dd0/eval__intern_8h.html#a24884166ae699029ade34fd36bedd688">JUMP_TAG</a>(<a class="code" href="../../d5/d1d/gb18030_8c.html#adc6e5733fc3c22f0a7b2914188c49c90">state</a>);</div><div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>  }</div><div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>  }</div><div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>  }</div><div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>  finish_vme:</div><div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>  <a class="code" href="../../dd/dd0/eval__intern_8h.html#a4d06135dea1a72a3ab73b20cc1a9fc55">TH_POP_TAG</a>();</div><div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>  <span class="keywordflow">return</span> <a class="code" href="../../d8/d90/nkf_8c.html#a5ea5ac7abf5cce39283e422add1067d5">result</a>;</div><div class="line"><a name="l01451"></a><span class="lineno"> 1451</span> }</div><div class="line"><a name="l01452"></a><span class="lineno"> 1452</span> </div><div class="line"><a name="l01453"></a><span class="lineno"> 1453</span> <span class="comment">/* misc */</span></div><div class="line"><a name="l01454"></a><span class="lineno"> 1454</span> </div><div class="line"><a name="l01455"></a><span class="lineno"> 1455</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l01456"></a><span class="lineno"><a class="line" href="../../d8/d32/vm__core_8h.html#a6e6ce66eb03fe0ce260cc4556b62e129"> 1456</a></span> <a class="code" href="../../de/de9/vm_8c.html#a6e6ce66eb03fe0ce260cc4556b62e129">rb_iseq_eval</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> iseqval)</div><div class="line"><a name="l01457"></a><span class="lineno"> 1457</span> {</div><div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>  <a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th = <a class="code" href="../../d8/d32/vm__core_8h.html#a8deb84ec6023e3229db88ac2c9da6138">GET_THREAD</a>();</div><div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> val;</div><div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>  <span class="keyword">volatile</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> tmp;</div><div class="line"><a name="l01461"></a><span class="lineno"> 1461</span> </div><div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>  <a class="code" href="../../de/de9/vm_8c.html#a835b4cd0571894b624a302e8d2b736de">vm_set_top_stack</a>(th, iseqval);</div><div class="line"><a name="l01463"></a><span class="lineno"> 1463</span> </div><div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>  val = <a class="code" href="../../de/de9/vm_8c.html#a6fca4e13002f037d2e15bc1c77ab18ed">vm_exec</a>(th);</div><div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>  tmp = iseqval; <span class="comment">/* prohibit tail call optimization */</span></div><div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>  <span class="keywordflow">return</span> val;</div><div class="line"><a name="l01467"></a><span class="lineno"> 1467</span> }</div><div class="line"><a name="l01468"></a><span class="lineno"> 1468</span> </div><div class="line"><a name="l01469"></a><span class="lineno"> 1469</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l01470"></a><span class="lineno"><a class="line" href="../../d8/d32/vm__core_8h.html#a1561358bc5896c1fd390837e6faeb45f"> 1470</a></span> <a class="code" href="../../de/de9/vm_8c.html#a1561358bc5896c1fd390837e6faeb45f">rb_iseq_eval_main</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> iseqval)</div><div class="line"><a name="l01471"></a><span class="lineno"> 1471</span> {</div><div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>  <a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th = <a class="code" href="../../d8/d32/vm__core_8h.html#a8deb84ec6023e3229db88ac2c9da6138">GET_THREAD</a>();</div><div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> val;</div><div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>  <span class="keyword">volatile</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> tmp;</div><div class="line"><a name="l01475"></a><span class="lineno"> 1475</span> </div><div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>  <a class="code" href="../../de/de9/vm_8c.html#aa938e139dcf9509037140019da6f4a47">vm_set_main_stack</a>(th, iseqval);</div><div class="line"><a name="l01477"></a><span class="lineno"> 1477</span> </div><div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>  val = <a class="code" href="../../de/de9/vm_8c.html#a6fca4e13002f037d2e15bc1c77ab18ed">vm_exec</a>(th);</div><div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>  tmp = iseqval; <span class="comment">/* prohibit tail call optimization */</span></div><div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>  <span class="keywordflow">return</span> val;</div><div class="line"><a name="l01481"></a><span class="lineno"> 1481</span> }</div><div class="line"><a name="l01482"></a><span class="lineno"> 1482</span> </div><div class="line"><a name="l01483"></a><span class="lineno"> 1483</span> <span class="keywordtype">int</span></div><div class="line"><a name="l01484"></a><span class="lineno"><a class="line" href="../../d8/d32/vm__core_8h.html#a7417e683ea286195e2514eca8cfbf601"> 1484</a></span> <a class="code" href="../../de/de9/vm_8c.html#a7417e683ea286195e2514eca8cfbf601">rb_thread_method_id_and_class</a>(<a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th,</div><div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#afa5b9137f051ac26d7ccc8824f178233">ID</a> *idp, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *klassp)</div><div class="line"><a name="l01486"></a><span class="lineno"> 1486</span> {</div><div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>  <a class="code" href="../../dd/d84/structrb__control__frame__t.html">rb_control_frame_t</a> *cfp = th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>;</div><div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>  <a class="code" href="../../d6/de3/structrb__iseq__struct.html">rb_iseq_t</a> *<a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a919aa1dbe534777ff38a07a17b956524">iseq</a> = cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4b25ca925a9f60481173632b9c09d4e0">iseq</a>;</div><div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>  <span class="keywordflow">if</span> (!<a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a919aa1dbe534777ff38a07a17b956524">iseq</a> && cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#aa0ec76f80ebaf0668b688c4e4e5e3e3f">me</a>) {</div><div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>  <span class="keywordflow">if</span> (idp) *idp = cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#aa0ec76f80ebaf0668b688c4e4e5e3e3f">me</a>-><a class="code" href="../../d7/db7/structrb__method__entry__struct.html#a6c868c50e67b757c6324dfef0f3184dc">def</a>-><a class="code" href="../../d6/dab/structrb__method__definition__struct.html#a7fc0edb8505a61f8ae8bf2544fa7f676">original_id</a>;</div><div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>  <span class="keywordflow">if</span> (klassp) *klassp = cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#aa0ec76f80ebaf0668b688c4e4e5e3e3f">me</a>-><a class="code" href="../../d7/db7/structrb__method__entry__struct.html#a9ce0871480ac405b00673b25234738de">klass</a>;</div><div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>  <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>  }</div><div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>  <span class="keywordflow">while</span> (<a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a919aa1dbe534777ff38a07a17b956524">iseq</a>) {</div><div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d8/d32/vm__core_8h.html#aa933aeb7a703c7cc2d136492acbbef22">RUBY_VM_IFUNC_P</a>(<a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a919aa1dbe534777ff38a07a17b956524">iseq</a>)) {</div><div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>  <span class="keywordflow">if</span> (idp) <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aa50b9d5bc665eb5545f6857c89232161">CONST_ID</a>(*idp, <span class="stringliteral">"<ifunc>"</span>);</div><div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>  <span class="keywordflow">if</span> (klassp) *klassp = 0;</div><div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>  <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>  }</div><div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>  <span class="keywordflow">if</span> (<a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a919aa1dbe534777ff38a07a17b956524">iseq</a>->defined_method_id) {</div><div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>  <span class="keywordflow">if</span> (idp) *idp = <a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a919aa1dbe534777ff38a07a17b956524">iseq</a>->defined_method_id;</div><div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>  <span class="keywordflow">if</span> (klassp) *klassp = <a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a919aa1dbe534777ff38a07a17b956524">iseq</a>->klass;</div><div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>  <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>  }</div><div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>  <span class="keywordflow">if</span> (<a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a919aa1dbe534777ff38a07a17b956524">iseq</a>->local_iseq == <a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a919aa1dbe534777ff38a07a17b956524">iseq</a>) {</div><div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>  }</div><div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>  <a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a919aa1dbe534777ff38a07a17b956524">iseq</a> = <a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a919aa1dbe534777ff38a07a17b956524">iseq</a>->parent_iseq;</div><div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>  }</div><div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l01511"></a><span class="lineno"> 1511</span> }</div><div class="line"><a name="l01512"></a><span class="lineno"> 1512</span> </div><div class="line"><a name="l01513"></a><span class="lineno"> 1513</span> <span class="keywordtype">int</span></div><div class="line"><a name="l01514"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a6570f238bce65b6594917b796b285edc"> 1514</a></span> <a class="code" href="../../de/de9/vm_8c.html#a6570f238bce65b6594917b796b285edc">rb_frame_method_id_and_class</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#afa5b9137f051ac26d7ccc8824f178233">ID</a> *idp, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *klassp)</div><div class="line"><a name="l01515"></a><span class="lineno"> 1515</span> {</div><div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>  <span class="keywordflow">return</span> <a class="code" href="../../de/de9/vm_8c.html#a7417e683ea286195e2514eca8cfbf601">rb_thread_method_id_and_class</a>(<a class="code" href="../../d8/d32/vm__core_8h.html#a8deb84ec6023e3229db88ac2c9da6138">GET_THREAD</a>(), idp, klassp);</div><div class="line"><a name="l01517"></a><span class="lineno"> 1517</span> }</div><div class="line"><a name="l01518"></a><span class="lineno"> 1518</span> </div><div class="line"><a name="l01519"></a><span class="lineno"> 1519</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l01520"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#af3ce515dfb6ce5b335b9e2074c7572d2"> 1520</a></span> <a class="code" href="../../de/de9/vm_8c.html#af3ce515dfb6ce5b335b9e2074c7572d2">rb_thread_current_status</a>(<span class="keyword">const</span> <a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th)</div><div class="line"><a name="l01521"></a><span class="lineno"> 1521</span> {</div><div class="line"><a name="l01522"></a><span class="lineno"> 1522</span>  <span class="keyword">const</span> <a class="code" href="../../dd/d84/structrb__control__frame__t.html">rb_control_frame_t</a> *cfp = th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>;</div><div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> str = <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>;</div><div class="line"><a name="l01524"></a><span class="lineno"> 1524</span> </div><div class="line"><a name="l01525"></a><span class="lineno"> 1525</span>  <span class="keywordflow">if</span> (cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4b25ca925a9f60481173632b9c09d4e0">iseq</a> != 0) {</div><div class="line"><a name="l01526"></a><span class="lineno"> 1526</span>  <span class="keywordflow">if</span> (cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a28b0b301811a891225ba9a58c412482d">pc</a> != 0) {</div><div class="line"><a name="l01527"></a><span class="lineno"> 1527</span>  <a class="code" href="../../d6/de3/structrb__iseq__struct.html">rb_iseq_t</a> *<a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a919aa1dbe534777ff38a07a17b956524">iseq</a> = cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4b25ca925a9f60481173632b9c09d4e0">iseq</a>;</div><div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>  <span class="keywordtype">int</span> line_no = <a class="code" href="../../de/de9/vm_8c.html#a70289cbb34babceed6243d9471e70e5f">rb_vm_get_sourceline</a>(cfp);</div><div class="line"><a name="l01529"></a><span class="lineno"> 1529</span>  <span class="keywordtype">char</span> *file = <a class="code" href="../../d8/df4/generator_8h.html#aa0c7097c0d82c8372072fbab5a604e39">RSTRING_PTR</a>(<a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a919aa1dbe534777ff38a07a17b956524">iseq</a>->filename);</div><div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>  str = <a class="code" href="../../d9/d2d/sprintf_8c.html#a05c34a91ab36c6a463c861df47808fae">rb_sprintf</a>(<span class="stringliteral">"%s:%d:in `%s'"</span>,</div><div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>  file, line_no, <a class="code" href="../../d8/df4/generator_8h.html#aa0c7097c0d82c8372072fbab5a604e39">RSTRING_PTR</a>(<a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a919aa1dbe534777ff38a07a17b956524">iseq</a>->name));</div><div class="line"><a name="l01532"></a><span class="lineno"> 1532</span>  }</div><div class="line"><a name="l01533"></a><span class="lineno"> 1533</span>  }</div><div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#aa0ec76f80ebaf0668b688c4e4e5e3e3f">me</a>-><a class="code" href="../../d7/db7/structrb__method__entry__struct.html#a6c868c50e67b757c6324dfef0f3184dc">def</a>-><a class="code" href="../../d6/dab/structrb__method__definition__struct.html#a7fc0edb8505a61f8ae8bf2544fa7f676">original_id</a>) {</div><div class="line"><a name="l01535"></a><span class="lineno"> 1535</span>  str = <a class="code" href="../../d9/d2d/sprintf_8c.html#a05c34a91ab36c6a463c861df47808fae">rb_sprintf</a>(<span class="stringliteral">"`%s#%s' (cfunc)"</span>,</div><div class="line"><a name="l01536"></a><span class="lineno"> 1536</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#afd98e957d0d96017f7a07dd83772fadc">rb_class2name</a>(cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#aa0ec76f80ebaf0668b688c4e4e5e3e3f">me</a>-><a class="code" href="../../d7/db7/structrb__method__entry__struct.html#a9ce0871480ac405b00673b25234738de">klass</a>),</div><div class="line"><a name="l01537"></a><span class="lineno"> 1537</span>  <a class="code" href="../../d5/d11/ripper_8c.html#a877bc58c495643fcf49dc64c44631e72">rb_id2name</a>(cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#aa0ec76f80ebaf0668b688c4e4e5e3e3f">me</a>-><a class="code" href="../../d7/db7/structrb__method__entry__struct.html#a6c868c50e67b757c6324dfef0f3184dc">def</a>-><a class="code" href="../../d6/dab/structrb__method__definition__struct.html#a7fc0edb8505a61f8ae8bf2544fa7f676">original_id</a>));</div><div class="line"><a name="l01538"></a><span class="lineno"> 1538</span>  }</div><div class="line"><a name="l01539"></a><span class="lineno"> 1539</span> </div><div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>  <span class="keywordflow">return</span> str;</div><div class="line"><a name="l01541"></a><span class="lineno"> 1541</span> }</div><div class="line"><a name="l01542"></a><span class="lineno"> 1542</span> </div><div class="line"><a name="l01543"></a><span class="lineno"> 1543</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l01544"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#aff1db7f3bad76fa89acbb4097e1ff12f"> 1544</a></span> <a class="code" href="../../de/de9/vm_8c.html#aff1db7f3bad76fa89acbb4097e1ff12f">rb_vm_call_cfunc</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> recv, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> (*<a class="code" href="../../dc/dd1/ossl__ssl_8c.html#a86771351f4ef469ab9c94739a64fd7ea">func</a>)(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a>), <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> arg,</div><div class="line"><a name="l01545"></a><span class="lineno"> 1545</span>  <span class="keyword">const</span> <a class="code" href="../../da/dc0/structrb__block__struct.html">rb_block_t</a> *blockptr, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> filename)</div><div class="line"><a name="l01546"></a><span class="lineno"> 1546</span> {</div><div class="line"><a name="l01547"></a><span class="lineno"> 1547</span>  <a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th = <a class="code" href="../../d8/d32/vm__core_8h.html#a8deb84ec6023e3229db88ac2c9da6138">GET_THREAD</a>();</div><div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>  <span class="keyword">const</span> <a class="code" href="../../dd/d84/structrb__control__frame__t.html">rb_control_frame_t</a> *reg_cfp = th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>;</div><div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>  <span class="keyword">volatile</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> iseqval = <a class="code" href="../../dd/d74/iseq_8c.html#a356d85dc4610b2e4f8fdd2c9cede6780">rb_iseq_new</a>(0, filename, filename, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>, 0, ISEQ_TYPE_TOP);</div><div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> val;</div><div class="line"><a name="l01551"></a><span class="lineno"> 1551</span> </div><div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>  <a class="code" href="../../d0/db2/vm__insnhelper_8c.html#a30340566da5743c4d660c8931dffd86e">vm_push_frame</a>(th, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#abb509cfdf6560a9f795b1f6932d93691">DATA_PTR</a>(iseqval), <a class="code" href="../../d8/d32/vm__core_8h.html#ac9390ef02c17a0bc7e3bd359264562c7">VM_FRAME_MAGIC_TOP</a>,</div><div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>  recv, (<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a>)blockptr, 0, reg_cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a29b331b150e5cae1e206cd87f892bad8">sp</a>, 0, 1);</div><div class="line"><a name="l01554"></a><span class="lineno"> 1554</span> </div><div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>  val = (*func)(arg);</div><div class="line"><a name="l01556"></a><span class="lineno"> 1556</span> </div><div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>  <a class="code" href="../../d0/db2/vm__insnhelper_8c.html#a0aeeee637bf9706f9d240bac4ae359c3">vm_pop_frame</a>(th);</div><div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>  <span class="keywordflow">return</span> val;</div><div class="line"><a name="l01559"></a><span class="lineno"> 1559</span> }</div><div class="line"><a name="l01560"></a><span class="lineno"> 1560</span> </div><div class="line"><a name="l01561"></a><span class="lineno"> 1561</span> <span class="comment">/* vm */</span></div><div class="line"><a name="l01562"></a><span class="lineno"> 1562</span> </div><div class="line"><a name="l01563"></a><span class="lineno"> 1563</span> <span class="keyword">static</span> <span class="keywordtype">int</span></div><div class="line"><a name="l01564"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a89c3d926a61cd7ceb032a9cc999bdb5e"> 1564</a></span> <a class="code" href="../../de/de9/vm_8c.html#a89c3d926a61cd7ceb032a9cc999bdb5e">vm_mark_each_thread_func</a>(<a class="code" href="../../de/dce/syck_8h.html#a8a45dfe133c1fd041e1b902bda9e43e8">st_data_t</a> <a class="code" href="../../dc/de5/random_8c.html#a742229490b6759a90ece7ba82ba129d5">key</a>, <a class="code" href="../../de/dce/syck_8h.html#a8a45dfe133c1fd041e1b902bda9e43e8">st_data_t</a> value, <a class="code" href="../../de/dce/syck_8h.html#a8a45dfe133c1fd041e1b902bda9e43e8">st_data_t</a> dummy)</div><div class="line"><a name="l01565"></a><span class="lineno"> 1565</span> {</div><div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> thval = (<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a>)<a class="code" href="../../dc/de5/random_8c.html#a742229490b6759a90ece7ba82ba129d5">key</a>;</div><div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>  <a class="code" href="../../d8/d16/gc_8c.html#a98250264e6adf4924cf2becf80122325">rb_gc_mark</a>(thval);</div><div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>  <span class="keywordflow">return</span> <a class="code" href="../../dd/d24/st_8h.html#a0c6a172fd99de7928916e65034ed8b1fac99fc55c7f355bf9071739a4bc2ea139">ST_CONTINUE</a>;</div><div class="line"><a name="l01569"></a><span class="lineno"> 1569</span> }</div><div class="line"><a name="l01570"></a><span class="lineno"> 1570</span> </div><div class="line"><a name="l01571"></a><span class="lineno"> 1571</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l01572"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a24b81b57763993a6328a2451562e5995"> 1572</a></span> <a class="code" href="../../de/de9/vm_8c.html#a24b81b57763993a6328a2451562e5995">mark_event_hooks</a>(<a class="code" href="../../d8/d86/structrb__event__hook__struct.html">rb_event_hook_t</a> *hook)</div><div class="line"><a name="l01573"></a><span class="lineno"> 1573</span> {</div><div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>  <span class="keywordflow">while</span> (hook) {</div><div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>  <a class="code" href="../../d8/d16/gc_8c.html#a98250264e6adf4924cf2becf80122325">rb_gc_mark</a>(hook-><a class="code" href="../../d8/d86/structrb__event__hook__struct.html#aa6137e2130d9fd79d3efe46bdfce89ec">data</a>);</div><div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>  hook = hook-><a class="code" href="../../d8/d86/structrb__event__hook__struct.html#aa184927c156193e1506cf6649c036e67">next</a>;</div><div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>  }</div><div class="line"><a name="l01578"></a><span class="lineno"> 1578</span> }</div><div class="line"><a name="l01579"></a><span class="lineno"> 1579</span> </div><div class="line"><a name="l01580"></a><span class="lineno"> 1580</span> <span class="keywordtype">void</span></div><div class="line"><a name="l01581"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a8002db40fa68e94f40fec02f6d7d6ea6"> 1581</a></span> <a class="code" href="../../de/de9/vm_8c.html#a8002db40fa68e94f40fec02f6d7d6ea6">rb_vm_mark</a>(<span class="keywordtype">void</span> *ptr)</div><div class="line"><a name="l01582"></a><span class="lineno"> 1582</span> {</div><div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>  <span class="keywordtype">int</span> <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>;</div><div class="line"><a name="l01584"></a><span class="lineno"> 1584</span> </div><div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>  <a class="code" href="../../d0/daa/gc_8h.html#a2aa4d10eb84bae94811007f68c795fb7">RUBY_MARK_ENTER</a>(<span class="stringliteral">"vm"</span>);</div><div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>  <a class="code" href="../../d0/daa/gc_8h.html#a634fb573223a0ffb428332fc45916fc6">RUBY_GC_INFO</a>(<span class="stringliteral">"-------------------------------------------------\n"</span>);</div><div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>  <span class="keywordflow">if</span> (ptr) {</div><div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>  <a class="code" href="../../db/d74/structrb__vm__struct.html">rb_vm_t</a> *vm = ptr;</div><div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>  <span class="keywordflow">if</span> (vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#a09bd6675a9fe3f1b19e36284e91a0e31">living_threads</a>) {</div><div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>  <a class="code" href="../../d6/d87/regint_8h.html#a4a2fef263bb8fa14faff2a3222a407dd">st_foreach</a>(vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#a09bd6675a9fe3f1b19e36284e91a0e31">living_threads</a>, <a class="code" href="../../de/de9/vm_8c.html#a89c3d926a61cd7ceb032a9cc999bdb5e">vm_mark_each_thread_func</a>, 0);</div><div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>  }</div><div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>  <a class="code" href="../../d0/daa/gc_8h.html#afad3c58fae104a867be4305d1f96414a">RUBY_MARK_UNLESS_NULL</a>(vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#a81c2ebf1074cb61040daa9389f5bed80">thgroup_default</a>);</div><div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>  <a class="code" href="../../d0/daa/gc_8h.html#afad3c58fae104a867be4305d1f96414a">RUBY_MARK_UNLESS_NULL</a>(vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#af4e77414ac91c895a15ae89dad71f143">mark_object_ary</a>);</div><div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>  <a class="code" href="../../d0/daa/gc_8h.html#afad3c58fae104a867be4305d1f96414a">RUBY_MARK_UNLESS_NULL</a>(vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#a3f2af823747e05c39f7ebd9113e18d3a">load_path</a>);</div><div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>  <a class="code" href="../../d0/daa/gc_8h.html#afad3c58fae104a867be4305d1f96414a">RUBY_MARK_UNLESS_NULL</a>(vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#adc9a2f20cba11e9a872bbe603b7db593">loaded_features</a>);</div><div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>  <a class="code" href="../../d0/daa/gc_8h.html#afad3c58fae104a867be4305d1f96414a">RUBY_MARK_UNLESS_NULL</a>(vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#a75e7f2d63af5fc368e6a1de951190f22">top_self</a>);</div><div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>  <a class="code" href="../../d0/daa/gc_8h.html#afad3c58fae104a867be4305d1f96414a">RUBY_MARK_UNLESS_NULL</a>(vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#a21b034468dbe39d33b06fff964a45e9e">coverages</a>);</div><div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>  <a class="code" href="../../d8/d16/gc_8c.html#a90e176b7e9d24053977f64a611c1d8bb">rb_gc_mark_locations</a>(vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#a0878bef1918bcb59dbd39fe53ba3a9a1">special_exceptions</a>, vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#a0878bef1918bcb59dbd39fe53ba3a9a1">special_exceptions</a> + <a class="code" href="../../d8/d32/vm__core_8h.html#a58590982dd240cfd7473cc798636c05aa6d18d1c50b79b691e7b8f979b3ff4f0e">ruby_special_error_count</a>);</div><div class="line"><a name="l01599"></a><span class="lineno"> 1599</span> </div><div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>  <span class="keywordflow">if</span> (vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#a545233706d1cdd425f64edda8fc67dc7">loading_table</a>) {</div><div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>  <a class="code" href="../../d8/d16/gc_8c.html#a6b9a51387748f1a94f4d77092163aa3a">rb_mark_tbl</a>(vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#a545233706d1cdd425f64edda8fc67dc7">loading_table</a>);</div><div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>  }</div><div class="line"><a name="l01603"></a><span class="lineno"> 1603</span> </div><div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>  <a class="code" href="../../de/de9/vm_8c.html#a24b81b57763993a6328a2451562e5995">mark_event_hooks</a>(vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#a97f5b4a0de8b22b5b2215e311bd51eac">event_hooks</a>);</div><div class="line"><a name="l01605"></a><span class="lineno"> 1605</span> </div><div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>  <span class="keywordflow">for</span> (<a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a> = 0; <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a> < <a class="code" href="../../d8/d32/vm__core_8h.html#ae435941bb169c44f47dbc7f93a93f3db">RUBY_NSIG</a>; <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>++) {</div><div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>  <span class="keywordflow">if</span> (vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#a2f1db803f6eb0ccee7e93bb105cccb9e">trap_list</a>[<a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>].<a class="code" href="../../db/d74/structrb__vm__struct.html#ab84e4878eb81247cddd6b409f5a694a4">cmd</a>)</div><div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>  <a class="code" href="../../d8/d16/gc_8c.html#a98250264e6adf4924cf2becf80122325">rb_gc_mark</a>(vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#a2f1db803f6eb0ccee7e93bb105cccb9e">trap_list</a>[<a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>].<a class="code" href="../../db/d74/structrb__vm__struct.html#ab84e4878eb81247cddd6b409f5a694a4">cmd</a>);</div><div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>  }</div><div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>  }</div><div class="line"><a name="l01611"></a><span class="lineno"> 1611</span> </div><div class="line"><a name="l01612"></a><span class="lineno"> 1612</span>  <a class="code" href="../../d0/daa/gc_8h.html#a036115d8c044f5c847e760c57b08e5a9">RUBY_MARK_LEAVE</a>(<span class="stringliteral">"vm"</span>);</div><div class="line"><a name="l01613"></a><span class="lineno"> 1613</span> }</div><div class="line"><a name="l01614"></a><span class="lineno"> 1614</span> </div><div class="line"><a name="l01615"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#ae4b1c6a8b7a127fbd91c24d4198c9964"> 1615</a></span> <span class="preprocessor">#define vm_free 0</span></div><div class="line"><a name="l01616"></a><span class="lineno"> 1616</span> </div><div class="line"><a name="l01617"></a><span class="lineno"> 1617</span> <span class="keywordtype">int</span></div><div class="line"><a name="l01618"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a3a1a8ed8ecbbf3bd74854ef802cb910d"> 1618</a></span> <a class="code" href="../../de/de9/vm_8c.html#a3a1a8ed8ecbbf3bd74854ef802cb910d">ruby_vm_destruct</a>(<a class="code" href="../../db/d74/structrb__vm__struct.html">rb_vm_t</a> *vm)</div><div class="line"><a name="l01619"></a><span class="lineno"> 1619</span> {</div><div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>  <a class="code" href="../../d0/daa/gc_8h.html#a5d959738efb454623a7dad84d728262a">RUBY_FREE_ENTER</a>(<span class="stringliteral">"vm"</span>);</div><div class="line"><a name="l01621"></a><span class="lineno"> 1621</span>  <span class="keywordflow">if</span> (vm) {</div><div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>  <a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th = vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#a55af19560794b67c09c608a8464e47c9">main_thread</a>;</div><div class="line"><a name="l01623"></a><span class="lineno"> 1623</span> <span class="preprocessor">#if defined(ENABLE_VM_OBJSPACE) && ENABLE_VM_OBJSPACE</span></div><div class="line"><a name="l01624"></a><span class="lineno"> 1624</span>  <span class="keyword">struct </span><a class="code" href="../../d7/dc0/structrb__objspace.html">rb_objspace</a> *objspace = vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#a9eedda91413032dce6a7053a8f0a449d">objspace</a>;</div><div class="line"><a name="l01625"></a><span class="lineno"> 1625</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>  <a class="code" href="../../d8/d16/gc_8c.html#a53016811c87ff4c3ea839c9e85a9a9a4">rb_gc_force_recycle</a>(vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#a60a372cceaf16011b6c3d3b6861df36b">self</a>);</div><div class="line"><a name="l01627"></a><span class="lineno"> 1627</span>  vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#a55af19560794b67c09c608a8464e47c9">main_thread</a> = 0;</div><div class="line"><a name="l01628"></a><span class="lineno"> 1628</span>  <span class="keywordflow">if</span> (th) {</div><div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>  <a class="code" href="../../d5/d75/cont_8c.html#ab5703bedcf05b1ec2af16142f292c5fb">rb_fiber_reset_root_local_storage</a>(th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a6e712e6c5295a4173188139f1d6b7462">self</a>);</div><div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>  <a class="code" href="../../de/de9/vm_8c.html#afa313ee08837bb9545102cd3f28d91a7">thread_free</a>(th);</div><div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>  }</div><div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>  <span class="keywordflow">if</span> (vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#a09bd6675a9fe3f1b19e36284e91a0e31">living_threads</a>) {</div><div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>  <a class="code" href="../../d6/d87/regint_8h.html#ae0adede5868e71009c620a32a7b9d61e">st_free_table</a>(vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#a09bd6675a9fe3f1b19e36284e91a0e31">living_threads</a>);</div><div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>  vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#a09bd6675a9fe3f1b19e36284e91a0e31">living_threads</a> = 0;</div><div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>  }</div><div class="line"><a name="l01636"></a><span class="lineno"> 1636</span> <span class="preprocessor">#if defined(ENABLE_VM_OBJSPACE) && ENABLE_VM_OBJSPACE</span></div><div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>  <span class="keywordflow">if</span> (objspace) {</div><div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>  <a class="code" href="../../d8/d16/gc_8c.html#ad23af6ceadee644fb03120dbd2afabeb">rb_objspace_free</a>(objspace);</div><div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>  }</div><div class="line"><a name="l01640"></a><span class="lineno"> 1640</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>  <a class="code" href="../../de/de9/vm_8c.html#af41ce3aa993b8eb956d96a10060fdcca">ruby_vm_run_at_exit_hooks</a>(vm);</div><div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>  <a class="code" href="../../d3/de7/thread_8c.html#a152e345de139a53b412409fe441067a0">rb_vm_gvl_destroy</a>(vm);</div><div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>  <a class="code" href="../../d8/d16/gc_8c.html#a0bffec5b2cc004adcebb6802e7620387">ruby_xfree</a>(vm);</div><div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>  <a class="code" href="../../de/de9/vm_8c.html#a9be24d2deecfd3c43942e8c7cc4770a1">ruby_current_vm</a> = 0;</div><div class="line"><a name="l01645"></a><span class="lineno"> 1645</span>  }</div><div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>  <a class="code" href="../../d0/daa/gc_8h.html#af304d34de3474d75064e0cba170b7bf5">RUBY_FREE_LEAVE</a>(<span class="stringliteral">"vm"</span>);</div><div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l01648"></a><span class="lineno"> 1648</span> }</div><div class="line"><a name="l01649"></a><span class="lineno"> 1649</span> </div><div class="line"><a name="l01650"></a><span class="lineno"> 1650</span> <span class="keyword">static</span> <span class="keywordtype">size_t</span></div><div class="line"><a name="l01651"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#adae7bcf1d59e017fabade78224b55f4e"> 1651</a></span> <a class="code" href="../../de/de9/vm_8c.html#adae7bcf1d59e017fabade78224b55f4e">vm_memsize</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *<a class="code" href="../../d7/dc0/structrb__objspace.html#a450c55a247ef7b5948507a181a5c43d1">ptr</a>)</div><div class="line"><a name="l01652"></a><span class="lineno"> 1652</span> {</div><div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d7/dc0/structrb__objspace.html#a450c55a247ef7b5948507a181a5c43d1">ptr</a>) {</div><div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>  <span class="keyword">const</span> <a class="code" href="../../db/d74/structrb__vm__struct.html">rb_vm_t</a> *vmobj = <a class="code" href="../../d7/dc0/structrb__objspace.html#a450c55a247ef7b5948507a181a5c43d1">ptr</a>;</div><div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>  <span class="keywordflow">return</span> <span class="keyword">sizeof</span>(<a class="code" href="../../d8/d32/vm__core_8h.html#ab6a8242588889813903cd5d577ed906e">rb_vm_t</a>) + <a class="code" href="../../dd/d24/st_8h.html#a1d0d955fb1f39486c18162f222deb82b">st_memsize</a>(vmobj-><a class="code" href="../../db/d74/structrb__vm__struct.html#a09bd6675a9fe3f1b19e36284e91a0e31">living_threads</a>);</div><div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>  }</div><div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l01659"></a><span class="lineno"> 1659</span>  }</div><div class="line"><a name="l01660"></a><span class="lineno"> 1660</span> }</div><div class="line"><a name="l01661"></a><span class="lineno"> 1661</span> </div><div class="line"><a name="l01662"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a118ab0087779e3d649f8db8fac1dfc4d"> 1662</a></span> <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="../../d7/de2/structrb__data__type__struct.html">rb_data_type_t</a> <a class="code" href="../../de/de9/vm_8c.html#a118ab0087779e3d649f8db8fac1dfc4d">vm_data_type</a> = {</div><div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>  <span class="stringliteral">"VM"</span>,</div><div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>  {<a class="code" href="../../de/de9/vm_8c.html#a8002db40fa68e94f40fec02f6d7d6ea6">rb_vm_mark</a>, <a class="code" href="../../de/de9/vm_8c.html#ae4b1c6a8b7a127fbd91c24d4198c9964">vm_free</a>, <a class="code" href="../../de/de9/vm_8c.html#adae7bcf1d59e017fabade78224b55f4e">vm_memsize</a>,},</div><div class="line"><a name="l01665"></a><span class="lineno"> 1665</span> };</div><div class="line"><a name="l01666"></a><span class="lineno"> 1666</span> </div><div class="line"><a name="l01667"></a><span class="lineno"> 1667</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l01668"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a08ccea748ec0076636c2b4abada44ff0"> 1668</a></span> <a class="code" href="../../de/de9/vm_8c.html#a08ccea748ec0076636c2b4abada44ff0">vm_init2</a>(<a class="code" href="../../db/d74/structrb__vm__struct.html">rb_vm_t</a> *vm)</div><div class="line"><a name="l01669"></a><span class="lineno"> 1669</span> {</div><div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a56d620b94b668ed7665d1616b2c54e48">MEMZERO</a>(vm, <a class="code" href="../../db/d74/structrb__vm__struct.html">rb_vm_t</a>, 1);</div><div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>  vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#a3ee23d493b793fc91dd61376593e8f17">src_encoding_index</a> = -1;</div><div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>  vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#a328959223626113a5ceeb5638b5d9f8d">at_exit</a>.<a class="code" href="../../dd/d8b/struct_r_array.html#a302033453988193e8f7b18774fb68df9">basic</a>.<a class="code" href="../../d2/d22/struct_r_basic.html#a8ba5a9a18f9e80fc8b8531d5894f5f38">flags</a> = (<a class="code" href="../../de/de6/ruby_2ruby_8h.html#abbd332f6f94d77e0a369c7720128639e">T_ARRAY</a> | <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a01daa4561ae2e5d904a4df3c200a951c">RARRAY_EMBED_FLAG</a>) & ~<a class="code" href="../../de/de6/ruby_2ruby_8h.html#ad838455402de0089eb6b18bf094d54ad">RARRAY_EMBED_LEN_MASK</a>; <span class="comment">/* len set 0 */</span></div><div class="line"><a name="l01673"></a><span class="lineno"> 1673</span>  vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#a328959223626113a5ceeb5638b5d9f8d">at_exit</a>.<a class="code" href="../../dd/d8b/struct_r_array.html#a302033453988193e8f7b18774fb68df9">basic</a>.<a class="code" href="../../d2/d22/struct_r_basic.html#a31e86dc428e998786b528fef067424a4">klass</a> = 0;</div><div class="line"><a name="l01674"></a><span class="lineno"> 1674</span> }</div><div class="line"><a name="l01675"></a><span class="lineno"> 1675</span> </div><div class="line"><a name="l01676"></a><span class="lineno"> 1676</span> <span class="comment">/* Thread */</span></div><div class="line"><a name="l01677"></a><span class="lineno"> 1677</span> </div><div class="line"><a name="l01678"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a585ef3f19d4b31a72834f87218c91ec7"> 1678</a></span> <span class="preprocessor">#define USE_THREAD_DATA_RECYCLE 1</span></div><div class="line"><a name="l01679"></a><span class="lineno"> 1679</span> </div><div class="line"><a name="l01680"></a><span class="lineno"> 1680</span> <span class="preprocessor">#if USE_THREAD_DATA_RECYCLE</span></div><div class="line"><a name="l01681"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#ac482343a3f810e935739993994e26b22"> 1681</a></span> <span class="preprocessor">#define RECYCLE_MAX 64</span></div><div class="line"><a name="l01682"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#aebec1af86784db52769846dfc3b4cfaa"> 1682</a></span> <span class="keyword">static</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *<a class="code" href="../../de/de9/vm_8c.html#aebec1af86784db52769846dfc3b4cfaa">thread_recycle_stack_slot</a>[<a class="code" href="../../de/de9/vm_8c.html#ac482343a3f810e935739993994e26b22">RECYCLE_MAX</a>];</div><div class="line"><a name="l01683"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a088895c356d92de8dff1afee377c58c4"> 1683</a></span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="../../de/de9/vm_8c.html#a088895c356d92de8dff1afee377c58c4">thread_recycle_stack_count</a> = 0;</div><div class="line"><a name="l01684"></a><span class="lineno"> 1684</span> </div><div class="line"><a name="l01685"></a><span class="lineno"> 1685</span> <span class="keyword">static</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *</div><div class="line"><a name="l01686"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a2abade868818c379135d2eb27c104f85"> 1686</a></span> <a class="code" href="../../de/de9/vm_8c.html#a2abade868818c379135d2eb27c104f85">thread_recycle_stack</a>(<span class="keywordtype">size_t</span> <a class="code" href="../../d5/db5/encoding_8c.html#a439227feff9d7f55384e8780cfc2eb82">size</a>)</div><div class="line"><a name="l01687"></a><span class="lineno"> 1687</span> {</div><div class="line"><a name="l01688"></a><span class="lineno"> 1688</span>  <span class="keywordflow">if</span> (<a class="code" href="../../de/de9/vm_8c.html#a088895c356d92de8dff1afee377c58c4">thread_recycle_stack_count</a>) {</div><div class="line"><a name="l01689"></a><span class="lineno"> 1689</span>  <span class="keywordflow">return</span> <a class="code" href="../../de/de9/vm_8c.html#aebec1af86784db52769846dfc3b4cfaa">thread_recycle_stack_slot</a>[--<a class="code" href="../../de/de9/vm_8c.html#a088895c356d92de8dff1afee377c58c4">thread_recycle_stack_count</a>];</div><div class="line"><a name="l01690"></a><span class="lineno"> 1690</span>  }</div><div class="line"><a name="l01691"></a><span class="lineno"> 1691</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>  <span class="keywordflow">return</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a79041aa2bc7439c11906a86f82a52eb6">ALLOC_N</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a>, <a class="code" href="../../d5/db5/encoding_8c.html#a439227feff9d7f55384e8780cfc2eb82">size</a>);</div><div class="line"><a name="l01693"></a><span class="lineno"> 1693</span>  }</div><div class="line"><a name="l01694"></a><span class="lineno"> 1694</span> }</div><div class="line"><a name="l01695"></a><span class="lineno"> 1695</span> </div><div class="line"><a name="l01696"></a><span class="lineno"> 1696</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l01697"></a><span class="lineno"> 1697</span> <span class="preprocessor">#define thread_recycle_stack(size) ALLOC_N(VALUE, (size))</span></div><div class="line"><a name="l01698"></a><span class="lineno"> 1698</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l01699"></a><span class="lineno"> 1699</span> </div><div class="line"><a name="l01700"></a><span class="lineno"> 1700</span> <span class="keywordtype">void</span></div><div class="line"><a name="l01701"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a76e16c1e36ad91c284cc727c3b3eccf1"> 1701</a></span> <a class="code" href="../../de/de9/vm_8c.html#a76e16c1e36ad91c284cc727c3b3eccf1">rb_thread_recycle_stack_release</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *stack)</div><div class="line"><a name="l01702"></a><span class="lineno"> 1702</span> {</div><div class="line"><a name="l01703"></a><span class="lineno"> 1703</span> <span class="preprocessor">#if USE_THREAD_DATA_RECYCLE</span></div><div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>  <span class="keywordflow">if</span> (<a class="code" href="../../de/de9/vm_8c.html#a088895c356d92de8dff1afee377c58c4">thread_recycle_stack_count</a> < <a class="code" href="../../de/de9/vm_8c.html#ac482343a3f810e935739993994e26b22">RECYCLE_MAX</a>) {</div><div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>  <a class="code" href="../../de/de9/vm_8c.html#aebec1af86784db52769846dfc3b4cfaa">thread_recycle_stack_slot</a>[<a class="code" href="../../de/de9/vm_8c.html#a088895c356d92de8dff1afee377c58c4">thread_recycle_stack_count</a>++] = stack;</div><div class="line"><a name="l01706"></a><span class="lineno"> 1706</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l01707"></a><span class="lineno"> 1707</span>  }</div><div class="line"><a name="l01708"></a><span class="lineno"> 1708</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l01709"></a><span class="lineno"> 1709</span>  <a class="code" href="../../d8/d16/gc_8c.html#a0bffec5b2cc004adcebb6802e7620387">ruby_xfree</a>(stack);</div><div class="line"><a name="l01710"></a><span class="lineno"> 1710</span> }</div><div class="line"><a name="l01711"></a><span class="lineno"> 1711</span> </div><div class="line"><a name="l01712"></a><span class="lineno"> 1712</span> <span class="preprocessor">#ifdef USE_THREAD_RECYCLE</span></div><div class="line"><a name="l01713"></a><span class="lineno"> 1713</span> <span class="keyword">static</span> <a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *</div><div class="line"><a name="l01714"></a><span class="lineno"> 1714</span> thread_recycle_struct(<span class="keywordtype">void</span>)</div><div class="line"><a name="l01715"></a><span class="lineno"> 1715</span> {</div><div class="line"><a name="l01716"></a><span class="lineno"> 1716</span>  <span class="keywordtype">void</span> *<a class="code" href="../../d2/d99/win32ole_8c.html#a4b5a598a4f53b3724549c48dcfbf7c48">p</a> = <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a79041aa2bc7439c11906a86f82a52eb6">ALLOC_N</a>(<a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a>, 1);</div><div class="line"><a name="l01717"></a><span class="lineno"> 1717</span>  memset(<a class="code" href="../../d2/d99/win32ole_8c.html#a4b5a598a4f53b3724549c48dcfbf7c48">p</a>, 0, <span class="keyword">sizeof</span>(<a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a>));</div><div class="line"><a name="l01718"></a><span class="lineno"> 1718</span>  <span class="keywordflow">return</span> <a class="code" href="../../d2/d99/win32ole_8c.html#a4b5a598a4f53b3724549c48dcfbf7c48">p</a>;</div><div class="line"><a name="l01719"></a><span class="lineno"> 1719</span> }</div><div class="line"><a name="l01720"></a><span class="lineno"> 1720</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l01721"></a><span class="lineno"> 1721</span> </div><div class="line"><a name="l01722"></a><span class="lineno"> 1722</span> <span class="keywordtype">void</span></div><div class="line"><a name="l01723"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a7c957fc69c5c69c03b72c2723d973c3c"> 1723</a></span> <a class="code" href="../../de/de9/vm_8c.html#a7c957fc69c5c69c03b72c2723d973c3c">rb_thread_mark</a>(<span class="keywordtype">void</span> *<a class="code" href="../../d7/dc0/structrb__objspace.html#a450c55a247ef7b5948507a181a5c43d1">ptr</a>)</div><div class="line"><a name="l01724"></a><span class="lineno"> 1724</span> {</div><div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>  <a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th = <a class="code" href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div><div class="line"><a name="l01726"></a><span class="lineno"> 1726</span>  <a class="code" href="../../d0/daa/gc_8h.html#a2aa4d10eb84bae94811007f68c795fb7">RUBY_MARK_ENTER</a>(<span class="stringliteral">"thread"</span>);</div><div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d7/dc0/structrb__objspace.html#a450c55a247ef7b5948507a181a5c43d1">ptr</a>) {</div><div class="line"><a name="l01728"></a><span class="lineno"> 1728</span>  th = <a class="code" href="../../d7/dc0/structrb__objspace.html#a450c55a247ef7b5948507a181a5c43d1">ptr</a>;</div><div class="line"><a name="l01729"></a><span class="lineno"> 1729</span>  <span class="keywordflow">if</span> (th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a3fd7aab45a1c539bc9ca022acfc1ad51">stack</a>) {</div><div class="line"><a name="l01730"></a><span class="lineno"> 1730</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *<a class="code" href="../../d2/d99/win32ole_8c.html#a4b5a598a4f53b3724549c48dcfbf7c48">p</a> = th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a3fd7aab45a1c539bc9ca022acfc1ad51">stack</a>;</div><div class="line"><a name="l01731"></a><span class="lineno"> 1731</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *sp = th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a29b331b150e5cae1e206cd87f892bad8">sp</a>;</div><div class="line"><a name="l01732"></a><span class="lineno"> 1732</span>  <a class="code" href="../../dd/d84/structrb__control__frame__t.html">rb_control_frame_t</a> *cfp = th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>;</div><div class="line"><a name="l01733"></a><span class="lineno"> 1733</span>  <a class="code" href="../../dd/d84/structrb__control__frame__t.html">rb_control_frame_t</a> *limit_cfp = (<span class="keywordtype">void</span> *)(th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a3fd7aab45a1c539bc9ca022acfc1ad51">stack</a> + th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a1587dec1a575fb9f8d6a689ef4fdb6b5">stack_size</a>);</div><div class="line"><a name="l01734"></a><span class="lineno"> 1734</span> </div><div class="line"><a name="l01735"></a><span class="lineno"> 1735</span>  <span class="keywordflow">while</span> (<a class="code" href="../../d2/d99/win32ole_8c.html#a4b5a598a4f53b3724549c48dcfbf7c48">p</a> < sp) {</div><div class="line"><a name="l01736"></a><span class="lineno"> 1736</span>  <a class="code" href="../../d8/d16/gc_8c.html#a98250264e6adf4924cf2becf80122325">rb_gc_mark</a>(*<a class="code" href="../../d2/d99/win32ole_8c.html#a4b5a598a4f53b3724549c48dcfbf7c48">p</a>++);</div><div class="line"><a name="l01737"></a><span class="lineno"> 1737</span>  }</div><div class="line"><a name="l01738"></a><span class="lineno"> 1738</span>  <a class="code" href="../../d8/d16/gc_8c.html#a90e176b7e9d24053977f64a611c1d8bb">rb_gc_mark_locations</a>(<a class="code" href="../../d2/d99/win32ole_8c.html#a4b5a598a4f53b3724549c48dcfbf7c48">p</a>, <a class="code" href="../../d2/d99/win32ole_8c.html#a4b5a598a4f53b3724549c48dcfbf7c48">p</a> + th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#ae17b699504a6c4780843eac4971b2e98">mark_stack_len</a>);</div><div class="line"><a name="l01739"></a><span class="lineno"> 1739</span> </div><div class="line"><a name="l01740"></a><span class="lineno"> 1740</span>  <span class="keywordflow">while</span> (cfp != limit_cfp) {</div><div class="line"><a name="l01741"></a><span class="lineno"> 1741</span>  <a class="code" href="../../d6/de3/structrb__iseq__struct.html">rb_iseq_t</a> *iseq = cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4b25ca925a9f60481173632b9c09d4e0">iseq</a>;</div><div class="line"><a name="l01742"></a><span class="lineno"> 1742</span>  <a class="code" href="../../d8/d16/gc_8c.html#a98250264e6adf4924cf2becf80122325">rb_gc_mark</a>(cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#aad61bbd9da30e861bfb5fb9669d974cb">proc</a>);</div><div class="line"><a name="l01743"></a><span class="lineno"> 1743</span>  <a class="code" href="../../d8/d16/gc_8c.html#a98250264e6adf4924cf2becf80122325">rb_gc_mark</a>(cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4c11a50358317e1207affd6d7b4ad576">self</a>);</div><div class="line"><a name="l01744"></a><span class="lineno"> 1744</span>  <span class="keywordflow">if</span> (iseq) {</div><div class="line"><a name="l01745"></a><span class="lineno"> 1745</span>  <a class="code" href="../../d8/d16/gc_8c.html#a98250264e6adf4924cf2becf80122325">rb_gc_mark</a>(<a class="code" href="../../d8/d32/vm__core_8h.html#a79d03ad9b9cf8b7a8ca2b849e495a74f">RUBY_VM_NORMAL_ISEQ_P</a>(iseq) ? iseq-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#a46d5fb5c3de970a9540ab85d4b060957">self</a> : (<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a>)iseq);</div><div class="line"><a name="l01746"></a><span class="lineno"> 1746</span>  }</div><div class="line"><a name="l01747"></a><span class="lineno"> 1747</span>  <span class="keywordflow">if</span> (cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#aa0ec76f80ebaf0668b688c4e4e5e3e3f">me</a>) {</div><div class="line"><a name="l01748"></a><span class="lineno"> 1748</span>  <span class="comment">/* TODO: marking `me' can be more sophisticated way */</span></div><div class="line"><a name="l01749"></a><span class="lineno"> 1749</span>  ((<a class="code" href="../../d7/db7/structrb__method__entry__struct.html">rb_method_entry_t</a> *)cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#aa0ec76f80ebaf0668b688c4e4e5e3e3f">me</a>)->mark = 1;</div><div class="line"><a name="l01750"></a><span class="lineno"> 1750</span>  <a class="code" href="../../d8/d16/gc_8c.html#aac91fd74442afdfbafcdaf2c54f92240">rb_mark_method_entry</a>(cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#aa0ec76f80ebaf0668b688c4e4e5e3e3f">me</a>);</div><div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>  }</div><div class="line"><a name="l01752"></a><span class="lineno"> 1752</span>  cfp = <a class="code" href="../../d8/d32/vm__core_8h.html#af087c881c3c493e3a4e326852e8ed2a9">RUBY_VM_PREVIOUS_CONTROL_FRAME</a>(cfp);</div><div class="line"><a name="l01753"></a><span class="lineno"> 1753</span>  }</div><div class="line"><a name="l01754"></a><span class="lineno"> 1754</span>  }</div><div class="line"><a name="l01755"></a><span class="lineno"> 1755</span> </div><div class="line"><a name="l01756"></a><span class="lineno"> 1756</span>  <span class="comment">/* mark ruby objects */</span></div><div class="line"><a name="l01757"></a><span class="lineno"> 1757</span>  <a class="code" href="../../d0/daa/gc_8h.html#afad3c58fae104a867be4305d1f96414a">RUBY_MARK_UNLESS_NULL</a>(th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#aefaadd717ae62c44343b7bc767db6c5b">first_proc</a>);</div><div class="line"><a name="l01758"></a><span class="lineno"> 1758</span>  <span class="keywordflow">if</span> (th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#aefaadd717ae62c44343b7bc767db6c5b">first_proc</a>) <a class="code" href="../../d0/daa/gc_8h.html#afad3c58fae104a867be4305d1f96414a">RUBY_MARK_UNLESS_NULL</a>(th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#ac0efa5cb7f18b285cc3415f47930c4e6">first_args</a>);</div><div class="line"><a name="l01759"></a><span class="lineno"> 1759</span> </div><div class="line"><a name="l01760"></a><span class="lineno"> 1760</span>  <a class="code" href="../../d0/daa/gc_8h.html#afad3c58fae104a867be4305d1f96414a">RUBY_MARK_UNLESS_NULL</a>(th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a3fa7c7d516fe265dbbd215eed5da5a20">thgroup</a>);</div><div class="line"><a name="l01761"></a><span class="lineno"> 1761</span>  <a class="code" href="../../d0/daa/gc_8h.html#afad3c58fae104a867be4305d1f96414a">RUBY_MARK_UNLESS_NULL</a>(th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a1b297be9273cc68bd7ec30eb99aada0f">value</a>);</div><div class="line"><a name="l01762"></a><span class="lineno"> 1762</span>  <a class="code" href="../../d0/daa/gc_8h.html#afad3c58fae104a867be4305d1f96414a">RUBY_MARK_UNLESS_NULL</a>(th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a173e2da61fa57c7044fd7874a8c7a924">errinfo</a>);</div><div class="line"><a name="l01763"></a><span class="lineno"> 1763</span>  <a class="code" href="../../d0/daa/gc_8h.html#afad3c58fae104a867be4305d1f96414a">RUBY_MARK_UNLESS_NULL</a>(th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a29db283fbadbbc6cbc16533803820cb2">thrown_errinfo</a>);</div><div class="line"><a name="l01764"></a><span class="lineno"> 1764</span>  <a class="code" href="../../d0/daa/gc_8h.html#afad3c58fae104a867be4305d1f96414a">RUBY_MARK_UNLESS_NULL</a>(th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a4a62159d10487cfda82e358280f10625">local_svar</a>);</div><div class="line"><a name="l01765"></a><span class="lineno"> 1765</span>  <a class="code" href="../../d0/daa/gc_8h.html#afad3c58fae104a867be4305d1f96414a">RUBY_MARK_UNLESS_NULL</a>(th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#ac0ba34f711c43f831fe95e9a9434353f">top_self</a>);</div><div class="line"><a name="l01766"></a><span class="lineno"> 1766</span>  <a class="code" href="../../d0/daa/gc_8h.html#afad3c58fae104a867be4305d1f96414a">RUBY_MARK_UNLESS_NULL</a>(th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a63addaa5b39a83e287f7b8747398ab57">top_wrapper</a>);</div><div class="line"><a name="l01767"></a><span class="lineno"> 1767</span>  <a class="code" href="../../d0/daa/gc_8h.html#afad3c58fae104a867be4305d1f96414a">RUBY_MARK_UNLESS_NULL</a>(th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#ad4f0d497c78f3ab7f172d67c6b202b18">fiber</a>);</div><div class="line"><a name="l01768"></a><span class="lineno"> 1768</span>  <a class="code" href="../../d0/daa/gc_8h.html#afad3c58fae104a867be4305d1f96414a">RUBY_MARK_UNLESS_NULL</a>(th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#aabd5971200cda279bd826c2bd00f870f">root_fiber</a>);</div><div class="line"><a name="l01769"></a><span class="lineno"> 1769</span>  <a class="code" href="../../d0/daa/gc_8h.html#afad3c58fae104a867be4305d1f96414a">RUBY_MARK_UNLESS_NULL</a>(th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a3c9e667590cfe18b655cbe812e04d643">stat_insn_usage</a>);</div><div class="line"><a name="l01770"></a><span class="lineno"> 1770</span>  <a class="code" href="../../d0/daa/gc_8h.html#afad3c58fae104a867be4305d1f96414a">RUBY_MARK_UNLESS_NULL</a>(th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a02e6343202cb5994463c33da7ed38c4f">last_status</a>);</div><div class="line"><a name="l01771"></a><span class="lineno"> 1771</span> </div><div class="line"><a name="l01772"></a><span class="lineno"> 1772</span>  <a class="code" href="../../d0/daa/gc_8h.html#afad3c58fae104a867be4305d1f96414a">RUBY_MARK_UNLESS_NULL</a>(th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#ab0435aec1daf59ef6caceee7004a7cfb">locking_mutex</a>);</div><div class="line"><a name="l01773"></a><span class="lineno"> 1773</span> </div><div class="line"><a name="l01774"></a><span class="lineno"> 1774</span>  <a class="code" href="../../d8/d16/gc_8c.html#a6b9a51387748f1a94f4d77092163aa3a">rb_mark_tbl</a>(th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#af1ef1ecd85eec7b4809f81151ade5248">local_storage</a>);</div><div class="line"><a name="l01775"></a><span class="lineno"> 1775</span> </div><div class="line"><a name="l01776"></a><span class="lineno"> 1776</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d8/d32/vm__core_8h.html#a8deb84ec6023e3229db88ac2c9da6138">GET_THREAD</a>() != th && th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a004e79191ba26ebbdc62ea9f77039f1b">machine_stack_start</a> && th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a510cac166812798b8548fe541020667f">machine_stack_end</a>) {</div><div class="line"><a name="l01777"></a><span class="lineno"> 1777</span>  <a class="code" href="../../d8/d16/gc_8c.html#a4c2152009e465bf40a157fa23dfcc92e">rb_gc_mark_machine_stack</a>(th);</div><div class="line"><a name="l01778"></a><span class="lineno"> 1778</span>  <a class="code" href="../../d8/d16/gc_8c.html#a90e176b7e9d24053977f64a611c1d8bb">rb_gc_mark_locations</a>((<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *)&th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a7863ca61434f5835cbe70aa14b0273c1">machine_regs</a>,</div><div class="line"><a name="l01779"></a><span class="lineno"> 1779</span>  (<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *)(&th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a7863ca61434f5835cbe70aa14b0273c1">machine_regs</a>) +</div><div class="line"><a name="l01780"></a><span class="lineno"> 1780</span>  <span class="keyword">sizeof</span>(th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a7863ca61434f5835cbe70aa14b0273c1">machine_regs</a>) / <span class="keyword">sizeof</span>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a>));</div><div class="line"><a name="l01781"></a><span class="lineno"> 1781</span>  }</div><div class="line"><a name="l01782"></a><span class="lineno"> 1782</span> </div><div class="line"><a name="l01783"></a><span class="lineno"> 1783</span>  <a class="code" href="../../de/de9/vm_8c.html#a24b81b57763993a6328a2451562e5995">mark_event_hooks</a>(th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#aa368906b4d6c4d26dc7f649b7c8fb6ab">event_hooks</a>);</div><div class="line"><a name="l01784"></a><span class="lineno"> 1784</span>  }</div><div class="line"><a name="l01785"></a><span class="lineno"> 1785</span> </div><div class="line"><a name="l01786"></a><span class="lineno"> 1786</span>  <a class="code" href="../../d0/daa/gc_8h.html#a036115d8c044f5c847e760c57b08e5a9">RUBY_MARK_LEAVE</a>(<span class="stringliteral">"thread"</span>);</div><div class="line"><a name="l01787"></a><span class="lineno"> 1787</span> }</div><div class="line"><a name="l01788"></a><span class="lineno"> 1788</span> </div><div class="line"><a name="l01789"></a><span class="lineno"> 1789</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l01790"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#afa313ee08837bb9545102cd3f28d91a7"> 1790</a></span> <a class="code" href="../../de/de9/vm_8c.html#afa313ee08837bb9545102cd3f28d91a7">thread_free</a>(<span class="keywordtype">void</span> *<a class="code" href="../../d7/dc0/structrb__objspace.html#a450c55a247ef7b5948507a181a5c43d1">ptr</a>)</div><div class="line"><a name="l01791"></a><span class="lineno"> 1791</span> {</div><div class="line"><a name="l01792"></a><span class="lineno"> 1792</span>  <a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th;</div><div class="line"><a name="l01793"></a><span class="lineno"> 1793</span>  <a class="code" href="../../d0/daa/gc_8h.html#a5d959738efb454623a7dad84d728262a">RUBY_FREE_ENTER</a>(<span class="stringliteral">"thread"</span>);</div><div class="line"><a name="l01794"></a><span class="lineno"> 1794</span> </div><div class="line"><a name="l01795"></a><span class="lineno"> 1795</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d7/dc0/structrb__objspace.html#a450c55a247ef7b5948507a181a5c43d1">ptr</a>) {</div><div class="line"><a name="l01796"></a><span class="lineno"> 1796</span>  th = <a class="code" href="../../d7/dc0/structrb__objspace.html#a450c55a247ef7b5948507a181a5c43d1">ptr</a>;</div><div class="line"><a name="l01797"></a><span class="lineno"> 1797</span> </div><div class="line"><a name="l01798"></a><span class="lineno"> 1798</span>  <span class="keywordflow">if</span> (!th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#aabd5971200cda279bd826c2bd00f870f">root_fiber</a>) {</div><div class="line"><a name="l01799"></a><span class="lineno"> 1799</span>  <a class="code" href="../../d0/daa/gc_8h.html#a904b1cd50d09d6c8ae915c78e425420a">RUBY_FREE_UNLESS_NULL</a>(th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a3fd7aab45a1c539bc9ca022acfc1ad51">stack</a>);</div><div class="line"><a name="l01800"></a><span class="lineno"> 1800</span>  }</div><div class="line"><a name="l01801"></a><span class="lineno"> 1801</span> </div><div class="line"><a name="l01802"></a><span class="lineno"> 1802</span>  <span class="keywordflow">if</span> (th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#ab0435aec1daf59ef6caceee7004a7cfb">locking_mutex</a> != <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba0717d2689eb68797421a02ab9295c6">Qfalse</a>) {</div><div class="line"><a name="l01803"></a><span class="lineno"> 1803</span>  <a class="code" href="../../db/dcc/error_8c.html#a2d5fb28e54f792e7341b2c45f52f3860">rb_bug</a>(<span class="stringliteral">"thread_free: locking_mutex must be NULL (%p:%p)"</span>, (<span class="keywordtype">void</span> *)th, (<span class="keywordtype">void</span> *)th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#ab0435aec1daf59ef6caceee7004a7cfb">locking_mutex</a>);</div><div class="line"><a name="l01804"></a><span class="lineno"> 1804</span>  }</div><div class="line"><a name="l01805"></a><span class="lineno"> 1805</span>  <span class="keywordflow">if</span> (th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#adb11d95769dc97f821331399fd45a586">keeping_mutexes</a> != <a class="code" href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>) {</div><div class="line"><a name="l01806"></a><span class="lineno"> 1806</span>  <a class="code" href="../../db/dcc/error_8c.html#a2d5fb28e54f792e7341b2c45f52f3860">rb_bug</a>(<span class="stringliteral">"thread_free: keeping_mutexes must be NULL (%p:%p)"</span>, (<span class="keywordtype">void</span> *)th, (<span class="keywordtype">void</span> *)th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#adb11d95769dc97f821331399fd45a586">keeping_mutexes</a>);</div><div class="line"><a name="l01807"></a><span class="lineno"> 1807</span>  }</div><div class="line"><a name="l01808"></a><span class="lineno"> 1808</span> </div><div class="line"><a name="l01809"></a><span class="lineno"> 1809</span>  <span class="keywordflow">if</span> (th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#af1ef1ecd85eec7b4809f81151ade5248">local_storage</a>) {</div><div class="line"><a name="l01810"></a><span class="lineno"> 1810</span>  <a class="code" href="../../d6/d87/regint_8h.html#ae0adede5868e71009c620a32a7b9d61e">st_free_table</a>(th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#af1ef1ecd85eec7b4809f81151ade5248">local_storage</a>);</div><div class="line"><a name="l01811"></a><span class="lineno"> 1811</span>  }</div><div class="line"><a name="l01812"></a><span class="lineno"> 1812</span> </div><div class="line"><a name="l01813"></a><span class="lineno"> 1813</span>  <span class="keywordflow">if</span> (th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a3e7d0b05e2d73f324e70c735ba50739e">vm</a> && th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a3e7d0b05e2d73f324e70c735ba50739e">vm</a>-><a class="code" href="../../db/d74/structrb__vm__struct.html#a55af19560794b67c09c608a8464e47c9">main_thread</a> == th) {</div><div class="line"><a name="l01814"></a><span class="lineno"> 1814</span>  <a class="code" href="../../d0/daa/gc_8h.html#a634fb573223a0ffb428332fc45916fc6">RUBY_GC_INFO</a>(<span class="stringliteral">"main thread\n"</span>);</div><div class="line"><a name="l01815"></a><span class="lineno"> 1815</span>  }</div><div class="line"><a name="l01816"></a><span class="lineno"> 1816</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l01817"></a><span class="lineno"> 1817</span> <span class="preprocessor">#ifdef USE_SIGALTSTACK</span></div><div class="line"><a name="l01818"></a><span class="lineno"> 1818</span>  <span class="keywordflow">if</span> (th->altstack) {</div><div class="line"><a name="l01819"></a><span class="lineno"> 1819</span>  <a class="code" href="../../d2/d99/win32ole_8c.html#a18100522f0b19b5e9b9875f5737a9386">free</a>(th->altstack);</div><div class="line"><a name="l01820"></a><span class="lineno"> 1820</span>  }</div><div class="line"><a name="l01821"></a><span class="lineno"> 1821</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l01822"></a><span class="lineno"> 1822</span>  <a class="code" href="../../d8/d16/gc_8c.html#a0bffec5b2cc004adcebb6802e7620387">ruby_xfree</a>(<a class="code" href="../../d7/dc0/structrb__objspace.html#a450c55a247ef7b5948507a181a5c43d1">ptr</a>);</div><div class="line"><a name="l01823"></a><span class="lineno"> 1823</span>  }</div><div class="line"><a name="l01824"></a><span class="lineno"> 1824</span>  <span class="keywordflow">if</span> (<a class="code" href="../../de/de9/vm_8c.html#a21823fe13ba76a2161c1b35286853e32">ruby_current_thread</a> == th)</div><div class="line"><a name="l01825"></a><span class="lineno"> 1825</span>  <a class="code" href="../../de/de9/vm_8c.html#a21823fe13ba76a2161c1b35286853e32">ruby_current_thread</a> = <a class="code" href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div><div class="line"><a name="l01826"></a><span class="lineno"> 1826</span>  }</div><div class="line"><a name="l01827"></a><span class="lineno"> 1827</span>  <a class="code" href="../../d0/daa/gc_8h.html#af304d34de3474d75064e0cba170b7bf5">RUBY_FREE_LEAVE</a>(<span class="stringliteral">"thread"</span>);</div><div class="line"><a name="l01828"></a><span class="lineno"> 1828</span> }</div><div class="line"><a name="l01829"></a><span class="lineno"> 1829</span> </div><div class="line"><a name="l01830"></a><span class="lineno"> 1830</span> <span class="keyword">static</span> <span class="keywordtype">size_t</span></div><div class="line"><a name="l01831"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#ae13ac094cd9fdca07b8abed66a9fd5c1"> 1831</a></span> <a class="code" href="../../de/de9/vm_8c.html#ae13ac094cd9fdca07b8abed66a9fd5c1">thread_memsize</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *<a class="code" href="../../d7/dc0/structrb__objspace.html#a450c55a247ef7b5948507a181a5c43d1">ptr</a>)</div><div class="line"><a name="l01832"></a><span class="lineno"> 1832</span> {</div><div class="line"><a name="l01833"></a><span class="lineno"> 1833</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d7/dc0/structrb__objspace.html#a450c55a247ef7b5948507a181a5c43d1">ptr</a>) {</div><div class="line"><a name="l01834"></a><span class="lineno"> 1834</span>  <span class="keyword">const</span> <a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th = <a class="code" href="../../d7/dc0/structrb__objspace.html#a450c55a247ef7b5948507a181a5c43d1">ptr</a>;</div><div class="line"><a name="l01835"></a><span class="lineno"> 1835</span>  <span class="keywordtype">size_t</span> <a class="code" href="../../d5/db5/encoding_8c.html#a439227feff9d7f55384e8780cfc2eb82">size</a> = <span class="keyword">sizeof</span>(<a class="code" href="../../d8/d32/vm__core_8h.html#a70702992b3bf190c5dd8a4dffd79e2cd">rb_thread_t</a>);</div><div class="line"><a name="l01836"></a><span class="lineno"> 1836</span> </div><div class="line"><a name="l01837"></a><span class="lineno"> 1837</span>  <span class="keywordflow">if</span> (!th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#aabd5971200cda279bd826c2bd00f870f">root_fiber</a>) {</div><div class="line"><a name="l01838"></a><span class="lineno"> 1838</span>  <a class="code" href="../../d5/db5/encoding_8c.html#a439227feff9d7f55384e8780cfc2eb82">size</a> += th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a1587dec1a575fb9f8d6a689ef4fdb6b5">stack_size</a> * <span class="keyword">sizeof</span>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a>);</div><div class="line"><a name="l01839"></a><span class="lineno"> 1839</span>  }</div><div class="line"><a name="l01840"></a><span class="lineno"> 1840</span>  <span class="keywordflow">if</span> (th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#af1ef1ecd85eec7b4809f81151ade5248">local_storage</a>) {</div><div class="line"><a name="l01841"></a><span class="lineno"> 1841</span>  <a class="code" href="../../d5/db5/encoding_8c.html#a439227feff9d7f55384e8780cfc2eb82">size</a> += <a class="code" href="../../dd/d24/st_8h.html#a1d0d955fb1f39486c18162f222deb82b">st_memsize</a>(th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#af1ef1ecd85eec7b4809f81151ade5248">local_storage</a>);</div><div class="line"><a name="l01842"></a><span class="lineno"> 1842</span>  }</div><div class="line"><a name="l01843"></a><span class="lineno"> 1843</span>  <span class="keywordflow">return</span> <a class="code" href="../../d5/db5/encoding_8c.html#a439227feff9d7f55384e8780cfc2eb82">size</a>;</div><div class="line"><a name="l01844"></a><span class="lineno"> 1844</span>  }</div><div class="line"><a name="l01845"></a><span class="lineno"> 1845</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l01846"></a><span class="lineno"> 1846</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l01847"></a><span class="lineno"> 1847</span>  }</div><div class="line"><a name="l01848"></a><span class="lineno"> 1848</span> }</div><div class="line"><a name="l01849"></a><span class="lineno"> 1849</span> </div><div class="line"><a name="l01850"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a27ed80c29d1a854ccaa4ae2aa3ef6769"> 1850</a></span> <span class="preprocessor">#define thread_data_type ruby_threadptr_data_type</span></div><div class="line"><a name="l01851"></a><span class="lineno"><a class="line" href="../../d8/d32/vm__core_8h.html#a0310d690f45eb1cba3a726e36c65385b"> 1851</a></span> <span class="keyword">const</span> <a class="code" href="../../d7/de2/structrb__data__type__struct.html">rb_data_type_t</a> <a class="code" href="../../de/de9/vm_8c.html#a0310d690f45eb1cba3a726e36c65385b">ruby_threadptr_data_type</a> = {</div><div class="line"><a name="l01852"></a><span class="lineno"> 1852</span>  <span class="stringliteral">"VM/thread"</span>,</div><div class="line"><a name="l01853"></a><span class="lineno"> 1853</span>  {</div><div class="line"><a name="l01854"></a><span class="lineno"> 1854</span>  <a class="code" href="../../de/de9/vm_8c.html#a7c957fc69c5c69c03b72c2723d973c3c">rb_thread_mark</a>,</div><div class="line"><a name="l01855"></a><span class="lineno"> 1855</span>  <a class="code" href="../../de/de9/vm_8c.html#afa313ee08837bb9545102cd3f28d91a7">thread_free</a>,</div><div class="line"><a name="l01856"></a><span class="lineno"> 1856</span>  <a class="code" href="../../de/de9/vm_8c.html#ae13ac094cd9fdca07b8abed66a9fd5c1">thread_memsize</a>,</div><div class="line"><a name="l01857"></a><span class="lineno"> 1857</span>  },</div><div class="line"><a name="l01858"></a><span class="lineno"> 1858</span> };</div><div class="line"><a name="l01859"></a><span class="lineno"> 1859</span> </div><div class="line"><a name="l01860"></a><span class="lineno"> 1860</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l01861"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a7eda924b79844f890f5ba44800c1c520"> 1861</a></span> <a class="code" href="../../de/de9/vm_8c.html#a7eda924b79844f890f5ba44800c1c520">rb_obj_is_thread</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> obj)</div><div class="line"><a name="l01862"></a><span class="lineno"> 1862</span> {</div><div class="line"><a name="l01863"></a><span class="lineno"> 1863</span>  <span class="keywordflow">if</span> (<a class="code" href="../../db/dcc/error_8c.html#a2a5803d0e60feb0ed8f37e7a38e8df47">rb_typeddata_is_kind_of</a>(obj, &<a class="code" href="../../de/de9/vm_8c.html#a27ed80c29d1a854ccaa4ae2aa3ef6769">thread_data_type</a>)) {</div><div class="line"><a name="l01864"></a><span class="lineno"> 1864</span>  <span class="keywordflow">return</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aacea3516b33941ce8149098e223a7466">Qtrue</a>;</div><div class="line"><a name="l01865"></a><span class="lineno"> 1865</span>  }</div><div class="line"><a name="l01866"></a><span class="lineno"> 1866</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l01867"></a><span class="lineno"> 1867</span>  <span class="keywordflow">return</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba0717d2689eb68797421a02ab9295c6">Qfalse</a>;</div><div class="line"><a name="l01868"></a><span class="lineno"> 1868</span>  }</div><div class="line"><a name="l01869"></a><span class="lineno"> 1869</span> }</div><div class="line"><a name="l01870"></a><span class="lineno"> 1870</span> </div><div class="line"><a name="l01871"></a><span class="lineno"> 1871</span> <span class="keyword">static</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l01872"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#ab4e70e1584b736c0698101beabd2a2bd"> 1872</a></span> <a class="code" href="../../de/de9/vm_8c.html#ab4e70e1584b736c0698101beabd2a2bd">thread_alloc</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> klass)</div><div class="line"><a name="l01873"></a><span class="lineno"> 1873</span> {</div><div class="line"><a name="l01874"></a><span class="lineno"> 1874</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <span class="keyword">volatile</span> obj;</div><div class="line"><a name="l01875"></a><span class="lineno"> 1875</span> <span class="preprocessor">#ifdef USE_THREAD_RECYCLE</span></div><div class="line"><a name="l01876"></a><span class="lineno"> 1876</span>  <a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th = thread_recycle_struct();</div><div class="line"><a name="l01877"></a><span class="lineno"> 1877</span>  obj = <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aa3094c0054b80ec2a7e50f9fe1e5f4b2">TypedData_Wrap_Struct</a>(klass, &<a class="code" href="../../de/de9/vm_8c.html#a27ed80c29d1a854ccaa4ae2aa3ef6769">thread_data_type</a>, th);</div><div class="line"><a name="l01878"></a><span class="lineno"> 1878</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l01879"></a><span class="lineno"> 1879</span>  <a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th;</div><div class="line"><a name="l01880"></a><span class="lineno"> 1880</span>  obj = <a class="code" href="../../de/de6/ruby_2ruby_8h.html#acb14aa93d3dc60a9d16570270154e6fa">TypedData_Make_Struct</a>(klass, <a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a>, &<a class="code" href="../../de/de9/vm_8c.html#a27ed80c29d1a854ccaa4ae2aa3ef6769">thread_data_type</a>, th);</div><div class="line"><a name="l01881"></a><span class="lineno"> 1881</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l01882"></a><span class="lineno"> 1882</span>  <span class="keywordflow">return</span> obj;</div><div class="line"><a name="l01883"></a><span class="lineno"> 1883</span> }</div><div class="line"><a name="l01884"></a><span class="lineno"> 1884</span> </div><div class="line"><a name="l01885"></a><span class="lineno"> 1885</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l01886"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a8254b2c9550e30be25c3115308865c28"> 1886</a></span> <a class="code" href="../../de/de9/vm_8c.html#a8254b2c9550e30be25c3115308865c28">th_init</a>(<a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <span class="keyword">self</span>)</div><div class="line"><a name="l01887"></a><span class="lineno"> 1887</span> {</div><div class="line"><a name="l01888"></a><span class="lineno"> 1888</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a6e712e6c5295a4173188139f1d6b7462">self</a> = <span class="keyword">self</span>;</div><div class="line"><a name="l01889"></a><span class="lineno"> 1889</span> </div><div class="line"><a name="l01890"></a><span class="lineno"> 1890</span>  <span class="comment">/* allocate thread stack */</span></div><div class="line"><a name="l01891"></a><span class="lineno"> 1891</span> <span class="preprocessor">#ifdef USE_SIGALTSTACK</span></div><div class="line"><a name="l01892"></a><span class="lineno"> 1892</span>  <span class="comment">/* altstack of main thread is reallocated in another place */</span></div><div class="line"><a name="l01893"></a><span class="lineno"> 1893</span>  th->altstack = <a class="code" href="../../d1/d6f/date__strftime_8c.html#aa21fad24622996b74839deccf1202f29">malloc</a>(<a class="code" href="../../d8/d32/vm__core_8h.html#aca50bfb7be201e098951bf4ec357f5c2">ALT_STACK_SIZE</a>);</div><div class="line"><a name="l01894"></a><span class="lineno"> 1894</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l01895"></a><span class="lineno"> 1895</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a1587dec1a575fb9f8d6a689ef4fdb6b5">stack_size</a> = <a class="code" href="../../d8/d32/vm__core_8h.html#a018f55ffc774044f51407f692f07c0d3">RUBY_VM_THREAD_STACK_SIZE</a>;</div><div class="line"><a name="l01896"></a><span class="lineno"> 1896</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a3fd7aab45a1c539bc9ca022acfc1ad51">stack</a> = <a class="code" href="../../de/de9/vm_8c.html#a2abade868818c379135d2eb27c104f85">thread_recycle_stack</a>(th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a1587dec1a575fb9f8d6a689ef4fdb6b5">stack_size</a>);</div><div class="line"><a name="l01897"></a><span class="lineno"> 1897</span> </div><div class="line"><a name="l01898"></a><span class="lineno"> 1898</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a> = (<span class="keywordtype">void</span> *)(th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a3fd7aab45a1c539bc9ca022acfc1ad51">stack</a> + th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a1587dec1a575fb9f8d6a689ef4fdb6b5">stack_size</a>);</div><div class="line"><a name="l01899"></a><span class="lineno"> 1899</span> </div><div class="line"><a name="l01900"></a><span class="lineno"> 1900</span>  <a class="code" href="../../d0/db2/vm__insnhelper_8c.html#a30340566da5743c4d660c8931dffd86e">vm_push_frame</a>(th, 0, <a class="code" href="../../d8/d32/vm__core_8h.html#ac9390ef02c17a0bc7e3bd359264562c7">VM_FRAME_MAGIC_TOP</a>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>, 0, 0,</div><div class="line"><a name="l01901"></a><span class="lineno"> 1901</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a3fd7aab45a1c539bc9ca022acfc1ad51">stack</a>, 0, 1);</div><div class="line"><a name="l01902"></a><span class="lineno"> 1902</span> </div><div class="line"><a name="l01903"></a><span class="lineno"> 1903</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a647ed2a802789fff9e511bea4ada1239">status</a> = <a class="code" href="../../d8/d32/vm__core_8h.html#a027718c64d1aa742ccdb9c1a68afaa75a7b74b43e0bf953520175df870c5aef3c">THREAD_RUNNABLE</a>;</div><div class="line"><a name="l01904"></a><span class="lineno"> 1904</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a173e2da61fa57c7044fd7874a8c7a924">errinfo</a> = <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>;</div><div class="line"><a name="l01905"></a><span class="lineno"> 1905</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a02e6343202cb5994463c33da7ed38c4f">last_status</a> = <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>;</div><div class="line"><a name="l01906"></a><span class="lineno"> 1906</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a8ddade0070cf5af8034e1549e30839fb">waiting_fd</a> = -1;</div><div class="line"><a name="l01907"></a><span class="lineno"> 1907</span> }</div><div class="line"><a name="l01908"></a><span class="lineno"> 1908</span> </div><div class="line"><a name="l01909"></a><span class="lineno"> 1909</span> <span class="keyword">static</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l01910"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#aaa1408f30b8f6129882c3f99355e63cf"> 1910</a></span> <a class="code" href="../../de/de9/vm_8c.html#aaa1408f30b8f6129882c3f99355e63cf">ruby_thread_init</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <span class="keyword">self</span>)</div><div class="line"><a name="l01911"></a><span class="lineno"> 1911</span> {</div><div class="line"><a name="l01912"></a><span class="lineno"> 1912</span>  <a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th;</div><div class="line"><a name="l01913"></a><span class="lineno"> 1913</span>  <a class="code" href="../../db/d74/structrb__vm__struct.html">rb_vm_t</a> *vm = <a class="code" href="../../d8/d32/vm__core_8h.html#a8deb84ec6023e3229db88ac2c9da6138">GET_THREAD</a>()->vm;</div><div class="line"><a name="l01914"></a><span class="lineno"> 1914</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#a36e942386b2b43383c44e769bffe5808">GetThreadPtr</a>(<span class="keyword">self</span>, th);</div><div class="line"><a name="l01915"></a><span class="lineno"> 1915</span> </div><div class="line"><a name="l01916"></a><span class="lineno"> 1916</span>  <a class="code" href="../../de/de9/vm_8c.html#a8254b2c9550e30be25c3115308865c28">th_init</a>(th, <span class="keyword">self</span>);</div><div class="line"><a name="l01917"></a><span class="lineno"> 1917</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a3e7d0b05e2d73f324e70c735ba50739e">vm</a> = vm;</div><div class="line"><a name="l01918"></a><span class="lineno"> 1918</span> </div><div class="line"><a name="l01919"></a><span class="lineno"> 1919</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a63addaa5b39a83e287f7b8747398ab57">top_wrapper</a> = 0;</div><div class="line"><a name="l01920"></a><span class="lineno"> 1920</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#ac0ba34f711c43f831fe95e9a9434353f">top_self</a> = <a class="code" href="../../de/de9/vm_8c.html#a5293371c1050a118f49ccf3c073bcfbe">rb_vm_top_self</a>();</div><div class="line"><a name="l01921"></a><span class="lineno"> 1921</span>  <span class="keywordflow">return</span> <span class="keyword">self</span>;</div><div class="line"><a name="l01922"></a><span class="lineno"> 1922</span> }</div><div class="line"><a name="l01923"></a><span class="lineno"> 1923</span> </div><div class="line"><a name="l01924"></a><span class="lineno"> 1924</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l01925"></a><span class="lineno"><a class="line" href="../../d8/d32/vm__core_8h.html#a914b7151a013f7fc163b7024cb00ac87"> 1925</a></span> <a class="code" href="../../de/de9/vm_8c.html#a914b7151a013f7fc163b7024cb00ac87">rb_thread_alloc</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> klass)</div><div class="line"><a name="l01926"></a><span class="lineno"> 1926</span> {</div><div class="line"><a name="l01927"></a><span class="lineno"> 1927</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <span class="keyword">self</span> = <a class="code" href="../../de/de9/vm_8c.html#ab4e70e1584b736c0698101beabd2a2bd">thread_alloc</a>(klass);</div><div class="line"><a name="l01928"></a><span class="lineno"> 1928</span>  <a class="code" href="../../de/de9/vm_8c.html#aaa1408f30b8f6129882c3f99355e63cf">ruby_thread_init</a>(<span class="keyword">self</span>);</div><div class="line"><a name="l01929"></a><span class="lineno"> 1929</span>  <span class="keywordflow">return</span> <span class="keyword">self</span>;</div><div class="line"><a name="l01930"></a><span class="lineno"> 1930</span> }</div><div class="line"><a name="l01931"></a><span class="lineno"> 1931</span> </div><div class="line"><a name="l01932"></a><span class="lineno"> 1932</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l01933"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a469ecc9b7152b6bb8e3589ca48141f5e"> 1933</a></span> <a class="code" href="../../de/de9/vm_8c.html#a469ecc9b7152b6bb8e3589ca48141f5e">vm_define_method</a>(<a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> obj, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#afa5b9137f051ac26d7ccc8824f178233">ID</a> <span class="keywordtype">id</span>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> iseqval,</div><div class="line"><a name="l01934"></a><span class="lineno"> 1934</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#afa3629f5cb977b24532d09e1aa055e4a">rb_num_t</a> is_singleton, <a class="code" href="../../dd/de6/struct_r_node.html">NODE</a> *cref)</div><div class="line"><a name="l01935"></a><span class="lineno"> 1935</span> {</div><div class="line"><a name="l01936"></a><span class="lineno"> 1936</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> klass = cref->nd_clss;</div><div class="line"><a name="l01937"></a><span class="lineno"> 1937</span>  <span class="keywordtype">int</span> noex = (int)cref->nd_visi;</div><div class="line"><a name="l01938"></a><span class="lineno"> 1938</span>  <a class="code" href="../../d6/de3/structrb__iseq__struct.html">rb_iseq_t</a> *miseq;</div><div class="line"><a name="l01939"></a><span class="lineno"> 1939</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#a5e6a3515e0ad9b9d6a4c0ab577dc50b6">GetISeqPtr</a>(iseqval, miseq);</div><div class="line"><a name="l01940"></a><span class="lineno"> 1940</span> </div><div class="line"><a name="l01941"></a><span class="lineno"> 1941</span>  <span class="keywordflow">if</span> (miseq->klass) {</div><div class="line"><a name="l01942"></a><span class="lineno"> 1942</span>  iseqval = <a class="code" href="../../de/ddf/group__class.html#gad44e50d3f03c58fa8d5e4e50558df898">rb_iseq_clone</a>(iseqval, 0);</div><div class="line"><a name="l01943"></a><span class="lineno"> 1943</span>  <a class="code" href="../../d8/df4/generator_8h.html#ad2bf389f3fddea7bd3befa162c70561a">RB_GC_GUARD</a>(iseqval);</div><div class="line"><a name="l01944"></a><span class="lineno"> 1944</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#a5e6a3515e0ad9b9d6a4c0ab577dc50b6">GetISeqPtr</a>(iseqval, miseq);</div><div class="line"><a name="l01945"></a><span class="lineno"> 1945</span>  }</div><div class="line"><a name="l01946"></a><span class="lineno"> 1946</span> </div><div class="line"><a name="l01947"></a><span class="lineno"> 1947</span>  <span class="keywordflow">if</span> (<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a4832bad8845a35fc50f7a160901854a1">NIL_P</a>(klass)) {</div><div class="line"><a name="l01948"></a><span class="lineno"> 1948</span>  <a class="code" href="../../db/dcc/error_8c.html#a0f771a2840561f1838169b3d7d4616f3">rb_raise</a>(<a class="code" href="../../db/dcc/error_8c.html#a565ed9d70f4089e1b4a36e9b3381b8c6">rb_eTypeError</a>, <span class="stringliteral">"no class/module to add method"</span>);</div><div class="line"><a name="l01949"></a><span class="lineno"> 1949</span>  }</div><div class="line"><a name="l01950"></a><span class="lineno"> 1950</span> </div><div class="line"><a name="l01951"></a><span class="lineno"> 1951</span>  <span class="keywordflow">if</span> (is_singleton) {</div><div class="line"><a name="l01952"></a><span class="lineno"> 1952</span>  <span class="keywordflow">if</span> (<a class="code" href="../../de/de6/ruby_2ruby_8h.html#acf2fcf97dcf9c7c35452730eb3e2aeb2">FIXNUM_P</a>(obj) || <a class="code" href="../../dc/d0c/cparse_8c.html#a637bc5a232034ee3fd411f8bef091566">SYMBOL_P</a>(obj)) {</div><div class="line"><a name="l01953"></a><span class="lineno"> 1953</span>  <a class="code" href="../../db/dcc/error_8c.html#a0f771a2840561f1838169b3d7d4616f3">rb_raise</a>(<a class="code" href="../../db/dcc/error_8c.html#a565ed9d70f4089e1b4a36e9b3381b8c6">rb_eTypeError</a>,</div><div class="line"><a name="l01954"></a><span class="lineno"> 1954</span>  <span class="stringliteral">"can't define singleton method \"%s\" for %s"</span>,</div><div class="line"><a name="l01955"></a><span class="lineno"> 1955</span>  <a class="code" href="../../d5/d11/ripper_8c.html#a877bc58c495643fcf49dc64c44631e72">rb_id2name</a>(<span class="keywordtype">id</span>), <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a9b4f42ada717bfbe7a78830639476aed">rb_obj_classname</a>(obj));</div><div class="line"><a name="l01956"></a><span class="lineno"> 1956</span>  }</div><div class="line"><a name="l01957"></a><span class="lineno"> 1957</span> </div><div class="line"><a name="l01958"></a><span class="lineno"> 1958</span>  <a class="code" href="../../db/d2e/intern_8h.html#a372d6acb27d271ee4fc2e88c7022c485">rb_check_frozen</a>(obj);</div><div class="line"><a name="l01959"></a><span class="lineno"> 1959</span>  klass = <a class="code" href="../../de/ddf/group__class.html#ga3778543a2798adab7bc12ed325c0b5d0">rb_singleton_class</a>(obj);</div><div class="line"><a name="l01960"></a><span class="lineno"> 1960</span>  noex = <a class="code" href="../../db/d0a/method_8h.html#a1e54ff32a6191e40451e1523c61ca439acbaffd02a49dab8af6ca3bcde9336f30">NOEX_PUBLIC</a>;</div><div class="line"><a name="l01961"></a><span class="lineno"> 1961</span>  }</div><div class="line"><a name="l01962"></a><span class="lineno"> 1962</span> </div><div class="line"><a name="l01963"></a><span class="lineno"> 1963</span>  <span class="comment">/* dup */</span></div><div class="line"><a name="l01964"></a><span class="lineno"> 1964</span>  <a class="code" href="../../d2/d5f/vm__insnhelper_8h.html#adc65dee2ab1f2e022731b16355888ecb">COPY_CREF</a>(miseq->cref_stack, cref);</div><div class="line"><a name="l01965"></a><span class="lineno"> 1965</span>  miseq->cref_stack->nd_visi = <a class="code" href="../../db/d0a/method_8h.html#a1e54ff32a6191e40451e1523c61ca439acbaffd02a49dab8af6ca3bcde9336f30">NOEX_PUBLIC</a>;</div><div class="line"><a name="l01966"></a><span class="lineno"> 1966</span>  miseq->klass = klass;</div><div class="line"><a name="l01967"></a><span class="lineno"> 1967</span>  miseq->defined_method_id = <a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a64ae40793ade89d800a8c5646d2980fc">id</a>;</div><div class="line"><a name="l01968"></a><span class="lineno"> 1968</span>  <a class="code" href="../../db/d0a/method_8h.html#af24b4bc2104eeb955b312d41bb492c5c">rb_add_method</a>(klass, <span class="keywordtype">id</span>, <a class="code" href="../../db/d0a/method_8h.html#a88a981f6cc69187ed9c2de2630a1687aa09fd70c8c3426502348b7df7c121e505">VM_METHOD_TYPE_ISEQ</a>, miseq, noex);</div><div class="line"><a name="l01969"></a><span class="lineno"> 1969</span> </div><div class="line"><a name="l01970"></a><span class="lineno"> 1970</span>  <span class="keywordflow">if</span> (!is_singleton && noex == <a class="code" href="../../db/d0a/method_8h.html#a1e54ff32a6191e40451e1523c61ca439a50775b7233e9bb462c3703a6511e02d1">NOEX_MODFUNC</a>) {</div><div class="line"><a name="l01971"></a><span class="lineno"> 1971</span>  <a class="code" href="../../db/d0a/method_8h.html#af24b4bc2104eeb955b312d41bb492c5c">rb_add_method</a>(<a class="code" href="../../de/ddf/group__class.html#ga3778543a2798adab7bc12ed325c0b5d0">rb_singleton_class</a>(klass), <span class="keywordtype">id</span>, <a class="code" href="../../db/d0a/method_8h.html#a88a981f6cc69187ed9c2de2630a1687aa09fd70c8c3426502348b7df7c121e505">VM_METHOD_TYPE_ISEQ</a>, miseq, <a class="code" href="../../db/d0a/method_8h.html#a1e54ff32a6191e40451e1523c61ca439acbaffd02a49dab8af6ca3bcde9336f30">NOEX_PUBLIC</a>);</div><div class="line"><a name="l01972"></a><span class="lineno"> 1972</span>  }</div><div class="line"><a name="l01973"></a><span class="lineno"> 1973</span>  <a class="code" href="../../d2/d5f/vm__insnhelper_8h.html#a8e91da0eaddd34a78c8f9c5207df8979">INC_VM_STATE_VERSION</a>();</div><div class="line"><a name="l01974"></a><span class="lineno"> 1974</span> }</div><div class="line"><a name="l01975"></a><span class="lineno"> 1975</span> </div><div class="line"><a name="l01976"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#aa41b42017c8091c664dea5ed30fe9c5c"> 1976</a></span> <span class="preprocessor">#define REWIND_CFP(expr) do { \</span></div><div class="line"><a name="l01977"></a><span class="lineno"> 1977</span> <span class="preprocessor"> rb_thread_t *th__ = GET_THREAD(); \</span></div><div class="line"><a name="l01978"></a><span class="lineno"> 1978</span> <span class="preprocessor"> th__->cfp++; expr; th__->cfp--; \</span></div><div class="line"><a name="l01979"></a><span class="lineno"> 1979</span> <span class="preprocessor">} while (0)</span></div><div class="line"><a name="l01980"></a><span class="lineno"> 1980</span> </div><div class="line"><a name="l01981"></a><span class="lineno"> 1981</span> <span class="keyword">static</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l01982"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a31455d8d3483e811bf2dfe55220e0a2d"> 1982</a></span> <a class="code" href="../../de/de9/vm_8c.html#a31455d8d3483e811bf2dfe55220e0a2d">m_core_define_method</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <span class="keyword">self</span>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> cbase, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../dd/dc0/date__core_8c.html#a8157485e687f56a6ae2f3ee0a8cb1580">sym</a>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> iseqval)</div><div class="line"><a name="l01983"></a><span class="lineno"> 1983</span> {</div><div class="line"><a name="l01984"></a><span class="lineno"> 1984</span>  <a class="code" href="../../de/de9/vm_8c.html#aa41b42017c8091c664dea5ed30fe9c5c">REWIND_CFP</a>({</div><div class="line"><a name="l01985"></a><span class="lineno"> 1985</span>  <a class="code" href="../../de/de9/vm_8c.html#a469ecc9b7152b6bb8e3589ca48141f5e">vm_define_method</a>(<a class="code" href="../../d8/d32/vm__core_8h.html#a8deb84ec6023e3229db88ac2c9da6138">GET_THREAD</a>(), cbase, <a class="code" href="../../dc/d0c/cparse_8c.html#a73ce5202e6172d3ad0bab7d1e0df9dae">SYM2ID</a>(<a class="code" href="../../dd/dc0/date__core_8c.html#a8157485e687f56a6ae2f3ee0a8cb1580">sym</a>), iseqval, 0, <a class="code" href="../../de/de9/vm_8c.html#a148afe59d50d9a0f3bde4d9968d8a2f5">rb_vm_cref</a>());</div><div class="line"><a name="l01986"></a><span class="lineno"> 1986</span>  });</div><div class="line"><a name="l01987"></a><span class="lineno"> 1987</span>  <span class="keywordflow">return</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>;</div><div class="line"><a name="l01988"></a><span class="lineno"> 1988</span> }</div><div class="line"><a name="l01989"></a><span class="lineno"> 1989</span> </div><div class="line"><a name="l01990"></a><span class="lineno"> 1990</span> <span class="keyword">static</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l01991"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#af6daaa3b312cda0a07c1c06b2608d4dc"> 1991</a></span> <a class="code" href="../../de/de9/vm_8c.html#af6daaa3b312cda0a07c1c06b2608d4dc">m_core_define_singleton_method</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <span class="keyword">self</span>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> cbase, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../dd/dc0/date__core_8c.html#a8157485e687f56a6ae2f3ee0a8cb1580">sym</a>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> iseqval)</div><div class="line"><a name="l01992"></a><span class="lineno"> 1992</span> {</div><div class="line"><a name="l01993"></a><span class="lineno"> 1993</span>  <a class="code" href="../../de/de9/vm_8c.html#aa41b42017c8091c664dea5ed30fe9c5c">REWIND_CFP</a>({</div><div class="line"><a name="l01994"></a><span class="lineno"> 1994</span>  <a class="code" href="../../de/de9/vm_8c.html#a469ecc9b7152b6bb8e3589ca48141f5e">vm_define_method</a>(<a class="code" href="../../d8/d32/vm__core_8h.html#a8deb84ec6023e3229db88ac2c9da6138">GET_THREAD</a>(), cbase, <a class="code" href="../../dc/d0c/cparse_8c.html#a73ce5202e6172d3ad0bab7d1e0df9dae">SYM2ID</a>(<a class="code" href="../../dd/dc0/date__core_8c.html#a8157485e687f56a6ae2f3ee0a8cb1580">sym</a>), iseqval, 1, <a class="code" href="../../de/de9/vm_8c.html#a148afe59d50d9a0f3bde4d9968d8a2f5">rb_vm_cref</a>());</div><div class="line"><a name="l01995"></a><span class="lineno"> 1995</span>  });</div><div class="line"><a name="l01996"></a><span class="lineno"> 1996</span>  <span class="keywordflow">return</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>;</div><div class="line"><a name="l01997"></a><span class="lineno"> 1997</span> }</div><div class="line"><a name="l01998"></a><span class="lineno"> 1998</span> </div><div class="line"><a name="l01999"></a><span class="lineno"> 1999</span> <span class="keyword">static</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l02000"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#ab5b731afdd8e86459bd5ddbc587c8a1c"> 2000</a></span> <a class="code" href="../../de/de9/vm_8c.html#ab5b731afdd8e86459bd5ddbc587c8a1c">m_core_set_method_alias</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <span class="keyword">self</span>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> cbase, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> sym1, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> sym2)</div><div class="line"><a name="l02001"></a><span class="lineno"> 2001</span> {</div><div class="line"><a name="l02002"></a><span class="lineno"> 2002</span>  <a class="code" href="../../de/de9/vm_8c.html#aa41b42017c8091c664dea5ed30fe9c5c">REWIND_CFP</a>({</div><div class="line"><a name="l02003"></a><span class="lineno"> 2003</span>  <a class="code" href="../../db/d2e/intern_8h.html#a875565385e4542e217883aa78ede3a67">rb_alias</a>(cbase, <a class="code" href="../../dc/d0c/cparse_8c.html#a73ce5202e6172d3ad0bab7d1e0df9dae">SYM2ID</a>(sym1), <a class="code" href="../../dc/d0c/cparse_8c.html#a73ce5202e6172d3ad0bab7d1e0df9dae">SYM2ID</a>(sym2));</div><div class="line"><a name="l02004"></a><span class="lineno"> 2004</span>  });</div><div class="line"><a name="l02005"></a><span class="lineno"> 2005</span>  <span class="keywordflow">return</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>;</div><div class="line"><a name="l02006"></a><span class="lineno"> 2006</span> }</div><div class="line"><a name="l02007"></a><span class="lineno"> 2007</span> </div><div class="line"><a name="l02008"></a><span class="lineno"> 2008</span> <span class="keyword">static</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l02009"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#aa775eb74347f7cde2375d8c694ff47aa"> 2009</a></span> <a class="code" href="../../de/de9/vm_8c.html#aa775eb74347f7cde2375d8c694ff47aa">m_core_set_variable_alias</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <span class="keyword">self</span>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> sym1, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> sym2)</div><div class="line"><a name="l02010"></a><span class="lineno"> 2010</span> {</div><div class="line"><a name="l02011"></a><span class="lineno"> 2011</span>  <a class="code" href="../../de/de9/vm_8c.html#aa41b42017c8091c664dea5ed30fe9c5c">REWIND_CFP</a>({</div><div class="line"><a name="l02012"></a><span class="lineno"> 2012</span>  <a class="code" href="../../db/d2e/intern_8h.html#ab8ed493136ffbe39cfc3fca62eced570">rb_alias_variable</a>(<a class="code" href="../../dc/d0c/cparse_8c.html#a73ce5202e6172d3ad0bab7d1e0df9dae">SYM2ID</a>(sym1), <a class="code" href="../../dc/d0c/cparse_8c.html#a73ce5202e6172d3ad0bab7d1e0df9dae">SYM2ID</a>(sym2));</div><div class="line"><a name="l02013"></a><span class="lineno"> 2013</span>  });</div><div class="line"><a name="l02014"></a><span class="lineno"> 2014</span>  <span class="keywordflow">return</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>;</div><div class="line"><a name="l02015"></a><span class="lineno"> 2015</span> }</div><div class="line"><a name="l02016"></a><span class="lineno"> 2016</span> </div><div class="line"><a name="l02017"></a><span class="lineno"> 2017</span> <span class="keyword">static</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l02018"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a8a84999770916c4cc41113421fee2233"> 2018</a></span> <a class="code" href="../../de/de9/vm_8c.html#a8a84999770916c4cc41113421fee2233">m_core_undef_method</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <span class="keyword">self</span>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> cbase, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../dd/dc0/date__core_8c.html#a8157485e687f56a6ae2f3ee0a8cb1580">sym</a>)</div><div class="line"><a name="l02019"></a><span class="lineno"> 2019</span> {</div><div class="line"><a name="l02020"></a><span class="lineno"> 2020</span>  <a class="code" href="../../de/de9/vm_8c.html#aa41b42017c8091c664dea5ed30fe9c5c">REWIND_CFP</a>({</div><div class="line"><a name="l02021"></a><span class="lineno"> 2021</span>  <a class="code" href="../../db/d2e/intern_8h.html#a05cac3059504774696c1a748ba6085d3">rb_undef</a>(cbase, <a class="code" href="../../dc/d0c/cparse_8c.html#a73ce5202e6172d3ad0bab7d1e0df9dae">SYM2ID</a>(<a class="code" href="../../dd/dc0/date__core_8c.html#a8157485e687f56a6ae2f3ee0a8cb1580">sym</a>));</div><div class="line"><a name="l02022"></a><span class="lineno"> 2022</span>  <a class="code" href="../../d2/d5f/vm__insnhelper_8h.html#a8e91da0eaddd34a78c8f9c5207df8979">INC_VM_STATE_VERSION</a>();</div><div class="line"><a name="l02023"></a><span class="lineno"> 2023</span>  });</div><div class="line"><a name="l02024"></a><span class="lineno"> 2024</span>  <span class="keywordflow">return</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>;</div><div class="line"><a name="l02025"></a><span class="lineno"> 2025</span> }</div><div class="line"><a name="l02026"></a><span class="lineno"> 2026</span> </div><div class="line"><a name="l02027"></a><span class="lineno"> 2027</span> <span class="keyword">static</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l02028"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#aba01cea003dce480ff70e17597990208"> 2028</a></span> <a class="code" href="../../de/de9/vm_8c.html#aba01cea003dce480ff70e17597990208">m_core_set_postexe</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <span class="keyword">self</span>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> iseqval)</div><div class="line"><a name="l02029"></a><span class="lineno"> 2029</span> {</div><div class="line"><a name="l02030"></a><span class="lineno"> 2030</span>  <a class="code" href="../../de/de9/vm_8c.html#aa41b42017c8091c664dea5ed30fe9c5c">REWIND_CFP</a>({</div><div class="line"><a name="l02031"></a><span class="lineno"> 2031</span>  <a class="code" href="../../d6/de3/structrb__iseq__struct.html">rb_iseq_t</a> *blockiseq;</div><div class="line"><a name="l02032"></a><span class="lineno"> 2032</span>  <a class="code" href="../../da/dc0/structrb__block__struct.html">rb_block_t</a> *blockptr;</div><div class="line"><a name="l02033"></a><span class="lineno"> 2033</span>  <a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th = <a class="code" href="../../d8/d32/vm__core_8h.html#a8deb84ec6023e3229db88ac2c9da6138">GET_THREAD</a>();</div><div class="line"><a name="l02034"></a><span class="lineno"> 2034</span>  <a class="code" href="../../dd/d84/structrb__control__frame__t.html">rb_control_frame_t</a> *cfp = <a class="code" href="../../de/de9/vm_8c.html#a2709ccd7eeff81c0f749a7678223857e">rb_vm_get_ruby_level_next_cfp</a>(th, th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>);</div><div class="line"><a name="l02035"></a><span class="lineno"> 2035</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> proc;</div><div class="line"><a name="l02036"></a><span class="lineno"> 2036</span> </div><div class="line"><a name="l02037"></a><span class="lineno"> 2037</span>  <span class="keywordflow">if</span> (cfp == 0) {</div><div class="line"><a name="l02038"></a><span class="lineno"> 2038</span>  <a class="code" href="../../db/dcc/error_8c.html#a2d5fb28e54f792e7341b2c45f52f3860">rb_bug</a>(<span class="stringliteral">"m_core_set_postexe: unreachable"</span>);</div><div class="line"><a name="l02039"></a><span class="lineno"> 2039</span>  }</div><div class="line"><a name="l02040"></a><span class="lineno"> 2040</span> </div><div class="line"><a name="l02041"></a><span class="lineno"> 2041</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#a5e6a3515e0ad9b9d6a4c0ab577dc50b6">GetISeqPtr</a>(iseqval, blockiseq);</div><div class="line"><a name="l02042"></a><span class="lineno"> 2042</span> </div><div class="line"><a name="l02043"></a><span class="lineno"> 2043</span>  blockptr = <a class="code" href="../../d8/d32/vm__core_8h.html#acfa2a173f2b08fdbe1045d2c990200d3">RUBY_VM_GET_BLOCK_PTR_IN_CFP</a>(cfp);</div><div class="line"><a name="l02044"></a><span class="lineno"> 2044</span>  blockptr-><a class="code" href="../../da/dc0/structrb__block__struct.html#a8e2b3b9218b4a184f198872404e81605">iseq</a> = blockiseq;</div><div class="line"><a name="l02045"></a><span class="lineno"> 2045</span>  blockptr-><a class="code" href="../../da/dc0/structrb__block__struct.html#a305ea0fcc6d1233de416bd8e7edab218">proc</a> = 0;</div><div class="line"><a name="l02046"></a><span class="lineno"> 2046</span> </div><div class="line"><a name="l02047"></a><span class="lineno"> 2047</span>  proc = <a class="code" href="../../de/de9/vm_8c.html#a7e8d71dee905abc403d671561b12f4e8">rb_vm_make_proc</a>(th, blockptr, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#abd0d5fa9d171dbf020e85958391437f9">rb_cProc</a>);</div><div class="line"><a name="l02048"></a><span class="lineno"> 2048</span>  <a class="code" href="../../d6/d9b/eval__jump_8c.html#a59c976d93f8b1b2766e4fe7e01ac1ee7">rb_set_end_proc</a>(<a class="code" href="../../d6/d9b/eval__jump_8c.html#aa4edbe2aeb4e47e6bd22bd2b3f6d8ba8">rb_call_end_proc</a>, proc);</div><div class="line"><a name="l02049"></a><span class="lineno"> 2049</span>  });</div><div class="line"><a name="l02050"></a><span class="lineno"> 2050</span>  <span class="keywordflow">return</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>;</div><div class="line"><a name="l02051"></a><span class="lineno"> 2051</span> }</div><div class="line"><a name="l02052"></a><span class="lineno"> 2052</span> </div><div class="line"><a name="l02053"></a><span class="lineno"> 2053</span> <span class="keyword">extern</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *<a class="code" href="../../de/de9/vm_8c.html#aa1a13d72336a9859fa7c70bcde97b4f9">rb_gc_stack_start</a>;</div><div class="line"><a name="l02054"></a><span class="lineno"> 2054</span> <span class="keyword">extern</span> <span class="keywordtype">size_t</span> <a class="code" href="../../de/de9/vm_8c.html#ad53ef65d4a92f8337548b752d4b44b9e">rb_gc_stack_maxsize</a>;</div><div class="line"><a name="l02055"></a><span class="lineno"> 2055</span> <span class="preprocessor">#ifdef __ia64</span></div><div class="line"><a name="l02056"></a><span class="lineno"> 2056</span> <span class="keyword">extern</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *rb_gc_register_stack_start;</div><div class="line"><a name="l02057"></a><span class="lineno"> 2057</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l02058"></a><span class="lineno"> 2058</span> </div><div class="line"><a name="l02059"></a><span class="lineno"> 2059</span> <span class="comment">/* debug functions */</span></div><div class="line"><a name="l02060"></a><span class="lineno"> 2060</span> </div><div class="line"><a name="l02061"></a><span class="lineno"> 2061</span> <span class="comment">/* :nodoc: */</span></div><div class="line"><a name="l02062"></a><span class="lineno"> 2062</span> <span class="keyword">static</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l02063"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#abd4857d42a372434a12d8a62404e4fa2"> 2063</a></span> <a class="code" href="../../de/de9/vm_8c.html#abd4857d42a372434a12d8a62404e4fa2">sdr</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l02064"></a><span class="lineno"> 2064</span> {</div><div class="line"><a name="l02065"></a><span class="lineno"> 2065</span>  <a class="code" href="../../db/dde/internal_8h.html#af1b67bbf4b72295a772178d0bd939dd0">rb_vm_bugreport</a>();</div><div class="line"><a name="l02066"></a><span class="lineno"> 2066</span>  <span class="keywordflow">return</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>;</div><div class="line"><a name="l02067"></a><span class="lineno"> 2067</span> }</div><div class="line"><a name="l02068"></a><span class="lineno"> 2068</span> </div><div class="line"><a name="l02069"></a><span class="lineno"> 2069</span> <span class="comment">/* :nodoc: */</span></div><div class="line"><a name="l02070"></a><span class="lineno"> 2070</span> <span class="keyword">static</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l02071"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#ac35785c3423751b6c5095da2a99c61f4"> 2071</a></span> <a class="code" href="../../de/de9/vm_8c.html#ac35785c3423751b6c5095da2a99c61f4">nsdr</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l02072"></a><span class="lineno"> 2072</span> {</div><div class="line"><a name="l02073"></a><span class="lineno"> 2073</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> ary = <a class="code" href="../../dc/dcc/array_8c.html#a9518114fd36cb4ef4656ec1dc63348c9">rb_ary_new</a>();</div><div class="line"><a name="l02074"></a><span class="lineno"> 2074</span> <span class="preprocessor">#if HAVE_BACKTRACE</span></div><div class="line"><a name="l02075"></a><span class="lineno"> 2075</span> <span class="preprocessor">#include <execinfo.h></span></div><div class="line"><a name="l02076"></a><span class="lineno"> 2076</span> <span class="preprocessor">#define MAX_NATIVE_TRACE 1024</span></div><div class="line"><a name="l02077"></a><span class="lineno"> 2077</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> *trace[MAX_NATIVE_TRACE];</div><div class="line"><a name="l02078"></a><span class="lineno"> 2078</span>  <span class="keywordtype">int</span> n = backtrace(trace, MAX_NATIVE_TRACE);</div><div class="line"><a name="l02079"></a><span class="lineno"> 2079</span>  <span class="keywordtype">char</span> **syms = backtrace_symbols(trace, n);</div><div class="line"><a name="l02080"></a><span class="lineno"> 2080</span>  <span class="keywordtype">int</span> <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>;</div><div class="line"><a name="l02081"></a><span class="lineno"> 2081</span> </div><div class="line"><a name="l02082"></a><span class="lineno"> 2082</span>  <span class="keywordflow">if</span> (syms == 0) {</div><div class="line"><a name="l02083"></a><span class="lineno"> 2083</span>  <a class="code" href="../../d8/d16/gc_8c.html#a14b9fe6e6bba3f2279b95af407c546f8">rb_memerror</a>();</div><div class="line"><a name="l02084"></a><span class="lineno"> 2084</span>  }</div><div class="line"><a name="l02085"></a><span class="lineno"> 2085</span> </div><div class="line"><a name="l02086"></a><span class="lineno"> 2086</span>  <span class="keywordflow">for</span> (<a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>=0; <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a><n; <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>++) {</div><div class="line"><a name="l02087"></a><span class="lineno"> 2087</span>  <a class="code" href="../../dc/dcc/array_8c.html#a59d553a8cd781364b8bcb0deae25cca2">rb_ary_push</a>(ary, <a class="code" href="../../db/d2e/intern_8h.html#ada1577ce4242b06ff5c1c52f37f5e679">rb_str_new2</a>(syms[<a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>]));</div><div class="line"><a name="l02088"></a><span class="lineno"> 2088</span>  }</div><div class="line"><a name="l02089"></a><span class="lineno"> 2089</span>  <a class="code" href="../../d2/d99/win32ole_8c.html#a18100522f0b19b5e9b9875f5737a9386">free</a>(syms); <span class="comment">/* OK */</span></div><div class="line"><a name="l02090"></a><span class="lineno"> 2090</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l02091"></a><span class="lineno"> 2091</span>  <span class="keywordflow">return</span> ary;</div><div class="line"><a name="l02092"></a><span class="lineno"> 2092</span> }</div><div class="line"><a name="l02093"></a><span class="lineno"> 2093</span> </div><div class="line"><a name="l02094"></a><span class="lineno"> 2094</span> <span class="keywordtype">void</span></div><div class="line"><a name="l02095"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#adab716402e3bca5b8c6664aa102045d8"> 2095</a></span> <a class="code" href="../../de/de9/vm_8c.html#adab716402e3bca5b8c6664aa102045d8">Init_VM</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l02096"></a><span class="lineno"> 2096</span> {</div><div class="line"><a name="l02097"></a><span class="lineno"> 2097</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> opts;</div><div class="line"><a name="l02098"></a><span class="lineno"> 2098</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> klass;</div><div class="line"><a name="l02099"></a><span class="lineno"> 2099</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> fcore;</div><div class="line"><a name="l02100"></a><span class="lineno"> 2100</span> </div><div class="line"><a name="l02101"></a><span class="lineno"> 2101</span>  <span class="comment">/* ::VM */</span></div><div class="line"><a name="l02102"></a><span class="lineno"> 2102</span>  <a class="code" href="../../de/de9/vm_8c.html#a600dc9ffdba414e21dacfe809c4a9ec8">rb_cRubyVM</a> = <a class="code" href="../../de/ddf/group__class.html#ga15d068dbe88a3bab3700b03bebb7fbac">rb_define_class</a>(<span class="stringliteral">"RubyVM"</span>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a57c96ead3ef230b4838e65fe037c346e">rb_cObject</a>);</div><div class="line"><a name="l02103"></a><span class="lineno"> 2103</span>  <a class="code" href="../../db/d2e/intern_8h.html#ad38ee02dc6ba34e3d05a60bac4a900f8">rb_undef_alloc_func</a>(<a class="code" href="../../de/de9/vm_8c.html#a600dc9ffdba414e21dacfe809c4a9ec8">rb_cRubyVM</a>);</div><div class="line"><a name="l02104"></a><span class="lineno"> 2104</span>  <a class="code" href="../../d7/d19/group__defmethod.html#ga879be4a71b806afb2854833fc1c45981">rb_undef_method</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#ad07df58de9895cbc33c10f02540d2d4d">CLASS_OF</a>(<a class="code" href="../../de/de9/vm_8c.html#a600dc9ffdba414e21dacfe809c4a9ec8">rb_cRubyVM</a>), <span class="stringliteral">"new"</span>);</div><div class="line"><a name="l02105"></a><span class="lineno"> 2105</span> </div><div class="line"><a name="l02106"></a><span class="lineno"> 2106</span>  <span class="comment">/* ::VM::FrozenCore */</span></div><div class="line"><a name="l02107"></a><span class="lineno"> 2107</span>  fcore = <a class="code" href="../../de/ddf/group__class.html#ga164285b5b5225740d582d4c3773f9179">rb_class_new</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a56629236cdaf6ddac6d05cd5ae21a2b4">rb_cBasicObject</a>);</div><div class="line"><a name="l02108"></a><span class="lineno"> 2108</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a1d4c05021aacd8cab989ff60f95ebe2d">RBASIC</a>(fcore)->flags = <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a82c8c4569748b9645c958b9eaeaabb81">T_ICLASS</a>;</div><div class="line"><a name="l02109"></a><span class="lineno"> 2109</span>  klass = <a class="code" href="../../de/ddf/group__class.html#ga3778543a2798adab7bc12ed325c0b5d0">rb_singleton_class</a>(fcore);</div><div class="line"><a name="l02110"></a><span class="lineno"> 2110</span>  <a class="code" href="../../d7/d19/group__defmethod.html#gaef65cd1b731ec5c27eedd0e7ea73b6ca">rb_define_method_id</a>(klass, <a class="code" href="../../df/db9/id_8h.html#a08dd4fbd61c5fde369edd59783f753b3a0a29fbdb8ebb642f943c4f6f26ecff2a">id_core_set_method_alias</a>, <a class="code" href="../../de/de9/vm_8c.html#ab5b731afdd8e86459bd5ddbc587c8a1c">m_core_set_method_alias</a>, 3);</div><div class="line"><a name="l02111"></a><span class="lineno"> 2111</span>  <a class="code" href="../../d7/d19/group__defmethod.html#gaef65cd1b731ec5c27eedd0e7ea73b6ca">rb_define_method_id</a>(klass, <a class="code" href="../../df/db9/id_8h.html#a08dd4fbd61c5fde369edd59783f753b3a5451896d80265bdea1327f507915c052">id_core_set_variable_alias</a>, <a class="code" href="../../de/de9/vm_8c.html#aa775eb74347f7cde2375d8c694ff47aa">m_core_set_variable_alias</a>, 2);</div><div class="line"><a name="l02112"></a><span class="lineno"> 2112</span>  <a class="code" href="../../d7/d19/group__defmethod.html#gaef65cd1b731ec5c27eedd0e7ea73b6ca">rb_define_method_id</a>(klass, <a class="code" href="../../df/db9/id_8h.html#a08dd4fbd61c5fde369edd59783f753b3ab8ee32ae756f7a4ee90cb7e2b1f3bb4d">id_core_undef_method</a>, <a class="code" href="../../de/de9/vm_8c.html#a8a84999770916c4cc41113421fee2233">m_core_undef_method</a>, 2);</div><div class="line"><a name="l02113"></a><span class="lineno"> 2113</span>  <a class="code" href="../../d7/d19/group__defmethod.html#gaef65cd1b731ec5c27eedd0e7ea73b6ca">rb_define_method_id</a>(klass, <a class="code" href="../../df/db9/id_8h.html#a08dd4fbd61c5fde369edd59783f753b3aca22aa169ad0cbbac8c17ce3c79bf4d4">id_core_define_method</a>, <a class="code" href="../../de/de9/vm_8c.html#a31455d8d3483e811bf2dfe55220e0a2d">m_core_define_method</a>, 3);</div><div class="line"><a name="l02114"></a><span class="lineno"> 2114</span>  <a class="code" href="../../d7/d19/group__defmethod.html#gaef65cd1b731ec5c27eedd0e7ea73b6ca">rb_define_method_id</a>(klass, <a class="code" href="../../df/db9/id_8h.html#a08dd4fbd61c5fde369edd59783f753b3a4a41bd30fb1ed7f08b1f1489735f57ea">id_core_define_singleton_method</a>, <a class="code" href="../../de/de9/vm_8c.html#af6daaa3b312cda0a07c1c06b2608d4dc">m_core_define_singleton_method</a>, 3);</div><div class="line"><a name="l02115"></a><span class="lineno"> 2115</span>  <a class="code" href="../../d7/d19/group__defmethod.html#gaef65cd1b731ec5c27eedd0e7ea73b6ca">rb_define_method_id</a>(klass, <a class="code" href="../../df/db9/id_8h.html#a08dd4fbd61c5fde369edd59783f753b3a281bc2e6e4d11c2b5e9224421bfd9a5a">id_core_set_postexe</a>, <a class="code" href="../../de/de9/vm_8c.html#aba01cea003dce480ff70e17597990208">m_core_set_postexe</a>, 1);</div><div class="line"><a name="l02116"></a><span class="lineno"> 2116</span>  <a class="code" href="../../d7/d19/group__defmethod.html#gaef65cd1b731ec5c27eedd0e7ea73b6ca">rb_define_method_id</a>(klass, idProc, <a class="code" href="../../db/d2e/intern_8h.html#a7b330d2905c5f0c9a68cef4ebba5c00f">rb_block_proc</a>, 0);</div><div class="line"><a name="l02117"></a><span class="lineno"> 2117</span>  <a class="code" href="../../d7/d19/group__defmethod.html#gaef65cd1b731ec5c27eedd0e7ea73b6ca">rb_define_method_id</a>(klass, idLambda, <a class="code" href="../../db/d2e/intern_8h.html#acd98b4a614a453bc439758cd68a32985">rb_block_lambda</a>, 0);</div><div class="line"><a name="l02118"></a><span class="lineno"> 2118</span>  <a class="code" href="../../db/d2e/intern_8h.html#a8ea3742679211f408cb5769de6cf0d46">rb_obj_freeze</a>(fcore);</div><div class="line"><a name="l02119"></a><span class="lineno"> 2119</span>  <a class="code" href="../../d8/d16/gc_8c.html#adc7efe8997f04b5c275d7e7aed9169e3">rb_gc_register_mark_object</a>(fcore);</div><div class="line"><a name="l02120"></a><span class="lineno"> 2120</span>  <a class="code" href="../../de/de9/vm_8c.html#a15744aab342112335b9189c8911ba625">rb_mRubyVMFrozenCore</a> = fcore;</div><div class="line"><a name="l02121"></a><span class="lineno"> 2121</span> </div><div class="line"><a name="l02122"></a><span class="lineno"> 2122</span>  <span class="comment">/* ::VM::Env */</span></div><div class="line"><a name="l02123"></a><span class="lineno"> 2123</span>  <a class="code" href="../../de/de9/vm_8c.html#ad55204994fe946dcd317061047845c3a">rb_cEnv</a> = <a class="code" href="../../de/ddf/group__class.html#ga5266deadce0318d830a1e63c0933b898">rb_define_class_under</a>(<a class="code" href="../../de/de9/vm_8c.html#a600dc9ffdba414e21dacfe809c4a9ec8">rb_cRubyVM</a>, <span class="stringliteral">"Env"</span>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a57c96ead3ef230b4838e65fe037c346e">rb_cObject</a>);</div><div class="line"><a name="l02124"></a><span class="lineno"> 2124</span>  <a class="code" href="../../db/d2e/intern_8h.html#ad38ee02dc6ba34e3d05a60bac4a900f8">rb_undef_alloc_func</a>(<a class="code" href="../../de/de9/vm_8c.html#ad55204994fe946dcd317061047845c3a">rb_cEnv</a>);</div><div class="line"><a name="l02125"></a><span class="lineno"> 2125</span>  <a class="code" href="../../d7/d19/group__defmethod.html#ga879be4a71b806afb2854833fc1c45981">rb_undef_method</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#ad07df58de9895cbc33c10f02540d2d4d">CLASS_OF</a>(<a class="code" href="../../de/de9/vm_8c.html#ad55204994fe946dcd317061047845c3a">rb_cEnv</a>), <span class="stringliteral">"new"</span>);</div><div class="line"><a name="l02126"></a><span class="lineno"> 2126</span> </div><div class="line"><a name="l02127"></a><span class="lineno"> 2127</span>  <span class="comment">/* ::Thread */</span></div><div class="line"><a name="l02128"></a><span class="lineno"> 2128</span>  <a class="code" href="../../de/de9/vm_8c.html#aade475ee7a5ceb8e727ec38287af0e95">rb_cThread</a> = <a class="code" href="../../de/ddf/group__class.html#ga15d068dbe88a3bab3700b03bebb7fbac">rb_define_class</a>(<span class="stringliteral">"Thread"</span>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a57c96ead3ef230b4838e65fe037c346e">rb_cObject</a>);</div><div class="line"><a name="l02129"></a><span class="lineno"> 2129</span>  <a class="code" href="../../db/d2e/intern_8h.html#ad38ee02dc6ba34e3d05a60bac4a900f8">rb_undef_alloc_func</a>(<a class="code" href="../../de/de9/vm_8c.html#aade475ee7a5ceb8e727ec38287af0e95">rb_cThread</a>);</div><div class="line"><a name="l02130"></a><span class="lineno"> 2130</span> </div><div class="line"><a name="l02131"></a><span class="lineno"> 2131</span>  <span class="comment">/* ::VM::USAGE_ANALYSIS_* */</span></div><div class="line"><a name="l02132"></a><span class="lineno"> 2132</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a861b20872f7d24f1c5f2da5261037322">rb_define_const</a>(<a class="code" href="../../de/de9/vm_8c.html#a600dc9ffdba414e21dacfe809c4a9ec8">rb_cRubyVM</a>, <span class="stringliteral">"USAGE_ANALYSIS_INSN"</span>, <a class="code" href="../../d1/d04/hash_8c.html#af1da586524a3a1739fd5b91272037815">rb_hash_new</a>());</div><div class="line"><a name="l02133"></a><span class="lineno"> 2133</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a861b20872f7d24f1c5f2da5261037322">rb_define_const</a>(<a class="code" href="../../de/de9/vm_8c.html#a600dc9ffdba414e21dacfe809c4a9ec8">rb_cRubyVM</a>, <span class="stringliteral">"USAGE_ANALYSIS_REGS"</span>, <a class="code" href="../../d1/d04/hash_8c.html#af1da586524a3a1739fd5b91272037815">rb_hash_new</a>());</div><div class="line"><a name="l02134"></a><span class="lineno"> 2134</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a861b20872f7d24f1c5f2da5261037322">rb_define_const</a>(<a class="code" href="../../de/de9/vm_8c.html#a600dc9ffdba414e21dacfe809c4a9ec8">rb_cRubyVM</a>, <span class="stringliteral">"USAGE_ANALYSIS_INSN_BIGRAM"</span>, <a class="code" href="../../d1/d04/hash_8c.html#af1da586524a3a1739fd5b91272037815">rb_hash_new</a>());</div><div class="line"><a name="l02135"></a><span class="lineno"> 2135</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a861b20872f7d24f1c5f2da5261037322">rb_define_const</a>(<a class="code" href="../../de/de9/vm_8c.html#a600dc9ffdba414e21dacfe809c4a9ec8">rb_cRubyVM</a>, <span class="stringliteral">"OPTS"</span>, opts = <a class="code" href="../../dc/dcc/array_8c.html#a9518114fd36cb4ef4656ec1dc63348c9">rb_ary_new</a>());</div><div class="line"><a name="l02136"></a><span class="lineno"> 2136</span> </div><div class="line"><a name="l02137"></a><span class="lineno"> 2137</span> <span class="preprocessor">#if OPT_DIRECT_THREADED_CODE</span></div><div class="line"><a name="l02138"></a><span class="lineno"> 2138</span>  <a class="code" href="../../dc/dcc/array_8c.html#a59d553a8cd781364b8bcb0deae25cca2">rb_ary_push</a>(opts, <a class="code" href="../../db/d2e/intern_8h.html#ada1577ce4242b06ff5c1c52f37f5e679">rb_str_new2</a>(<span class="stringliteral">"direct threaded code"</span>));</div><div class="line"><a name="l02139"></a><span class="lineno"> 2139</span> <span class="preprocessor">#elif OPT_TOKEN_THREADED_CODE</span></div><div class="line"><a name="l02140"></a><span class="lineno"> 2140</span>  <a class="code" href="../../dc/dcc/array_8c.html#a59d553a8cd781364b8bcb0deae25cca2">rb_ary_push</a>(opts, <a class="code" href="../../db/d2e/intern_8h.html#ada1577ce4242b06ff5c1c52f37f5e679">rb_str_new2</a>(<span class="stringliteral">"token threaded code"</span>));</div><div class="line"><a name="l02141"></a><span class="lineno"> 2141</span> <span class="preprocessor">#elif OPT_CALL_THREADED_CODE</span></div><div class="line"><a name="l02142"></a><span class="lineno"> 2142</span>  <a class="code" href="../../dc/dcc/array_8c.html#a59d553a8cd781364b8bcb0deae25cca2">rb_ary_push</a>(opts, <a class="code" href="../../db/d2e/intern_8h.html#ada1577ce4242b06ff5c1c52f37f5e679">rb_str_new2</a>(<span class="stringliteral">"call threaded code"</span>));</div><div class="line"><a name="l02143"></a><span class="lineno"> 2143</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l02144"></a><span class="lineno"> 2144</span> </div><div class="line"><a name="l02145"></a><span class="lineno"> 2145</span> <span class="preprocessor">#if OPT_STACK_CACHING</span></div><div class="line"><a name="l02146"></a><span class="lineno"> 2146</span>  <a class="code" href="../../dc/dcc/array_8c.html#a59d553a8cd781364b8bcb0deae25cca2">rb_ary_push</a>(opts, <a class="code" href="../../db/d2e/intern_8h.html#ada1577ce4242b06ff5c1c52f37f5e679">rb_str_new2</a>(<span class="stringliteral">"stack caching"</span>));</div><div class="line"><a name="l02147"></a><span class="lineno"> 2147</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l02148"></a><span class="lineno"> 2148</span> <span class="preprocessor">#if OPT_OPERANDS_UNIFICATION</span></div><div class="line"><a name="l02149"></a><span class="lineno"> 2149</span>  <a class="code" href="../../dc/dcc/array_8c.html#a59d553a8cd781364b8bcb0deae25cca2">rb_ary_push</a>(opts, <a class="code" href="../../db/d2e/intern_8h.html#ada1577ce4242b06ff5c1c52f37f5e679">rb_str_new2</a>(<span class="stringliteral">"operands unification]"</span>));</div><div class="line"><a name="l02150"></a><span class="lineno"> 2150</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l02151"></a><span class="lineno"> 2151</span> <span class="preprocessor">#if OPT_INSTRUCTIONS_UNIFICATION</span></div><div class="line"><a name="l02152"></a><span class="lineno"> 2152</span>  <a class="code" href="../../dc/dcc/array_8c.html#a59d553a8cd781364b8bcb0deae25cca2">rb_ary_push</a>(opts, <a class="code" href="../../db/d2e/intern_8h.html#ada1577ce4242b06ff5c1c52f37f5e679">rb_str_new2</a>(<span class="stringliteral">"instructions unification"</span>));</div><div class="line"><a name="l02153"></a><span class="lineno"> 2153</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l02154"></a><span class="lineno"> 2154</span> <span class="preprocessor">#if OPT_INLINE_METHOD_CACHE</span></div><div class="line"><a name="l02155"></a><span class="lineno"> 2155</span>  <a class="code" href="../../dc/dcc/array_8c.html#a59d553a8cd781364b8bcb0deae25cca2">rb_ary_push</a>(opts, <a class="code" href="../../db/d2e/intern_8h.html#ada1577ce4242b06ff5c1c52f37f5e679">rb_str_new2</a>(<span class="stringliteral">"inline method cache"</span>));</div><div class="line"><a name="l02156"></a><span class="lineno"> 2156</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l02157"></a><span class="lineno"> 2157</span> <span class="preprocessor">#if OPT_BLOCKINLINING</span></div><div class="line"><a name="l02158"></a><span class="lineno"> 2158</span>  <a class="code" href="../../dc/dcc/array_8c.html#a59d553a8cd781364b8bcb0deae25cca2">rb_ary_push</a>(opts, <a class="code" href="../../db/d2e/intern_8h.html#ada1577ce4242b06ff5c1c52f37f5e679">rb_str_new2</a>(<span class="stringliteral">"block inlining"</span>));</div><div class="line"><a name="l02159"></a><span class="lineno"> 2159</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l02160"></a><span class="lineno"> 2160</span> </div><div class="line"><a name="l02161"></a><span class="lineno"> 2161</span>  <span class="comment">/* ::VM::InsnNameArray */</span></div><div class="line"><a name="l02162"></a><span class="lineno"> 2162</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a861b20872f7d24f1c5f2da5261037322">rb_define_const</a>(<a class="code" href="../../de/de9/vm_8c.html#a600dc9ffdba414e21dacfe809c4a9ec8">rb_cRubyVM</a>, <span class="stringliteral">"INSTRUCTION_NAMES"</span>, <a class="code" href="../../d2/d47/compile_8c.html#a6fbae85d86b443ae82def50a5d3e7254">rb_insns_name_array</a>());</div><div class="line"><a name="l02163"></a><span class="lineno"> 2163</span> </div><div class="line"><a name="l02164"></a><span class="lineno"> 2164</span>  <span class="comment">/* debug functions ::VM::SDR(), ::VM::NSDR() */</span></div><div class="line"><a name="l02165"></a><span class="lineno"> 2165</span> <span class="preprocessor">#if VMDEBUG</span></div><div class="line"><a name="l02166"></a><span class="lineno"> 2166</span>  <a class="code" href="../../d7/d19/group__defmethod.html#gaacfe6a2ec444bdc7f573afb75ea251fe">rb_define_singleton_method</a>(<a class="code" href="../../de/de9/vm_8c.html#a600dc9ffdba414e21dacfe809c4a9ec8">rb_cRubyVM</a>, <span class="stringliteral">"SDR"</span>, <a class="code" href="../../de/de9/vm_8c.html#abd4857d42a372434a12d8a62404e4fa2">sdr</a>, 0);</div><div class="line"><a name="l02167"></a><span class="lineno"> 2167</span>  <a class="code" href="../../d7/d19/group__defmethod.html#gaacfe6a2ec444bdc7f573afb75ea251fe">rb_define_singleton_method</a>(<a class="code" href="../../de/de9/vm_8c.html#a600dc9ffdba414e21dacfe809c4a9ec8">rb_cRubyVM</a>, <span class="stringliteral">"NSDR"</span>, <a class="code" href="../../de/de9/vm_8c.html#ac35785c3423751b6c5095da2a99c61f4">nsdr</a>, 0);</div><div class="line"><a name="l02168"></a><span class="lineno"> 2168</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l02169"></a><span class="lineno"> 2169</span>  (void)<a class="code" href="../../de/de9/vm_8c.html#abd4857d42a372434a12d8a62404e4fa2">sdr</a>;</div><div class="line"><a name="l02170"></a><span class="lineno"> 2170</span>  (void)<a class="code" href="../../de/de9/vm_8c.html#ac35785c3423751b6c5095da2a99c61f4">nsdr</a>;</div><div class="line"><a name="l02171"></a><span class="lineno"> 2171</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l02172"></a><span class="lineno"> 2172</span> </div><div class="line"><a name="l02173"></a><span class="lineno"> 2173</span>  <span class="comment">/* VM bootstrap: phase 2 */</span></div><div class="line"><a name="l02174"></a><span class="lineno"> 2174</span>  {</div><div class="line"><a name="l02175"></a><span class="lineno"> 2175</span>  <a class="code" href="../../db/d74/structrb__vm__struct.html">rb_vm_t</a> *vm = <a class="code" href="../../de/de9/vm_8c.html#a9be24d2deecfd3c43942e8c7cc4770a1">ruby_current_vm</a>;</div><div class="line"><a name="l02176"></a><span class="lineno"> 2176</span>  <a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th = <a class="code" href="../../d8/d32/vm__core_8h.html#a8deb84ec6023e3229db88ac2c9da6138">GET_THREAD</a>();</div><div class="line"><a name="l02177"></a><span class="lineno"> 2177</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> filename = <a class="code" href="../../db/d2e/intern_8h.html#ada1577ce4242b06ff5c1c52f37f5e679">rb_str_new2</a>(<span class="stringliteral">"<main>"</span>);</div><div class="line"><a name="l02178"></a><span class="lineno"> 2178</span>  <span class="keyword">volatile</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> iseqval = <a class="code" href="../../dd/d74/iseq_8c.html#a356d85dc4610b2e4f8fdd2c9cede6780">rb_iseq_new</a>(0, filename, filename, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>, 0, ISEQ_TYPE_TOP);</div><div class="line"><a name="l02179"></a><span class="lineno"> 2179</span>  <span class="keyword">volatile</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> th_self;</div><div class="line"><a name="l02180"></a><span class="lineno"> 2180</span>  <a class="code" href="../../d6/de3/structrb__iseq__struct.html">rb_iseq_t</a> *iseq;</div><div class="line"><a name="l02181"></a><span class="lineno"> 2181</span> </div><div class="line"><a name="l02182"></a><span class="lineno"> 2182</span>  <span class="comment">/* create vm object */</span></div><div class="line"><a name="l02183"></a><span class="lineno"> 2183</span>  vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#a60a372cceaf16011b6c3d3b6861df36b">self</a> = <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aa3094c0054b80ec2a7e50f9fe1e5f4b2">TypedData_Wrap_Struct</a>(<a class="code" href="../../de/de9/vm_8c.html#a600dc9ffdba414e21dacfe809c4a9ec8">rb_cRubyVM</a>, &<a class="code" href="../../de/de9/vm_8c.html#a118ab0087779e3d649f8db8fac1dfc4d">vm_data_type</a>, vm);</div><div class="line"><a name="l02184"></a><span class="lineno"> 2184</span> </div><div class="line"><a name="l02185"></a><span class="lineno"> 2185</span>  <span class="comment">/* create main thread */</span></div><div class="line"><a name="l02186"></a><span class="lineno"> 2186</span>  th_self = th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a6e712e6c5295a4173188139f1d6b7462">self</a> = <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aa3094c0054b80ec2a7e50f9fe1e5f4b2">TypedData_Wrap_Struct</a>(<a class="code" href="../../de/de9/vm_8c.html#aade475ee7a5ceb8e727ec38287af0e95">rb_cThread</a>, &<a class="code" href="../../de/de9/vm_8c.html#a27ed80c29d1a854ccaa4ae2aa3ef6769">thread_data_type</a>, th);</div><div class="line"><a name="l02187"></a><span class="lineno"> 2187</span>  vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#a55af19560794b67c09c608a8464e47c9">main_thread</a> = th;</div><div class="line"><a name="l02188"></a><span class="lineno"> 2188</span>  vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#a469ec56bec5fad54fa6336d5fde24a03">running_thread</a> = th;</div><div class="line"><a name="l02189"></a><span class="lineno"> 2189</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a3e7d0b05e2d73f324e70c735ba50739e">vm</a> = vm;</div><div class="line"><a name="l02190"></a><span class="lineno"> 2190</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a63addaa5b39a83e287f7b8747398ab57">top_wrapper</a> = 0;</div><div class="line"><a name="l02191"></a><span class="lineno"> 2191</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#ac0ba34f711c43f831fe95e9a9434353f">top_self</a> = <a class="code" href="../../de/de9/vm_8c.html#a5293371c1050a118f49ccf3c073bcfbe">rb_vm_top_self</a>();</div><div class="line"><a name="l02192"></a><span class="lineno"> 2192</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#addad24839d7483095151e91b3b83aed6">rb_thread_set_current</a>(th);</div><div class="line"><a name="l02193"></a><span class="lineno"> 2193</span> </div><div class="line"><a name="l02194"></a><span class="lineno"> 2194</span>  vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#a09bd6675a9fe3f1b19e36284e91a0e31">living_threads</a> = <a class="code" href="../../d6/d87/regint_8h.html#a6de11f24647b8c2938badf820e79a976">st_init_numtable</a>();</div><div class="line"><a name="l02195"></a><span class="lineno"> 2195</span>  <a class="code" href="../../d6/d87/regint_8h.html#ab6920d7d3a34f3d179d1f35806e1965f">st_insert</a>(vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#a09bd6675a9fe3f1b19e36284e91a0e31">living_threads</a>, th_self, (<a class="code" href="../../de/dce/syck_8h.html#a8a45dfe133c1fd041e1b902bda9e43e8">st_data_t</a>) th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#acbd5b841dcb2158ed2111abd6b876251">thread_id</a>);</div><div class="line"><a name="l02196"></a><span class="lineno"> 2196</span> </div><div class="line"><a name="l02197"></a><span class="lineno"> 2197</span>  <a class="code" href="../../d8/d16/gc_8c.html#adc7efe8997f04b5c275d7e7aed9169e3">rb_gc_register_mark_object</a>(iseqval);</div><div class="line"><a name="l02198"></a><span class="lineno"> 2198</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#a5e6a3515e0ad9b9d6a4c0ab577dc50b6">GetISeqPtr</a>(iseqval, iseq);</div><div class="line"><a name="l02199"></a><span class="lineno"> 2199</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4b25ca925a9f60481173632b9c09d4e0">iseq</a> = iseq;</div><div class="line"><a name="l02200"></a><span class="lineno"> 2200</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a28b0b301811a891225ba9a58c412482d">pc</a> = iseq-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#aa70f3e195a4350acbbc130f8a95c9958">iseq_encoded</a>;</div><div class="line"><a name="l02201"></a><span class="lineno"> 2201</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4c11a50358317e1207affd6d7b4ad576">self</a> = th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#ac0ba34f711c43f831fe95e9a9434353f">top_self</a>;</div><div class="line"><a name="l02202"></a><span class="lineno"> 2202</span> </div><div class="line"><a name="l02203"></a><span class="lineno"> 2203</span>  <span class="comment">/*</span></div><div class="line"><a name="l02204"></a><span class="lineno"> 2204</span> <span class="comment"> * The Binding of the top level scope</span></div><div class="line"><a name="l02205"></a><span class="lineno"> 2205</span> <span class="comment"> */</span></div><div class="line"><a name="l02206"></a><span class="lineno"> 2206</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a5a25f6effbffe412ebda3391132e7129">rb_define_global_const</a>(<span class="stringliteral">"TOPLEVEL_BINDING"</span>, <a class="code" href="../../db/d2e/intern_8h.html#ae311913aafd9469008cdf681aeae9ed6">rb_binding_new</a>());</div><div class="line"><a name="l02207"></a><span class="lineno"> 2207</span>  }</div><div class="line"><a name="l02208"></a><span class="lineno"> 2208</span>  <a class="code" href="../../de/de9/vm_8c.html#a891ada54116b1442538ca6fc0e2861b1">vm_init_redefined_flag</a>();</div><div class="line"><a name="l02209"></a><span class="lineno"> 2209</span> }</div><div class="line"><a name="l02210"></a><span class="lineno"> 2210</span> </div><div class="line"><a name="l02211"></a><span class="lineno"> 2211</span> <span class="keywordtype">void</span></div><div class="line"><a name="l02212"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a83ac3f8bc164313d7a1b451f2d2cdabf"> 2212</a></span> <a class="code" href="../../de/de9/vm_8c.html#a83ac3f8bc164313d7a1b451f2d2cdabf">rb_vm_set_progname</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> filename)</div><div class="line"><a name="l02213"></a><span class="lineno"> 2213</span> {</div><div class="line"><a name="l02214"></a><span class="lineno"> 2214</span>  <a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th = <a class="code" href="../../d8/d32/vm__core_8h.html#a6cfcd3997994924c8cd13c3b5c099ec6">GET_VM</a>()->main_thread;</div><div class="line"><a name="l02215"></a><span class="lineno"> 2215</span>  <a class="code" href="../../dd/d84/structrb__control__frame__t.html">rb_control_frame_t</a> *cfp = (<span class="keywordtype">void</span> *)(th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a3fd7aab45a1c539bc9ca022acfc1ad51">stack</a> + th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a1587dec1a575fb9f8d6a689ef4fdb6b5">stack_size</a>);</div><div class="line"><a name="l02216"></a><span class="lineno"> 2216</span>  --cfp;</div><div class="line"><a name="l02217"></a><span class="lineno"> 2217</span>  cfp-><a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4b25ca925a9f60481173632b9c09d4e0">iseq</a>-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#a06859fa5de56f2ede3cb692f1d9215e2">filename</a> = filename;</div><div class="line"><a name="l02218"></a><span class="lineno"> 2218</span> }</div><div class="line"><a name="l02219"></a><span class="lineno"> 2219</span> </div><div class="line"><a name="l02220"></a><span class="lineno"> 2220</span> <span class="preprocessor">#if defined(ENABLE_VM_OBJSPACE) && ENABLE_VM_OBJSPACE</span></div><div class="line"><a name="l02221"></a><span class="lineno"> 2221</span> <span class="keyword">struct </span><a class="code" href="../../d7/dc0/structrb__objspace.html">rb_objspace</a> *<a class="code" href="../../de/de9/vm_8c.html#a5c315a0f909b280ce9f9ecf36ad32525">rb_objspace_alloc</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l02222"></a><span class="lineno"> 2222</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l02223"></a><span class="lineno"> 2223</span> </div><div class="line"><a name="l02224"></a><span class="lineno"> 2224</span> <span class="keywordtype">void</span></div><div class="line"><a name="l02225"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#aebe8178dca87b6a8883017e6921029c2"> 2225</a></span> <a class="code" href="../../de/de9/vm_8c.html#aebe8178dca87b6a8883017e6921029c2">Init_BareVM</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l02226"></a><span class="lineno"> 2226</span> {</div><div class="line"><a name="l02227"></a><span class="lineno"> 2227</span>  <span class="comment">/* VM bootstrap: phase 1 */</span></div><div class="line"><a name="l02228"></a><span class="lineno"> 2228</span>  <a class="code" href="../../db/d74/structrb__vm__struct.html">rb_vm_t</a> * vm = <a class="code" href="../../d1/d6f/date__strftime_8c.html#aa21fad24622996b74839deccf1202f29">malloc</a>(<span class="keyword">sizeof</span>(*vm));</div><div class="line"><a name="l02229"></a><span class="lineno"> 2229</span>  <a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> * th = <a class="code" href="../../d1/d6f/date__strftime_8c.html#aa21fad24622996b74839deccf1202f29">malloc</a>(<span class="keyword">sizeof</span>(*th));</div><div class="line"><a name="l02230"></a><span class="lineno"> 2230</span>  <span class="keywordflow">if</span> (!vm || !th) {</div><div class="line"><a name="l02231"></a><span class="lineno"> 2231</span>  fprintf(stderr, <span class="stringliteral">"[FATAL] failed to allocate memory\n"</span>);</div><div class="line"><a name="l02232"></a><span class="lineno"> 2232</span>  exit(<a class="code" href="../../dd/dd0/eval__intern_8h.html#a73efe787c131b385070f25d18b7c9aa4">EXIT_FAILURE</a>);</div><div class="line"><a name="l02233"></a><span class="lineno"> 2233</span>  }</div><div class="line"><a name="l02234"></a><span class="lineno"> 2234</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a56d620b94b668ed7665d1616b2c54e48">MEMZERO</a>(th, <a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a>, 1);</div><div class="line"><a name="l02235"></a><span class="lineno"> 2235</span> </div><div class="line"><a name="l02236"></a><span class="lineno"> 2236</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#a189286b1d291cc780c5205d00e1b47e6">rb_thread_set_current_raw</a>(th);</div><div class="line"><a name="l02237"></a><span class="lineno"> 2237</span> </div><div class="line"><a name="l02238"></a><span class="lineno"> 2238</span>  <a class="code" href="../../de/de9/vm_8c.html#a08ccea748ec0076636c2b4abada44ff0">vm_init2</a>(vm);</div><div class="line"><a name="l02239"></a><span class="lineno"> 2239</span> <span class="preprocessor">#if defined(ENABLE_VM_OBJSPACE) && ENABLE_VM_OBJSPACE</span></div><div class="line"><a name="l02240"></a><span class="lineno"> 2240</span>  vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#a9eedda91413032dce6a7053a8f0a449d">objspace</a> = <a class="code" href="../../de/de9/vm_8c.html#a5c315a0f909b280ce9f9ecf36ad32525">rb_objspace_alloc</a>();</div><div class="line"><a name="l02241"></a><span class="lineno"> 2241</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l02242"></a><span class="lineno"> 2242</span>  <a class="code" href="../../de/de9/vm_8c.html#a9be24d2deecfd3c43942e8c7cc4770a1">ruby_current_vm</a> = vm;</div><div class="line"><a name="l02243"></a><span class="lineno"> 2243</span> </div><div class="line"><a name="l02244"></a><span class="lineno"> 2244</span>  <a class="code" href="../../db/dde/internal_8h.html#a1261ad828419468df5d4e92bb75ff6f3">Init_native_thread</a>();</div><div class="line"><a name="l02245"></a><span class="lineno"> 2245</span>  <a class="code" href="../../de/de9/vm_8c.html#a8254b2c9550e30be25c3115308865c28">th_init</a>(th, 0);</div><div class="line"><a name="l02246"></a><span class="lineno"> 2246</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a3e7d0b05e2d73f324e70c735ba50739e">vm</a> = vm;</div><div class="line"><a name="l02247"></a><span class="lineno"> 2247</span>  <a class="code" href="../../d3/de7/thread_8c.html#a20d8df830e19c1e62520540c66aaf3bb">ruby_thread_init_stack</a>(th);</div><div class="line"><a name="l02248"></a><span class="lineno"> 2248</span> }</div><div class="line"><a name="l02249"></a><span class="lineno"> 2249</span> </div><div class="line"><a name="l02250"></a><span class="lineno"> 2250</span> <span class="comment">/* top self */</span></div><div class="line"><a name="l02251"></a><span class="lineno"> 2251</span> </div><div class="line"><a name="l02252"></a><span class="lineno"> 2252</span> <span class="keyword">static</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l02253"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a6a5620261a411c4eb4bb08ab9509f706"> 2253</a></span> <a class="code" href="../../de/de9/vm_8c.html#a6a5620261a411c4eb4bb08ab9509f706">main_to_s</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> obj)</div><div class="line"><a name="l02254"></a><span class="lineno"> 2254</span> {</div><div class="line"><a name="l02255"></a><span class="lineno"> 2255</span>  <span class="keywordflow">return</span> <a class="code" href="../../db/d2e/intern_8h.html#ada1577ce4242b06ff5c1c52f37f5e679">rb_str_new2</a>(<span class="stringliteral">"main"</span>);</div><div class="line"><a name="l02256"></a><span class="lineno"> 2256</span> }</div><div class="line"><a name="l02257"></a><span class="lineno"> 2257</span> </div><div class="line"><a name="l02258"></a><span class="lineno"> 2258</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l02259"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a5293371c1050a118f49ccf3c073bcfbe"> 2259</a></span> <a class="code" href="../../de/de9/vm_8c.html#a5293371c1050a118f49ccf3c073bcfbe">rb_vm_top_self</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l02260"></a><span class="lineno"> 2260</span> {</div><div class="line"><a name="l02261"></a><span class="lineno"> 2261</span>  <span class="keywordflow">return</span> <a class="code" href="../../d8/d32/vm__core_8h.html#a6cfcd3997994924c8cd13c3b5c099ec6">GET_VM</a>()->top_self;</div><div class="line"><a name="l02262"></a><span class="lineno"> 2262</span> }</div><div class="line"><a name="l02263"></a><span class="lineno"> 2263</span> </div><div class="line"><a name="l02264"></a><span class="lineno"> 2264</span> <span class="keywordtype">void</span></div><div class="line"><a name="l02265"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a50c13f51eaa186494807612609f95a97"> 2265</a></span> <a class="code" href="../../de/de9/vm_8c.html#a50c13f51eaa186494807612609f95a97">Init_top_self</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l02266"></a><span class="lineno"> 2266</span> {</div><div class="line"><a name="l02267"></a><span class="lineno"> 2267</span>  <a class="code" href="../../db/d74/structrb__vm__struct.html">rb_vm_t</a> *vm = <a class="code" href="../../d8/d32/vm__core_8h.html#a6cfcd3997994924c8cd13c3b5c099ec6">GET_VM</a>();</div><div class="line"><a name="l02268"></a><span class="lineno"> 2268</span> </div><div class="line"><a name="l02269"></a><span class="lineno"> 2269</span>  vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#a75e7f2d63af5fc368e6a1de951190f22">top_self</a> = <a class="code" href="../../db/d2e/intern_8h.html#a4419d9ed52af0d0dbdcb02f491b1d88d">rb_obj_alloc</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a57c96ead3ef230b4838e65fe037c346e">rb_cObject</a>);</div><div class="line"><a name="l02270"></a><span class="lineno"> 2270</span>  <a class="code" href="../../d7/d19/group__defmethod.html#gaacfe6a2ec444bdc7f573afb75ea251fe">rb_define_singleton_method</a>(<a class="code" href="../../de/de9/vm_8c.html#a5293371c1050a118f49ccf3c073bcfbe">rb_vm_top_self</a>(), <span class="stringliteral">"to_s"</span>, <a class="code" href="../../de/de9/vm_8c.html#a6a5620261a411c4eb4bb08ab9509f706">main_to_s</a>, 0);</div><div class="line"><a name="l02271"></a><span class="lineno"> 2271</span> </div><div class="line"><a name="l02272"></a><span class="lineno"> 2272</span>  <span class="comment">/* initialize mark object array */</span></div><div class="line"><a name="l02273"></a><span class="lineno"> 2273</span>  vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#af4e77414ac91c895a15ae89dad71f143">mark_object_ary</a> = <a class="code" href="../../dc/dcc/array_8c.html#aaf7e3ca42191580b60f398d5ec466766">rb_ary_tmp_new</a>(1);</div><div class="line"><a name="l02274"></a><span class="lineno"> 2274</span> }</div><div class="line"><a name="l02275"></a><span class="lineno"> 2275</span> </div><div class="line"><a name="l02276"></a><span class="lineno"> 2276</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *</div><div class="line"><a name="l02277"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a5628587c50e8c4ba85eb1f3df1fa19e2"> 2277</a></span> <a class="code" href="../../de/de9/vm_8c.html#a5628587c50e8c4ba85eb1f3df1fa19e2">ruby_vm_verbose_ptr</a>(<a class="code" href="../../db/d74/structrb__vm__struct.html">rb_vm_t</a> *vm)</div><div class="line"><a name="l02278"></a><span class="lineno"> 2278</span> {</div><div class="line"><a name="l02279"></a><span class="lineno"> 2279</span>  <span class="keywordflow">return</span> &vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#a4cc71b049515a53a03926b2bfba329e6">verbose</a>;</div><div class="line"><a name="l02280"></a><span class="lineno"> 2280</span> }</div><div class="line"><a name="l02281"></a><span class="lineno"> 2281</span> </div><div class="line"><a name="l02282"></a><span class="lineno"> 2282</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *</div><div class="line"><a name="l02283"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#afbca5a98d211dac56fd4fbad2a382716"> 2283</a></span> <a class="code" href="../../de/de9/vm_8c.html#afbca5a98d211dac56fd4fbad2a382716">ruby_vm_debug_ptr</a>(<a class="code" href="../../db/d74/structrb__vm__struct.html">rb_vm_t</a> *vm)</div><div class="line"><a name="l02284"></a><span class="lineno"> 2284</span> {</div><div class="line"><a name="l02285"></a><span class="lineno"> 2285</span>  <span class="keywordflow">return</span> &vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#aa4d70f7ac782e2587683d28c1a99d6ea">debug</a>;</div><div class="line"><a name="l02286"></a><span class="lineno"> 2286</span> }</div><div class="line"><a name="l02287"></a><span class="lineno"> 2287</span> </div><div class="line"><a name="l02288"></a><span class="lineno"> 2288</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *</div><div class="line"><a name="l02289"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#adcdfac9f41b5eac1f4f89a647d2ff5b8"> 2289</a></span> <a class="code" href="../../de/de9/vm_8c.html#adcdfac9f41b5eac1f4f89a647d2ff5b8">rb_ruby_verbose_ptr</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l02290"></a><span class="lineno"> 2290</span> {</div><div class="line"><a name="l02291"></a><span class="lineno"> 2291</span>  <span class="keywordflow">return</span> <a class="code" href="../../de/de9/vm_8c.html#a5628587c50e8c4ba85eb1f3df1fa19e2">ruby_vm_verbose_ptr</a>(<a class="code" href="../../d8/d32/vm__core_8h.html#a6cfcd3997994924c8cd13c3b5c099ec6">GET_VM</a>());</div><div class="line"><a name="l02292"></a><span class="lineno"> 2292</span> }</div><div class="line"><a name="l02293"></a><span class="lineno"> 2293</span> </div><div class="line"><a name="l02294"></a><span class="lineno"> 2294</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *</div><div class="line"><a name="l02295"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#ab9b0b6052e278894c13547d5eae29553"> 2295</a></span> <a class="code" href="../../de/de9/vm_8c.html#ab9b0b6052e278894c13547d5eae29553">rb_ruby_debug_ptr</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l02296"></a><span class="lineno"> 2296</span> {</div><div class="line"><a name="l02297"></a><span class="lineno"> 2297</span>  <span class="keywordflow">return</span> <a class="code" href="../../de/de9/vm_8c.html#afbca5a98d211dac56fd4fbad2a382716">ruby_vm_debug_ptr</a>(<a class="code" href="../../d8/d32/vm__core_8h.html#a6cfcd3997994924c8cd13c3b5c099ec6">GET_VM</a>());</div><div class="line"><a name="l02298"></a><span class="lineno"> 2298</span> }</div><div class="ttc" id="ruby_2ruby_8h_html_a5a25f6effbffe412ebda3391132e7129"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#a5a25f6effbffe412ebda3391132e7129">rb_define_global_const</a></div><div class="ttdeci">void rb_define_global_const(const char *, VALUE)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/d2a/variable_8c_source.html#l01937">variable.c:1937</a></div></div> <div class="ttc" id="structrb__thread__struct_html_ae680ba33fe514b2b0031d77ad1527e1a"><div class="ttname"><a href="../../d2/d66/structrb__thread__struct.html#ae680ba33fe514b2b0031d77ad1527e1a">rb_thread_struct::passed_block</a></div><div class="ttdeci">const rb_block_t * passed_block</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00411">vm_core.h:411</a></div></div> <div class="ttc" id="structrb__proc__t_html_ab758491302d7ae34dba60f7c39b97c95"><div class="ttname"><a href="../../d5/d77/structrb__proc__t.html#ab758491302d7ae34dba60f7c39b97c95">rb_proc_t::is_from_method</a></div><div class="ttdeci">int is_from_method</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00532">vm_core.h:532</a></div></div> <div class="ttc" id="vm__core_8h_html_a83eeedff3dde6d2d1ffce5d84c2ba2f1"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a83eeedff3dde6d2d1ffce5d84c2ba2f1">VM_FRAME_MAGIC_BLOCK</a></div><div class="ttdeci">#define VM_FRAME_MAGIC_BLOCK</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00573">vm_core.h:573</a></div></div> <div class="ttc" id="structrb__thread__struct_html_a2ed7f694d58d876aa6f0fae6986bc921"><div class="ttname"><a href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">rb_thread_struct::cfp</a></div><div class="ttdeci">rb_control_frame_t * cfp</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00400">vm_core.h:400</a></div></div> <div class="ttc" id="eval_8c_html_a0d9f0f9371f3273e30d146f54767da6f"><div class="ttname"><a href="../../d3/d57/eval_8c.html#a0d9f0f9371f3273e30d146f54767da6f">rb_eLocalJumpError</a></div><div class="ttdeci">VALUE rb_eLocalJumpError</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d57/eval_8c_source.html#l00026">eval.c:26</a></div></div> <div class="ttc" id="vm_8c_html_a22cceb6d47bb25095efe58a0a6ab2a34"><div class="ttname"><a href="../../de/de9/vm_8c.html#a22cceb6d47bb25095efe58a0a6ab2a34">NORETURN</a></div><div class="ttdeci">NORETURN(static void vm_iter_break(rb_thread_t *th))</div></div> <div class="ttc" id="structrb__env__t_html_a1c42d4847422b6ffd0fb340fdd0cfa8b"><div class="ttname"><a href="../../d0/d73/structrb__env__t.html#a1c42d4847422b6ffd0fb340fdd0cfa8b">rb_env_t::env</a></div><div class="ttdeci">VALUE * env</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00540">vm_core.h:540</a></div></div> <div class="ttc" id="structrb__thread__struct_html_a3e7d0b05e2d73f324e70c735ba50739e"><div class="ttname"><a href="../../d2/d66/structrb__thread__struct.html#a3e7d0b05e2d73f324e70c735ba50739e">rb_thread_struct::vm</a></div><div class="ttdeci">rb_vm_t * vm</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00395">vm_core.h:395</a></div></div> <div class="ttc" id="vm_8c_html_a7387e7f9d917b598fbda1ce48f6122c5"><div class="ttname"><a href="../../de/de9/vm_8c.html#a7387e7f9d917b598fbda1ce48f6122c5">vm_clear_all_inline_method_cache</a></div><div class="ttdeci">static void vm_clear_all_inline_method_cache(void)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00071">vm.c:71</a></div></div> <div class="ttc" id="vm_8c_html_afa313ee08837bb9545102cd3f28d91a7"><div class="ttname"><a href="../../de/de9/vm_8c.html#afa313ee08837bb9545102cd3f28d91a7">thread_free</a></div><div class="ttdeci">static void thread_free(void *ptr)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01790">vm.c:1790</a></div></div> <div class="ttc" id="vm_8c_html_a148afe59d50d9a0f3bde4d9968d8a2f5"><div class="ttname"><a href="../../de/de9/vm_8c.html#a148afe59d50d9a0f3bde4d9968d8a2f5">rb_vm_cref</a></div><div class="ttdeci">NODE * rb_vm_cref(void)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00902">vm.c:902</a></div></div> <div class="ttc" id="proc_8c_html_afdfd5397f25a751a5bf34dbfeb0968ba"><div class="ttname"><a href="../../d3/dda/proc_8c.html#afdfd5397f25a751a5bf34dbfeb0968ba">rb_proc_alloc</a></div><div class="ttdeci">VALUE rb_proc_alloc(VALUE klass)</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/dda/proc_8c_source.html#l00081">proc.c:81</a></div></div> <div class="ttc" id="internal_8h_html_af1b67bbf4b72295a772178d0bd939dd0"><div class="ttname"><a href="../../db/dde/internal_8h.html#af1b67bbf4b72295a772178d0bd939dd0">rb_vm_bugreport</a></div><div class="ttdeci">void rb_vm_bugreport(void)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/dd7/vm__dump_8c_source.html#l00770">vm_dump.c:770</a></div></div> <div class="ttc" id="date__core_8c_html_aedafc0dc710c634ecec3900b66547a36"><div class="ttname"><a href="../../dd/dc0/date__core_8c.html#aedafc0dc710c634ecec3900b66547a36">MOD</a></div><div class="ttdeci">#define MOD(n, d)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/dc0/date__core_8c_source.html#l00147">date_core.c:147</a></div></div> <div class="ttc" id="utf__16__32_8c_html_aa4d6abc7b58eb11e517993df83b7f0f7"><div class="ttname"><a href="../../d5/d2d/utf__16__32_8c.html#aa4d6abc7b58eb11e517993df83b7f0f7">LE</a></div><div class="ttdeci">#define LE</div></div> <div class="ttc" id="id_8h_html_a08dd4fbd61c5fde369edd59783f753b3a5451896d80265bdea1327f507915c052"><div class="ttname"><a href="../../df/db9/id_8h.html#a08dd4fbd61c5fde369edd59783f753b3a5451896d80265bdea1327f507915c052">id_core_set_variable_alias</a></div><div class="ttdef"><b>Definition:</b> <a href="../../df/db9/id_8h_source.html#l00067">id.h:67</a></div></div> <div class="ttc" id="array_8c_html_aacb1ec2239256ca2e537588fc534e7b8"><div class="ttname"><a href="../../dc/dcc/array_8c.html#aacb1ec2239256ca2e537588fc534e7b8">rb_ary_pop</a></div><div class="ttdeci">VALUE rb_ary_pop(VALUE ary)</div><div class="ttdef"><b>Definition:</b> <a href="../../dc/dcc/array_8c_source.html#l00783">array.c:783</a></div></div> <div class="ttc" id="vm_8c_html_aee005debbaae740dafe23261682f80d2"><div class="ttname"><a href="../../de/de9/vm_8c.html#aee005debbaae740dafe23261682f80d2">make_localjump_error</a></div><div class="ttdeci">static VALUE make_localjump_error(const char *mesg, VALUE value, int reason)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00940">vm.c:940</a></div></div> <div class="ttc" id="structrb__thread__struct_html_a29db283fbadbbc6cbc16533803820cb2"><div class="ttname"><a href="../../d2/d66/structrb__thread__struct.html#a29db283fbadbbc6cbc16533803820cb2">rb_thread_struct::thrown_errinfo</a></div><div class="ttdeci">VALUE thrown_errinfo</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00438">vm_core.h:438</a></div></div> <div class="ttc" id="vm__insnhelper_8c_html_a7fbb437f7cf58ba79c6c3dc6a1ff1944"><div class="ttname"><a href="../../d0/db2/vm__insnhelper_8c.html#a7fbb437f7cf58ba79c6c3dc6a1ff1944">lfp_svar_set</a></div><div class="ttdeci">static void lfp_svar_set(rb_thread_t *th, VALUE *lfp, rb_num_t key, VALUE val)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/db2/vm__insnhelper_8c_source.html#l01003">vm_insnhelper.c:1003</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_aa8f8ed837ea1ef257ef6575f6785ca34"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#aa8f8ed837ea1ef257ef6575f6785ca34">RUBY_EVENT_C_RETURN</a></div><div class="ttdeci">#define RUBY_EVENT_C_RETURN</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l01409">ruby.h:1409</a></div></div> <div class="ttc" id="error_8c_html_a2d5fb28e54f792e7341b2c45f52f3860"><div class="ttname"><a href="../../db/dcc/error_8c.html#a2d5fb28e54f792e7341b2c45f52f3860">rb_bug</a></div><div class="ttdeci">void rb_bug(const char *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="../../db/dcc/error_8c_source.html#l00265">error.c:265</a></div></div> <div class="ttc" id="structrb__method__definition__struct_html_a60ad63aa9037403df6e773853973c41b"><div class="ttname"><a href="../../d6/dab/structrb__method__definition__struct.html#a60ad63aa9037403df6e773853973c41b">rb_method_definition_struct::type</a></div><div class="ttdeci">rb_method_type_t type</div><div class="ttdef"><b>Definition:</b> <a href="../../db/d0a/method_8h_source.html#l00060">method.h:60</a></div></div> <div class="ttc" id="vm_8c_html_adae7bcf1d59e017fabade78224b55f4e"><div class="ttname"><a href="../../de/de9/vm_8c.html#adae7bcf1d59e017fabade78224b55f4e">vm_memsize</a></div><div class="ttdeci">static size_t vm_memsize(const void *ptr)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01651">vm.c:1651</a></div></div> <div class="ttc" id="nkf_8h_html_aa93f0eb578d23995850d61f7d61c55c1"><div class="ttname"><a href="../../d1/d5c/nkf_8h.html#aa93f0eb578d23995850d61f7d61c55c1">FALSE</a></div><div class="ttdeci">#define FALSE</div><div class="ttdef"><b>Definition:</b> <a href="../../d1/d5c/nkf_8h_source.html#l00185">nkf.h:185</a></div></div> <div class="ttc" id="structrb__vm__struct_html_a328959223626113a5ceeb5638b5d9f8d"><div class="ttname"><a href="../../db/d74/structrb__vm__struct.html#a328959223626113a5ceeb5638b5d9f8d">rb_vm_struct::at_exit</a></div><div class="ttdeci">struct RArray at_exit</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00329">vm_core.h:329</a></div></div> <div class="ttc" id="vm__exec_8h_html"><div class="ttname"><a href="../../d5/d4b/vm__exec_8h.html">vm_exec.h</a></div></div> <div class="ttc" id="vm_8c_html_a29d64659d230fbf7dc7326585cdaa8e5"><div class="ttname"><a href="../../de/de9/vm_8c.html#a29d64659d230fbf7dc7326585cdaa8e5">ruby_vm_const_missing_count</a></div><div class="ttdeci">VALUE ruby_vm_const_missing_count</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00040">vm.c:40</a></div></div> <div class="ttc" id="eval__intern_8h_html_ac5d3e11622cde853addb87cfae24021e"><div class="ttname"><a href="../../dd/dd0/eval__intern_8h.html#ac5d3e11622cde853addb87cfae24021e">TAG_NEXT</a></div><div class="ttdeci">#define TAG_NEXT</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/dd0/eval__intern_8h_source.html#l00154">eval_intern.h:154</a></div></div> <div class="ttc" id="vm_8c_html_a08ccea748ec0076636c2b4abada44ff0"><div class="ttname"><a href="../../de/de9/vm_8c.html#a08ccea748ec0076636c2b4abada44ff0">vm_init2</a></div><div class="ttdeci">static void vm_init2(rb_vm_t *vm)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01668">vm.c:1668</a></div></div> <div class="ttc" id="gc_8c_html_a90e176b7e9d24053977f64a611c1d8bb"><div class="ttname"><a href="../../d8/d16/gc_8c.html#a90e176b7e9d24053977f64a611c1d8bb">rb_gc_mark_locations</a></div><div class="ttdeci">#define rb_gc_mark_locations(start, end)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d16/gc_8c_source.html#l01571">gc.c:1571</a></div></div> <div class="ttc" id="vm__core_8h_html_aa933aeb7a703c7cc2d136492acbbef22"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#aa933aeb7a703c7cc2d136492acbbef22">RUBY_VM_IFUNC_P</a></div><div class="ttdeci">#define RUBY_VM_IFUNC_P(ptr)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00620">vm_core.h:620</a></div></div> <div class="ttc" id="structrb__vm__struct_html_a469ec56bec5fad54fa6336d5fde24a03"><div class="ttname"><a href="../../db/d74/structrb__vm__struct.html#a469ec56bec5fad54fa6336d5fde24a03">rb_vm_struct::running_thread</a></div><div class="ttdeci">struct rb_thread_struct * running_thread</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00283">vm_core.h:283</a></div></div> <div class="ttc" id="vm_8c_html_a198b8bdfa01414239809443f0a7b2625"><div class="ttname"><a href="../../de/de9/vm_8c.html#a198b8bdfa01414239809443f0a7b2625">vm_get_ruby_level_caller_cfp</a></div><div class="ttdeci">static rb_control_frame_t * vm_get_ruby_level_caller_cfp(rb_thread_t *th, rb_control_frame_t *cfp)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00181">vm.c:181</a></div></div> <div class="ttc" id="gc_8c_html_ad23af6ceadee644fb03120dbd2afabeb"><div class="ttname"><a href="../../d8/d16/gc_8c.html#ad23af6ceadee644fb03120dbd2afabeb">rb_objspace_free</a></div><div class="ttdeci">void rb_objspace_free(rb_objspace_t *objspace)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d16/gc_8c_source.html#l00494">gc.c:494</a></div></div> <div class="ttc" id="win32ole_8c_html_acb559820d9ca11295b4500f179ef6392"><div class="ttname"><a href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a></div><div class="ttdeci">int i</div><div class="ttdef"><b>Definition:</b> <a href="../../d2/d99/win32ole_8c_source.html#l00776">win32ole.c:776</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_aa6ebd81993faad84c09b5080e1fde73d"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#aa6ebd81993faad84c09b5080e1fde73d">RUBY_EVENT_RETURN</a></div><div class="ttdeci">#define RUBY_EVENT_RETURN</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l01407">ruby.h:1407</a></div></div> <div class="ttc" id="structst__table_html"><div class="ttname"><a href="../../d0/ddd/structst__table.html">st_table</a></div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d24/st_8h_source.html#l00077">st.h:77</a></div></div> <div class="ttc" id="structrb__vm__struct_html_ab84e4878eb81247cddd6b409f5a694a4"><div class="ttname"><a href="../../db/d74/structrb__vm__struct.html#ab84e4878eb81247cddd6b409f5a694a4">rb_vm_struct::cmd</a></div><div class="ttdeci">VALUE cmd</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00307">vm_core.h:307</a></div></div> <div class="ttc" id="structrb__thread__struct_html_af1ef1ecd85eec7b4809f81151ade5248"><div class="ttname"><a href="../../d2/d66/structrb__thread__struct.html#af1ef1ecd85eec7b4809f81151ade5248">rb_thread_struct::local_storage</a></div><div class="ttdeci">st_table * local_storage</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00453">vm_core.h:453</a></div></div> <div class="ttc" id="ripper_8c_html_aec42ef320e57234e789bdda6d655716f"><div class="ttname"><a href="../../d5/d11/ripper_8c.html#aec42ef320e57234e789bdda6d655716f">rb_id2str</a></div><div class="ttdeci">VALUE rb_id2str(ID id)</div><div class="ttdef"><b>Definition:</b> <a href="../../d5/d11/ripper_8c_source.html#l16301">ripper.c:16301</a></div></div> <div class="ttc" id="structiseq__catch__table__entry_html_af2d9fb3c5142c7e037d1405e0b7c59ae"><div class="ttname"><a href="../../dc/d07/structiseq__catch__table__entry.html#af2d9fb3c5142c7e037d1405e0b7c59ae">iseq_catch_table_entry::end</a></div><div class="ttdeci">unsigned long end</div><div class="ttdef"><b>Definition:</b> <a href="../../d7/dc8/iseq_8h_source.html#l00063">iseq.h:63</a></div></div> <div class="ttc" id="vm__core_8h_html_a26308f33317bb5b96ff89924822e8eab"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a26308f33317bb5b96ff89924822e8eab">VM_FRAME_MAGIC_CFUNC</a></div><div class="ttdeci">#define VM_FRAME_MAGIC_CFUNC</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00577">vm_core.h:577</a></div></div> <div class="ttc" id="iseq_8h_html"><div class="ttname"><a href="../../d7/dc8/iseq_8h.html">iseq.h</a></div></div> <div class="ttc" id="vm_8c_html_ae7ebc888013290c4c514a63794167a87"><div class="ttname"><a href="../../de/de9/vm_8c.html#ae7ebc888013290c4c514a63794167a87">ruby_vm_redefined_flag</a></div><div class="ttdeci">char ruby_vm_redefined_flag[BOP_LAST_]</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00042">vm.c:42</a></div></div> <div class="ttc" id="intern_8h_html_ad38ee02dc6ba34e3d05a60bac4a900f8"><div class="ttname"><a href="../../db/d2e/intern_8h.html#ad38ee02dc6ba34e3d05a60bac4a900f8">rb_undef_alloc_func</a></div><div class="ttdeci">void rb_undef_alloc_func(VALUE)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/d63/vm__method_8c_source.html#l00345">vm_method.c:345</a></div></div> <div class="ttc" id="group__defmethod_html_gaacfe6a2ec444bdc7f573afb75ea251fe"><div class="ttname"><a href="../../d7/d19/group__defmethod.html#gaacfe6a2ec444bdc7f573afb75ea251fe">rb_define_singleton_method</a></div><div class="ttdeci">void rb_define_singleton_method(VALUE obj, const char *name, VALUE(*func)(ANYARGS), int argc)</div><div class="ttdoc">Defines a singleton method for obj. </div><div class="ttdef"><b>Definition:</b> <a href="../../d9/d0c/class_8c_source.html#l01343">class.c:1343</a></div></div> <div class="ttc" id="vm__insnhelper_8h_html"><div class="ttname"><a href="../../d2/d5f/vm__insnhelper_8h.html">vm_insnhelper.h</a></div></div> <div class="ttc" id="vm__core_8h_html_af087c881c3c493e3a4e326852e8ed2a9"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#af087c881c3c493e3a4e326852e8ed2a9">RUBY_VM_PREVIOUS_CONTROL_FRAME</a></div><div class="ttdeci">#define RUBY_VM_PREVIOUS_CONTROL_FRAME(cfp)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00611">vm_core.h:611</a></div></div> <div class="ttc" id="vm__insnhelper_8h_html_ac14920989929283916448dfe53244cec"><div class="ttname"><a href="../../d2/d5f/vm__insnhelper_8h.html#ac14920989929283916448dfe53244cec">ruby_vm_global_state_version</a></div><div class="ttdeci">static VALUE ruby_vm_global_state_version</div><div class="ttdef"><b>Definition:</b> <a href="../../d2/d5f/vm__insnhelper_8h_source.html#l00211">vm_insnhelper.h:211</a></div></div> <div class="ttc" id="structiseq__catch__table__entry_html_a1c2635a230708dfba8857a6d6509b6a1a47795bf670cf0e9b6d3c2f4b01f4f9e7"><div class="ttname"><a href="../../dc/d07/structiseq__catch__table__entry.html#a1c2635a230708dfba8857a6d6509b6a1a47795bf670cf0e9b6d3c2f4b01f4f9e7">iseq_catch_table_entry::CATCH_TYPE_RETRY</a></div><div class="ttdef"><b>Definition:</b> <a href="../../d7/dc8/iseq_8h_source.html#l00056">iseq.h:56</a></div></div> <div class="ttc" id="vm__core_8h_html_ad9cb04a311c21bdbbd936d8f8b7237db"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#ad9cb04a311c21bdbbd936d8f8b7237db">GetProcPtr</a></div><div class="ttdeci">#define GetProcPtr(obj, ptr)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00523">vm_core.h:523</a></div></div> <div class="ttc" id="vm_8c_html_a60a89de76b17391f34b5905586c9651f"><div class="ttname"><a href="../../de/de9/vm_8c.html#a60a89de76b17391f34b5905586c9651f">vm_yield</a></div><div class="ttdeci">static VALUE vm_yield(rb_thread_t *th, int argc, const VALUE *argv)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00667">vm.c:667</a></div></div> <div class="ttc" id="structrb__thread__struct_html_a42b995c9fe5e654442129c060c1a8219"><div class="ttname"><a href="../../d2/d66/structrb__thread__struct.html#a42b995c9fe5e654442129c060c1a8219">rb_thread_struct::passed_me</a></div><div class="ttdeci">const rb_method_entry_t * passed_me</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00414">vm_core.h:414</a></div></div> <div class="ttc" id="structrb__objspace_html_a450c55a247ef7b5948507a181a5c43d1"><div class="ttname"><a href="../../d7/dc0/structrb__objspace.html#a450c55a247ef7b5948507a181a5c43d1">rb_objspace::ptr</a></div><div class="ttdeci">struct heaps_slot * ptr</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d16/gc_8c_source.html#l00362">gc.c:362</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html">ruby.h</a></div></div> <div class="ttc" id="structrb__vm__struct_html_a75e7f2d63af5fc368e6a1de951190f22"><div class="ttname"><a href="../../db/d74/structrb__vm__struct.html#a75e7f2d63af5fc368e6a1de951190f22">rb_vm_struct::top_self</a></div><div class="ttdeci">VALUE top_self</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00300">vm_core.h:300</a></div></div> <div class="ttc" id="vm__core_8h_html_a79d03ad9b9cf8b7a8ca2b849e495a74f"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a79d03ad9b9cf8b7a8ca2b849e495a74f">RUBY_VM_NORMAL_ISEQ_P</a></div><div class="ttdeci">#define RUBY_VM_NORMAL_ISEQ_P(ptr)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00621">vm_core.h:621</a></div></div> <div class="ttc" id="eval__intern_8h_html_a017f76c5f9b6ec0ceac2244ac80ab5cf"><div class="ttname"><a href="../../dd/dd0/eval__intern_8h.html#a017f76c5f9b6ec0ceac2244ac80ab5cf">SET_THROWOBJ_STATE</a></div><div class="ttdeci">#define SET_THROWOBJ_STATE(obj, val)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/dd0/eval__intern_8h_source.html#l00166">eval_intern.h:166</a></div></div> <div class="ttc" id="vm_8c_html_aa8deb4813e5d237bb18713ddb5d98b74"><div class="ttname"><a href="../../de/de9/vm_8c.html#aa8deb4813e5d237bb18713ddb5d98b74">rb_vm_set_finish_env</a></div><div class="ttdeci">static VALUE rb_vm_set_finish_env(rb_thread_t *th)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00096">vm.c:96</a></div></div> <div class="ttc" id="vm_8c_html_a8002db40fa68e94f40fec02f6d7d6ea6"><div class="ttname"><a href="../../de/de9/vm_8c.html#a8002db40fa68e94f40fec02f6d7d6ea6">rb_vm_mark</a></div><div class="ttdeci">void rb_vm_mark(void *ptr)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01581">vm.c:1581</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_ad07df58de9895cbc33c10f02540d2d4d"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#ad07df58de9895cbc33c10f02540d2d4d">CLASS_OF</a></div><div class="ttdeci">#define CLASS_OF(v)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00376">ruby.h:376</a></div></div> <div class="ttc" id="vm_8c_html_aff1db7f3bad76fa89acbb4097e1ff12f"><div class="ttname"><a href="../../de/de9/vm_8c.html#aff1db7f3bad76fa89acbb4097e1ff12f">rb_vm_call_cfunc</a></div><div class="ttdeci">VALUE rb_vm_call_cfunc(VALUE recv, VALUE(*func)(VALUE), VALUE arg, const rb_block_t *blockptr, VALUE filename)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01544">vm.c:1544</a></div></div> <div class="ttc" id="structrb__vm__struct_html_a0fabbe8c44aac34d9538388955e2b461"><div class="ttname"><a href="../../db/d74/structrb__vm__struct.html#a0fabbe8c44aac34d9538388955e2b461">rb_vm_struct::progname</a></div><div class="ttdeci">VALUE progname</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00316">vm_core.h:316</a></div></div> <div class="ttc" id="regint_8h_html_a4a2fef263bb8fa14faff2a3222a407dd"><div class="ttname"><a href="../../d6/d87/regint_8h.html#a4a2fef263bb8fa14faff2a3222a407dd">st_foreach</a></div><div class="ttdeci">#define st_foreach</div><div class="ttdef"><b>Definition:</b> <a href="../../d6/d87/regint_8h_source.html#l00150">regint.h:150</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_aacea3516b33941ce8149098e223a7466"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#aacea3516b33941ce8149098e223a7466">Qtrue</a></div><div class="ttdeci">#define Qtrue</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00366">ruby.h:366</a></div></div> <div class="ttc" id="structrb__event__hook__struct_html"><div class="ttname"><a href="../../d8/d86/structrb__event__hook__struct.html">rb_event_hook_struct</a></div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l01419">ruby.h:1419</a></div></div> <div class="ttc" id="vm_8c_html_a5e1259c3fa1d188528af5b535e3a7f00"><div class="ttname"><a href="../../de/de9/vm_8c.html#a5e1259c3fa1d188528af5b535e3a7f00">env_memsize</a></div><div class="ttdeci">static size_t env_memsize(const void *ptr)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00280">vm.c:280</a></div></div> <div class="ttc" id="vm_8c_html_a89c3d926a61cd7ceb032a9cc999bdb5e"><div class="ttname"><a href="../../de/de9/vm_8c.html#a89c3d926a61cd7ceb032a9cc999bdb5e">vm_mark_each_thread_func</a></div><div class="ttdeci">static int vm_mark_each_thread_func(st_data_t key, st_data_t value, st_data_t dummy)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01564">vm.c:1564</a></div></div> <div class="ttc" id="structrb__block__struct_html_a8e2b3b9218b4a184f198872404e81605"><div class="ttname"><a href="../../da/dc0/structrb__block__struct.html#a8e2b3b9218b4a184f198872404e81605">rb_block_struct::iseq</a></div><div class="ttdeci">rb_iseq_t * iseq</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00350">vm_core.h:350</a></div></div> <div class="ttc" id="eval__intern_8h_html_aa69d9fa25afdc01237612a6047b96189"><div class="ttname"><a href="../../dd/dd0/eval__intern_8h.html#aa69d9fa25afdc01237612a6047b96189">TAG_BREAK</a></div><div class="ttdeci">#define TAG_BREAK</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/dd0/eval__intern_8h_source.html#l00153">eval_intern.h:153</a></div></div> <div class="ttc" id="vm_8c_html_a32e6bd476abfda4d5fcca42de87ff4e2"><div class="ttname"><a href="../../de/de9/vm_8c.html#a32e6bd476abfda4d5fcca42de87ff4e2">check_env</a></div><div class="ttdeci">static int check_env(rb_env_t *const env)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00313">vm.c:313</a></div></div> <div class="ttc" id="vm__insnhelper_8c_html_a12e2a36d6e51eedb258d07ee68314671"><div class="ttname"><a href="../../d0/db2/vm__insnhelper_8c.html#a12e2a36d6e51eedb258d07ee68314671">block_proc_is_lambda</a></div><div class="ttdeci">static int block_proc_is_lambda(const VALUE procval)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/db2/vm__insnhelper_8c_source.html#l00684">vm_insnhelper.c:684</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_aa3094c0054b80ec2a7e50f9fe1e5f4b2"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#aa3094c0054b80ec2a7e50f9fe1e5f4b2">TypedData_Wrap_Struct</a></div><div class="ttdeci">#define TypedData_Wrap_Struct(klass, data_type, sval)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00826">ruby.h:826</a></div></div> <div class="ttc" id="vm_8c_html_a8a84999770916c4cc41113421fee2233"><div class="ttname"><a href="../../de/de9/vm_8c.html#a8a84999770916c4cc41113421fee2233">m_core_undef_method</a></div><div class="ttdeci">static VALUE m_core_undef_method(VALUE self, VALUE cbase, VALUE sym)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l02018">vm.c:2018</a></div></div> <div class="ttc" id="cont_8c_html_ab5703bedcf05b1ec2af16142f292c5fb"><div class="ttname"><a href="../../d5/d75/cont_8c.html#ab5703bedcf05b1ec2af16142f292c5fb">rb_fiber_reset_root_local_storage</a></div><div class="ttdeci">void rb_fiber_reset_root_local_storage(VALUE thval)</div><div class="ttdef"><b>Definition:</b> <a href="../../d5/d75/cont_8c_source.html#l01357">cont.c:1357</a></div></div> <div class="ttc" id="eval__intern_8h_html_aeeda78ded67b3dc359c8911e679f0f15"><div class="ttname"><a href="../../dd/dd0/eval__intern_8h.html#aeeda78ded67b3dc359c8911e679f0f15">GET_THROWOBJ_CATCH_POINT</a></div><div class="ttdeci">#define GET_THROWOBJ_CATCH_POINT(obj)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/dd0/eval__intern_8h_source.html#l00170">eval_intern.h:170</a></div></div> <div class="ttc" id="vm_8c_html_a0bfc83f8e81743a8e2267f285fc687e0"><div class="ttname"><a href="../../de/de9/vm_8c.html#a0bfc83f8e81743a8e2267f285fc687e0">vm_backtrace_alloc</a></div><div class="ttdeci">static void vm_backtrace_alloc(void *arg)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00836">vm.c:836</a></div></div> <div class="ttc" id="st_8h_html_a0c6a172fd99de7928916e65034ed8b1fac99fc55c7f355bf9071739a4bc2ea139"><div class="ttname"><a href="../../dd/d24/st_8h.html#a0c6a172fd99de7928916e65034ed8b1fac99fc55c7f355bf9071739a4bc2ea139">ST_CONTINUE</a></div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d24/st_8h_source.html#l00100">st.h:100</a></div></div> <div class="ttc" id="compile_8c_html_a6fbae85d86b443ae82def50a5d3e7254"><div class="ttname"><a href="../../d2/d47/compile_8c.html#a6fbae85d86b443ae82def50a5d3e7254">rb_insns_name_array</a></div><div class="ttdeci">VALUE rb_insns_name_array(void)</div><div class="ttdef"><b>Definition:</b> <a href="../../d2/d47/compile_8c_source.html#l05207">compile.c:5207</a></div></div> <div class="ttc" id="nkf-utf8_2nkf_8c_html_a64ae40793ade89d800a8c5646d2980fc"><div class="ttname"><a href="../../d6/da0/nkf-utf8_2nkf_8c.html#a64ae40793ade89d800a8c5646d2980fc">id</a></div><div class="ttdeci">const int id</div><div class="ttdef"><b>Definition:</b> <a href="../../d6/da0/nkf-utf8_2nkf_8c_source.html#l00209">nkf.c:209</a></div></div> <div class="ttc" id="eval__intern_8h_html"><div class="ttname"><a href="../../dd/dd0/eval__intern_8h.html">eval_intern.h</a></div></div> <div class="ttc" id="vm_8c_html_abd5a67cb02cf079c0674935966148915"><div class="ttname"><a href="../../de/de9/vm_8c.html#abd5a67cb02cf079c0674935966148915">C</a></div><div class="ttdeci">#define C(k)</div></div> <div class="ttc" id="vm_8c_html_ab942ba41eb7429c6a2059edcf7403233"><div class="ttname"><a href="../../de/de9/vm_8c.html#ab942ba41eb7429c6a2059edcf7403233">rb_vm_cbase</a></div><div class="ttdeci">VALUE rb_vm_cbase(void)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00926">vm.c:926</a></div></div> <div class="ttc" id="date__core_8c_html_a49becf5019eb7d2fa43fea31b977b203"><div class="ttname"><a href="../../dd/dc0/date__core_8c.html#a49becf5019eb7d2fa43fea31b977b203">DIV</a></div><div class="ttdeci">#define DIV(n, d)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/dc0/date__core_8c_source.html#l00146">date_core.c:146</a></div></div> <div class="ttc" id="structrb__block__struct_html"><div class="ttname"><a href="../../da/dc0/structrb__block__struct.html">rb_block_struct</a></div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00346">vm_core.h:346</a></div></div> <div class="ttc" id="vm__insnhelper_8h_html_a5e6b7f865cae591e5e27b0e36b0d357f"><div class="ttname"><a href="../../d2/d5f/vm__insnhelper_8h.html#a5e6b7f865cae591e5e27b0e36b0d357f">VMDEBUG</a></div><div class="ttdeci">#define VMDEBUG</div><div class="ttdoc">VM Debug Level. </div><div class="ttdef"><b>Definition:</b> <a href="../../d2/d5f/vm__insnhelper_8h_source.html#l00029">vm_insnhelper.h:29</a></div></div> <div class="ttc" id="structrb__vm__struct_html_af4e77414ac91c895a15ae89dad71f143"><div class="ttname"><a href="../../db/d74/structrb__vm__struct.html#af4e77414ac91c895a15ae89dad71f143">rb_vm_struct::mark_object_ary</a></div><div class="ttdeci">VALUE mark_object_ary</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00295">vm_core.h:295</a></div></div> <div class="ttc" id="method_8h_html_a88a981f6cc69187ed9c2de2630a1687aa09fd70c8c3426502348b7df7c121e505"><div class="ttname"><a href="../../db/d0a/method_8h.html#a88a981f6cc69187ed9c2de2630a1687aa09fd70c8c3426502348b7df7c121e505">VM_METHOD_TYPE_ISEQ</a></div><div class="ttdef"><b>Definition:</b> <a href="../../db/d0a/method_8h_source.html#l00035">method.h:35</a></div></div> <div class="ttc" id="error_8c_html_a565ed9d70f4089e1b4a36e9b3381b8c6"><div class="ttname"><a href="../../db/dcc/error_8c.html#a565ed9d70f4089e1b4a36e9b3381b8c6">rb_eTypeError</a></div><div class="ttdeci">VALUE rb_eTypeError</div><div class="ttdef"><b>Definition:</b> <a href="../../db/dcc/error_8c_source.html#l00467">error.c:467</a></div></div> <div class="ttc" id="vm_8c_html_ab9b0b6052e278894c13547d5eae29553"><div class="ttname"><a href="../../de/de9/vm_8c.html#ab9b0b6052e278894c13547d5eae29553">rb_ruby_debug_ptr</a></div><div class="ttdeci">VALUE * rb_ruby_debug_ptr(void)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l02295">vm.c:2295</a></div></div> <div class="ttc" id="vm__core_8h_html_ae435941bb169c44f47dbc7f93a93f3db"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#ae435941bb169c44f47dbc7f93a93f3db">RUBY_NSIG</a></div><div class="ttdeci">#define RUBY_NSIG</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00057">vm_core.h:57</a></div></div> <div class="ttc" id="eval__intern_8h_html_a94d7b62a0538b4dc8a1d0c7c1308bfe7"><div class="ttname"><a href="../../dd/dd0/eval__intern_8h.html#a94d7b62a0538b4dc8a1d0c7c1308bfe7">TH_JUMP_TAG</a></div><div class="ttdeci">#define TH_JUMP_TAG(th, st)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/dd0/eval__intern_8h_source.html#l00133">eval_intern.h:133</a></div></div> <div class="ttc" id="vm_8c_html_a763a6b9c07ba29acc33611df4297f321"><div class="ttname"><a href="../../de/de9/vm_8c.html#a763a6b9c07ba29acc33611df4297f321">ENV_IN_HEAP_P</a></div><div class="ttdeci">#define ENV_IN_HEAP_P(th, env)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00233">vm.c:233</a></div></div> <div class="ttc" id="id_8h_html_a08dd4fbd61c5fde369edd59783f753b3ab8ee32ae756f7a4ee90cb7e2b1f3bb4d"><div class="ttname"><a href="../../df/db9/id_8h.html#a08dd4fbd61c5fde369edd59783f753b3ab8ee32ae756f7a4ee90cb7e2b1f3bb4d">id_core_undef_method</a></div><div class="ttdef"><b>Definition:</b> <a href="../../df/db9/id_8h_source.html#l00068">id.h:68</a></div></div> <div class="ttc" id="structrb__thread__struct_html_a8ddade0070cf5af8034e1549e30839fb"><div class="ttname"><a href="../../d2/d66/structrb__thread__struct.html#a8ddade0070cf5af8034e1549e30839fb">rb_thread_struct::waiting_fd</a></div><div class="ttdeci">int waiting_fd</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00408">vm_core.h:408</a></div></div> <div class="ttc" id="array_8c_html_a59d553a8cd781364b8bcb0deae25cca2"><div class="ttname"><a href="../../dc/dcc/array_8c.html#a59d553a8cd781364b8bcb0deae25cca2">rb_ary_push</a></div><div class="ttdeci">VALUE rb_ary_push(VALUE ary, VALUE item)</div><div class="ttdef"><b>Definition:</b> <a href="../../dc/dcc/array_8c_source.html#l00740">array.c:740</a></div></div> <div class="ttc" id="ossl__ssl_8c_html_a86771351f4ef469ab9c94739a64fd7ea"><div class="ttname"><a href="../../dc/dd1/ossl__ssl_8c.html#a86771351f4ef469ab9c94739a64fd7ea">func</a></div><div class="ttdeci">SSL_METHOD *(* func)(void)</div><div class="ttdef"><b>Definition:</b> <a href="../../dc/dd1/ossl__ssl_8c_source.html#l00104">ossl_ssl.c:104</a></div></div> <div class="ttc" id="vm_8c_html_a976657030590c458cdb538951138a823"><div class="ttname"><a href="../../de/de9/vm_8c.html#a976657030590c458cdb538951138a823">rb_vm_jump_tag_but_local_jump</a></div><div class="ttdeci">void rb_vm_jump_tag_but_local_jump(int state, VALUE val)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01011">vm.c:1011</a></div></div> <div class="ttc" id="vm_8c_html_a9ccac59de15bb257e3b0243b4c5ef43c"><div class="ttname"><a href="../../de/de9/vm_8c.html#a9ccac59de15bb257e3b0243b4c5ef43c">invoke_block_from_c</a></div><div class="ttdeci">static VALUE invoke_block_from_c(rb_thread_t *th, const rb_block_t *block, VALUE self, int argc, const VALUE *argv, const rb_block_t *blockptr, const NODE *cref)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00602">vm.c:602</a></div></div> <div class="ttc" id="structrb__vm__struct_html_a09bd6675a9fe3f1b19e36284e91a0e31"><div class="ttname"><a href="../../db/d74/structrb__vm__struct.html#a09bd6675a9fe3f1b19e36284e91a0e31">rb_vm_struct::living_threads</a></div><div class="ttdeci">st_table * living_threads</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00285">vm_core.h:285</a></div></div> <div class="ttc" id="encoding_8c_html_a533ed45f02a3f72987b0f6f5ce04c996"><div class="ttname"><a href="../../d5/db5/encoding_8c.html#a533ed45f02a3f72987b0f6f5ce04c996">rb_enc_compatible</a></div><div class="ttdeci">rb_encoding * rb_enc_compatible(VALUE str1, VALUE str2)</div><div class="ttdef"><b>Definition:</b> <a href="../../d5/db5/encoding_8c_source.html#l00750">encoding.c:750</a></div></div> <div class="ttc" id="array_8c_html_aaf7e3ca42191580b60f398d5ec466766"><div class="ttname"><a href="../../dc/dcc/array_8c.html#aaf7e3ca42191580b60f398d5ec466766">rb_ary_tmp_new</a></div><div class="ttdeci">VALUE rb_ary_tmp_new(long capa)</div><div class="ttdef"><b>Definition:</b> <a href="../../dc/dcc/array_8c_source.html#l00380">array.c:380</a></div></div> <div class="ttc" id="vm_8c_html_a2590f9272c0599ff0d1922bd0fb6efce"><div class="ttname"><a href="../../de/de9/vm_8c.html#a2590f9272c0599ff0d1922bd0fb6efce">rb_backref_get</a></div><div class="ttdeci">VALUE rb_backref_get(void)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00743">vm.c:743</a></div></div> <div class="ttc" id="structrb__vm__struct_html_a4cc71b049515a53a03926b2bfba329e6"><div class="ttname"><a href="../../db/d74/structrb__vm__struct.html#a4cc71b049515a53a03926b2bfba329e6">rb_vm_struct::verbose</a></div><div class="ttdeci">VALUE verbose</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00316">vm_core.h:316</a></div></div> <div class="ttc" id="vm__core_8h_html_acfa2a173f2b08fdbe1045d2c990200d3"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#acfa2a173f2b08fdbe1045d2c990200d3">RUBY_VM_GET_BLOCK_PTR_IN_CFP</a></div><div class="ttdeci">#define RUBY_VM_GET_BLOCK_PTR_IN_CFP(cfp)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00624">vm_core.h:624</a></div></div> <div class="ttc" id="structrb__control__frame__t_html_a29b331b150e5cae1e206cd87f892bad8"><div class="ttname"><a href="../../dd/d84/structrb__control__frame__t.html#a29b331b150e5cae1e206cd87f892bad8">rb_control_frame_t::sp</a></div><div class="ttdeci">VALUE * sp</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00334">vm_core.h:334</a></div></div> <div class="ttc" id="vm_8c_html_a7e8d71dee905abc403d671561b12f4e8"><div class="ttname"><a href="../../de/de9/vm_8c.html#a7e8d71dee905abc403d671561b12f4e8">rb_vm_make_proc</a></div><div class="ttdeci">VALUE rb_vm_make_proc(rb_thread_t *th, const rb_block_t *block, VALUE klass)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00561">vm.c:561</a></div></div> <div class="ttc" id="structrb__iseq__struct_html_a22ff1695f19e63e6540bc574949c55b0"><div class="ttname"><a href="../../d6/de3/structrb__iseq__struct.html#a22ff1695f19e63e6540bc574949c55b0">rb_iseq_struct::local_table_size</a></div><div class="ttdeci">int local_table_size</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00183">vm_core.h:183</a></div></div> <div class="ttc" id="structrb__block__struct_html_ad54e1ec45ab21ef384fe9e4346570397"><div class="ttname"><a href="../../da/dc0/structrb__block__struct.html#ad54e1ec45ab21ef384fe9e4346570397">rb_block_struct::self</a></div><div class="ttdeci">VALUE self</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00347">vm_core.h:347</a></div></div> <div class="ttc" id="vm_8c_html_af324cc69c6f1c3c72fa2b816615c6c80"><div class="ttname"><a href="../../de/de9/vm_8c.html#af324cc69c6f1c3c72fa2b816615c6c80">vm_collect_local_variables_in_heap</a></div><div class="ttdeci">static int vm_collect_local_variables_in_heap(rb_thread_t *th, VALUE *dfp, VALUE ary)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00457">vm.c:457</a></div></div> <div class="ttc" id="vm__core_8h_html_a58590982dd240cfd7473cc798636c05aa6d18d1c50b79b691e7b8f979b3ff4f0e"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a58590982dd240cfd7473cc798636c05aa6d18d1c50b79b691e7b8f979b3ff4f0e">ruby_special_error_count</a></div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00266">vm_core.h:266</a></div></div> <div class="ttc" id="generator_8h_html_aa0c7097c0d82c8372072fbab5a604e39"><div class="ttname"><a href="../../d8/df4/generator_8h.html#aa0c7097c0d82c8372072fbab5a604e39">RSTRING_PTR</a></div><div class="ttdeci">#define RSTRING_PTR(string)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/df4/generator_8h_source.html#l00042">generator.h:42</a></div></div> <div class="ttc" id="vm__core_8h_html_abc8be29d36c6252fce6bc61621f81b71"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#abc8be29d36c6252fce6bc61621f81b71">VM_FRAME_MAGIC_METHOD</a></div><div class="ttdeci">#define VM_FRAME_MAGIC_METHOD</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00572">vm_core.h:572</a></div></div> <div class="ttc" id="group__class_html_ga5266deadce0318d830a1e63c0933b898"><div class="ttname"><a href="../../de/ddf/group__class.html#ga5266deadce0318d830a1e63c0933b898">rb_define_class_under</a></div><div class="ttdeci">VALUE rb_define_class_under(VALUE outer, const char *name, VALUE super)</div><div class="ttdoc">Defines a class under the namespace of outer. </div><div class="ttdef"><b>Definition:</b> <a href="../../d9/d0c/class_8c_source.html#l00515">class.c:515</a></div></div> <div class="ttc" id="method_8h_html_a1e54ff32a6191e40451e1523c61ca439a50775b7233e9bb462c3703a6511e02d1"><div class="ttname"><a href="../../db/d0a/method_8h.html#a1e54ff32a6191e40451e1523c61ca439a50775b7233e9bb462c3703a6511e02d1">NOEX_MODFUNC</a></div><div class="ttdef"><b>Definition:</b> <a href="../../db/d0a/method_8h_source.html#l00022">method.h:22</a></div></div> <div class="ttc" id="error_8c_html_a0f771a2840561f1838169b3d7d4616f3"><div class="ttname"><a href="../../db/dcc/error_8c.html#a0f771a2840561f1838169b3d7d4616f3">rb_raise</a></div><div class="ttdeci">void rb_raise(VALUE exc, const char *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="../../db/dcc/error_8c_source.html#l01574">error.c:1574</a></div></div> <div class="ttc" id="vm_8c_html_a914b7151a013f7fc163b7024cb00ac87"><div class="ttname"><a href="../../de/de9/vm_8c.html#a914b7151a013f7fc163b7024cb00ac87">rb_thread_alloc</a></div><div class="ttdeci">VALUE rb_thread_alloc(VALUE klass)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01925">vm.c:1925</a></div></div> <div class="ttc" id="vm_8c_html_aa10e58958709037c9e4bba549b0d4755"><div class="ttname"><a href="../../de/de9/vm_8c.html#aa10e58958709037c9e4bba549b0d4755">vm_normal_frame</a></div><div class="ttdeci">static rb_control_frame_t * vm_normal_frame(rb_thread_t *th, rb_control_frame_t *cfp)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00703">vm.c:703</a></div></div> <div class="ttc" id="vm__core_8h_html_a423bad734fe427f4d5deeb4fe71fff65"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a423bad734fe427f4d5deeb4fe71fff65">VM_FRAME_TYPE</a></div><div class="ttdeci">#define VM_FRAME_TYPE(cfp)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00585">vm_core.h:585</a></div></div> <div class="ttc" id="vm_8c_html_a2fa957ea281fa0f0ea74f4070cf04724"><div class="ttname"><a href="../../de/de9/vm_8c.html#a2fa957ea281fa0f0ea74f4070cf04724">vm_clear_all_cache</a></div><div class="ttdeci">static void vm_clear_all_cache()</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00080">vm.c:80</a></div></div> <div class="ttc" id="vm_8c_html_a193faf68e941a3c79d23e310ed1d424c"><div class="ttname"><a href="../../de/de9/vm_8c.html#a193faf68e941a3c79d23e310ed1d424c">rb_vm_rewrite_dfp_in_errinfo</a></div><div class="ttdeci">void rb_vm_rewrite_dfp_in_errinfo(rb_thread_t *th)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00514">vm.c:514</a></div></div> <div class="ttc" id="gc_8h_html_a036115d8c044f5c847e760c57b08e5a9"><div class="ttname"><a href="../../d0/daa/gc_8h.html#a036115d8c044f5c847e760c57b08e5a9">RUBY_MARK_LEAVE</a></div><div class="ttdeci">#define RUBY_MARK_LEAVE(msg)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/daa/gc_8h_source.html#l00054">gc.h:54</a></div></div> <div class="ttc" id="vm_8c_html_ac10c02440395b95b8b6fbc79d2e1e127"><div class="ttname"><a href="../../de/de9/vm_8c.html#ac10c02440395b95b8b6fbc79d2e1e127">vm_backtrace_push</a></div><div class="ttdeci">static int vm_backtrace_push(void *arg, VALUE file, int line_no, VALUE name)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00843">vm.c:843</a></div></div> <div class="ttc" id="gc_8h_html"><div class="ttname"><a href="../../d0/daa/gc_8h.html">gc.h</a></div></div> <div class="ttc" id="structrb__method__entry__struct_html_a31439bd620e98940410ba59244a85eae"><div class="ttname"><a href="../../d7/db7/structrb__method__entry__struct.html#a31439bd620e98940410ba59244a85eae">rb_method_entry_struct::called_id</a></div><div class="ttdeci">ID called_id</div><div class="ttdef"><b>Definition:</b> <a href="../../db/d0a/method_8h_source.html#l00079">method.h:79</a></div></div> <div class="ttc" id="vm_8c_html_ae7481a42efe3169d09a302d1c6ffd38c"><div class="ttname"><a href="../../de/de9/vm_8c.html#ae7481a42efe3169d09a302d1c6ffd38c">env_mark</a></div><div class="ttdeci">static void env_mark(void *const ptr)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00238">vm.c:238</a></div></div> <div class="ttc" id="vm__core_8h_html_a795522d157a66fe8f0cdd335b28099c9"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a795522d157a66fe8f0cdd335b28099c9">VM_FRAME_MAGIC_IFUNC</a></div><div class="ttdeci">#define VM_FRAME_MAGIC_IFUNC</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00579">vm_core.h:579</a></div></div> <div class="ttc" id="vm_8c_html_adab716402e3bca5b8c6664aa102045d8"><div class="ttname"><a href="../../de/de9/vm_8c.html#adab716402e3bca5b8c6664aa102045d8">Init_VM</a></div><div class="ttdeci">void Init_VM(void)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l02095">vm.c:2095</a></div></div> <div class="ttc" id="vm_8c_html_a088895c356d92de8dff1afee377c58c4"><div class="ttname"><a href="../../de/de9/vm_8c.html#a088895c356d92de8dff1afee377c58c4">thread_recycle_stack_count</a></div><div class="ttdeci">static int thread_recycle_stack_count</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01683">vm.c:1683</a></div></div> <div class="ttc" id="generator_8h_html_ae988773ed219452578f881fc7189c486"><div class="ttname"><a href="../../d8/df4/generator_8h.html#ae988773ed219452578f881fc7189c486">RARRAY_LEN</a></div><div class="ttdeci">#define RARRAY_LEN(ARRAY)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/df4/generator_8h_source.html#l00039">generator.h:39</a></div></div> <div class="ttc" id="structrb__thread__struct_html_a3fa7c7d516fe265dbbd215eed5da5a20"><div class="ttname"><a href="../../d2/d66/structrb__thread__struct.html#a3fa7c7d516fe265dbbd215eed5da5a20">rb_thread_struct::thgroup</a></div><div class="ttdeci">VALUE thgroup</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00434">vm_core.h:434</a></div></div> <div class="ttc" id="vm_8c_html_a0402672d92f48e0018ab5f8aeda270e6"><div class="ttname"><a href="../../de/de9/vm_8c.html#a0402672d92f48e0018ab5f8aeda270e6">rb_vm_localjump_error</a></div><div class="ttdeci">void rb_vm_localjump_error(const char *mesg, VALUE value, int reason)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00972">vm.c:972</a></div></div> <div class="ttc" id="structrb__iseq__struct_html_a00494b6f5b1aa350819cad777e19eee8"><div class="ttname"><a href="../../d6/de3/structrb__iseq__struct.html#a00494b6f5b1aa350819cad777e19eee8">rb_iseq_struct::stack_max</a></div><div class="ttdeci">size_t stack_max</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00224">vm_core.h:224</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_abb509cfdf6560a9f795b1f6932d93691"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#abb509cfdf6560a9f795b1f6932d93691">DATA_PTR</a></div><div class="ttdeci">#define DATA_PTR(dta)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00795">ruby.h:795</a></div></div> <div class="ttc" id="vm__core_8h_html_ac33c371d81972685538097cb4f49181f"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#ac33c371d81972685538097cb4f49181f">SDR</a></div><div class="ttdeci">#define SDR()</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00634">vm_core.h:634</a></div></div> <div class="ttc" id="structrb__thread__struct_html_a02e6343202cb5994463c33da7ed38c4f"><div class="ttname"><a href="../../d2/d66/structrb__thread__struct.html#a02e6343202cb5994463c33da7ed38c4f">rb_thread_struct::last_status</a></div><div class="ttdeci">VALUE last_status</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00403">vm_core.h:403</a></div></div> <div class="ttc" id="gc_8c_html_a98250264e6adf4924cf2becf80122325"><div class="ttname"><a href="../../d8/d16/gc_8c.html#a98250264e6adf4924cf2becf80122325">rb_gc_mark</a></div><div class="ttdeci">void rb_gc_mark(VALUE ptr)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d16/gc_8c_source.html#l01764">gc.c:1764</a></div></div> <div class="ttc" id="vm_8c_html_a558682fa4d3466e2877e03310d2d98d9"><div class="ttname"><a href="../../de/de9/vm_8c.html#a558682fa4d3466e2877e03310d2d98d9">vm_iter_break</a></div><div class="ttdeci">static void vm_iter_break(rb_thread_t *th)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01023">vm.c:1023</a></div></div> <div class="ttc" id="vm__core_8h_html_ac3cef3df2cc03d3090ad49220cb453d5"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#ac3cef3df2cc03d3090ad49220cb453d5">RUBY_VM_CONTROL_FRAME_STACK_OVERFLOW_P</a></div><div class="ttdeci">#define RUBY_VM_CONTROL_FRAME_STACK_OVERFLOW_P(th, cfp)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00617">vm_core.h:617</a></div></div> <div class="ttc" id="gc_8h_html_a634fb573223a0ffb428332fc45916fc6"><div class="ttname"><a href="../../d0/daa/gc_8h.html#a634fb573223a0ffb428332fc45916fc6">RUBY_GC_INFO</a></div><div class="ttdeci">#define RUBY_GC_INFO</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/daa/gc_8h_source.html#l00057">gc.h:57</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_abbd332f6f94d77e0a369c7720128639e"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#abbd332f6f94d77e0a369c7720128639e">T_ARRAY</a></div><div class="ttdeci">#define T_ARRAY</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00420">ruby.h:420</a></div></div> <div class="ttc" id="vm_8c_html_aebec1af86784db52769846dfc3b4cfaa"><div class="ttname"><a href="../../de/de9/vm_8c.html#aebec1af86784db52769846dfc3b4cfaa">thread_recycle_stack_slot</a></div><div class="ttdeci">static VALUE * thread_recycle_stack_slot[RECYCLE_MAX]</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01682">vm.c:1682</a></div></div> <div class="ttc" id="vm_8c_html_a5077c2fe5c10efbf02a0ee287b84c809"><div class="ttname"><a href="../../de/de9/vm_8c.html#a5077c2fe5c10efbf02a0ee287b84c809">vm_cfp_svar_get</a></div><div class="ttdeci">static VALUE vm_cfp_svar_get(rb_thread_t *th, rb_control_frame_t *cfp, VALUE key)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00715">vm.c:715</a></div></div> <div class="ttc" id="eval__intern_8h_html_a0b034bce069147e233776bc1dcc74c01"><div class="ttname"><a href="../../dd/dd0/eval__intern_8h.html#a0b034bce069147e233776bc1dcc74c01">TAG_RAISE</a></div><div class="ttdeci">#define TAG_RAISE</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/dd0/eval__intern_8h_source.html#l00157">eval_intern.h:157</a></div></div> <div class="ttc" id="regint_8h_html_a8032e662c4b4ee0ded05bbe3f15d5c45"><div class="ttname"><a href="../../d6/d87/regint_8h.html#a8032e662c4b4ee0ded05bbe3f15d5c45">st_lookup</a></div><div class="ttdeci">#define st_lookup</div><div class="ttdef"><b>Definition:</b> <a href="../../d6/d87/regint_8h_source.html#l00149">regint.h:149</a></div></div> <div class="ttc" id="vm__core_8h_html_aaa39b3177aba775195d515b937ef78ff"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#aaa39b3177aba775195d515b937ef78ff">GetEnvPtr</a></div><div class="ttdeci">#define GetEnvPtr(obj, ptr)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00536">vm_core.h:536</a></div></div> <div class="ttc" id="vm_8c_html_a70289cbb34babceed6243d9471e70e5f"><div class="ttname"><a href="../../de/de9/vm_8c.html#a70289cbb34babceed6243d9471e70e5f">rb_vm_get_sourceline</a></div><div class="ttdeci">RUBY_FUNC_EXPORTED int rb_vm_get_sourceline(const rb_control_frame_t *cfp)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00769">vm.c:769</a></div></div> <div class="ttc" id="vm_8c_html_a5c315a0f909b280ce9f9ecf36ad32525"><div class="ttname"><a href="../../de/de9/vm_8c.html#a5c315a0f909b280ce9f9ecf36ad32525">rb_objspace_alloc</a></div><div class="ttdeci">struct rb_objspace * rb_objspace_alloc(void)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d16/gc_8c_source.html#l00432">gc.c:432</a></div></div> <div class="ttc" id="structrb__binding__t_html_a65f58a22eb376363f727c34b7fde7400"><div class="ttname"><a href="../../d3/d76/structrb__binding__t.html#a65f58a22eb376363f727c34b7fde7400">rb_binding_t::env</a></div><div class="ttdeci">VALUE env</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00551">vm_core.h:551</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_abd0d5fa9d171dbf020e85958391437f9"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#abd0d5fa9d171dbf020e85958391437f9">rb_cProc</a></div><div class="ttdeci">RUBY_EXTERN VALUE rb_cProc</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l01269">ruby.h:1269</a></div></div> <div class="ttc" id="vm__insnhelper_8c_html_a738cd1c8e659fcea3cc75f1f97169878"><div class="ttname"><a href="../../d0/db2/vm__insnhelper_8c.html#a738cd1c8e659fcea3cc75f1f97169878">vm_yield_setup_args</a></div><div class="ttdeci">static int vm_yield_setup_args(rb_thread_t *const th, const rb_iseq_t *iseq, int argc, VALUE *argv, const rb_block_t *blockptr, int lambda)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/db2/vm__insnhelper_8c_source.html#l00895">vm_insnhelper.c:895</a></div></div> <div class="ttc" id="intern_8h_html_a05cac3059504774696c1a748ba6085d3"><div class="ttname"><a href="../../db/d2e/intern_8h.html#a05cac3059504774696c1a748ba6085d3">rb_undef</a></div><div class="ttdeci">void rb_undef(VALUE, ID)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/d63/vm__method_8c_source.html#l00602">vm_method.c:602</a></div></div> <div class="ttc" id="vm_8c_html_a118ab0087779e3d649f8db8fac1dfc4d"><div class="ttname"><a href="../../de/de9/vm_8c.html#a118ab0087779e3d649f8db8fac1dfc4d">vm_data_type</a></div><div class="ttdeci">static const rb_data_type_t vm_data_type</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01662">vm.c:1662</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_acf2fcf97dcf9c7c35452730eb3e2aeb2"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#acf2fcf97dcf9c7c35452730eb3e2aeb2">FIXNUM_P</a></div><div class="ttdeci">#define FIXNUM_P(f)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00338">ruby.h:338</a></div></div> <div class="ttc" id="structrb__thread__struct_html"><div class="ttname"><a href="../../d2/d66/structrb__thread__struct.html">rb_thread_struct</a></div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00393">vm_core.h:393</a></div></div> <div class="ttc" id="vm_8c_html_a9f77b7ff2a4e6e64a9a1590f9b7219a7"><div class="ttname"><a href="../../de/de9/vm_8c.html#a9f77b7ff2a4e6e64a9a1590f9b7219a7">env_alloc</a></div><div class="ttdeci">static VALUE env_alloc(void)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00299">vm.c:299</a></div></div> <div class="ttc" id="vm_8c_html_abd4857d42a372434a12d8a62404e4fa2"><div class="ttname"><a href="../../de/de9/vm_8c.html#abd4857d42a372434a12d8a62404e4fa2">sdr</a></div><div class="ttdeci">static VALUE sdr(void)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l02063">vm.c:2063</a></div></div> <div class="ttc" id="vm_8c_html_a2709ccd7eeff81c0f749a7678223857e"><div class="ttname"><a href="../../de/de9/vm_8c.html#a2709ccd7eeff81c0f749a7678223857e">rb_vm_get_ruby_level_next_cfp</a></div><div class="ttdeci">rb_control_frame_t * rb_vm_get_ruby_level_next_cfp(rb_thread_t *th, rb_control_frame_t *cfp)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00169">vm.c:169</a></div></div> <div class="ttc" id="struct_r_basic_html_a31e86dc428e998786b528fef067424a4"><div class="ttname"><a href="../../d2/d22/struct_r_basic.html#a31e86dc428e998786b528fef067424a4">RBasic::klass</a></div><div class="ttdeci">VALUE klass</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00598">ruby.h:598</a></div></div> <div class="ttc" id="vm_8c_html_a6a5620261a411c4eb4bb08ab9509f706"><div class="ttname"><a href="../../de/de9/vm_8c.html#a6a5620261a411c4eb4bb08ab9509f706">main_to_s</a></div><div class="ttdeci">static VALUE main_to_s(VALUE obj)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l02253">vm.c:2253</a></div></div> <div class="ttc" id="group__defmethod_html_ga879be4a71b806afb2854833fc1c45981"><div class="ttname"><a href="../../d7/d19/group__defmethod.html#ga879be4a71b806afb2854833fc1c45981">rb_undef_method</a></div><div class="ttdeci">void rb_undef_method(VALUE klass, const char *name)</div><div class="ttdef"><b>Definition:</b> <a href="../../d9/d0c/class_8c_source.html#l01228">class.c:1228</a></div></div> <div class="ttc" id="eval__intern_8h_html_a03427c07c33d15b934d5f9f4bcfb1c95"><div class="ttname"><a href="../../dd/dd0/eval__intern_8h.html#a03427c07c33d15b934d5f9f4bcfb1c95">CHECK_STACK_OVERFLOW</a></div><div class="ttdeci">#define CHECK_STACK_OVERFLOW(cfp, margin)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/dd0/eval__intern_8h_source.html#l00177">eval_intern.h:177</a></div></div> <div class="ttc" id="cparse_8c_html_a48bfb6519a45249fb2ec0193ea3b6e1c"><div class="ttname"><a href="../../dc/d0c/cparse_8c.html#a48bfb6519a45249fb2ec0193ea3b6e1c">ID2SYM</a></div><div class="ttdeci">#define ID2SYM(i)</div><div class="ttdef"><b>Definition:</b> <a href="../../dc/d0c/cparse_8c_source.html#l00063">cparse.c:63</a></div></div> <div class="ttc" id="structrb__thread__struct_html_a1b297be9273cc68bd7ec30eb99aada0f"><div class="ttname"><a href="../../d2/d66/structrb__thread__struct.html#a1b297be9273cc68bd7ec30eb99aada0f">rb_thread_struct::value</a></div><div class="ttdeci">VALUE value</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00435">vm_core.h:435</a></div></div> <div class="ttc" id="vm_8c_html_a1561358bc5896c1fd390837e6faeb45f"><div class="ttname"><a href="../../de/de9/vm_8c.html#a1561358bc5896c1fd390837e6faeb45f">rb_iseq_eval_main</a></div><div class="ttdeci">VALUE rb_iseq_eval_main(VALUE iseqval)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01470">vm.c:1470</a></div></div> <div class="ttc" id="gc_8c_html_aac91fd74442afdfbafcdaf2c54f92240"><div class="ttname"><a href="../../d8/d16/gc_8c.html#aac91fd74442afdfbafcdaf2c54f92240">rb_mark_method_entry</a></div><div class="ttdeci">void rb_mark_method_entry(const rb_method_entry_t *me)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d16/gc_8c_source.html#l01665">gc.c:1665</a></div></div> <div class="ttc" id="structrb__control__frame__t_html_aa0ec76f80ebaf0668b688c4e4e5e3e3f"><div class="ttname"><a href="../../dd/d84/structrb__control__frame__t.html#aa0ec76f80ebaf0668b688c4e4e5e3e3f">rb_control_frame_t::me</a></div><div class="ttdeci">const rb_method_entry_t * me</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00343">vm_core.h:343</a></div></div> <div class="ttc" id="vm__insnhelper_8c_html_ac06f2b083c5e0eb199111f9d31fee829"><div class="ttname"><a href="../../d0/db2/vm__insnhelper_8c.html#ac06f2b083c5e0eb199111f9d31fee829">vm_get_cbase</a></div><div class="ttdeci">static VALUE vm_get_cbase(const rb_iseq_t *iseq, const VALUE *lfp, const VALUE *dfp)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/db2/vm__insnhelper_8c_source.html#l01105">vm_insnhelper.c:1105</a></div></div> <div class="ttc" id="structrb__method__definition__struct_html_a7fc0edb8505a61f8ae8bf2544fa7f676"><div class="ttname"><a href="../../d6/dab/structrb__method__definition__struct.html#a7fc0edb8505a61f8ae8bf2544fa7f676">rb_method_definition_struct::original_id</a></div><div class="ttdeci">ID original_id</div><div class="ttdef"><b>Definition:</b> <a href="../../db/d0a/method_8h_source.html#l00061">method.h:61</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_a9b4f42ada717bfbe7a78830639476aed"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#a9b4f42ada717bfbe7a78830639476aed">rb_obj_classname</a></div><div class="ttdeci">const char * rb_obj_classname(VALUE)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/d2a/variable_8c_source.html#l00318">variable.c:318</a></div></div> <div class="ttc" id="sprintf_8c_html_a216ef515f4c79ee337820c5f637b802c"><div class="ttname"><a href="../../d9/d2d/sprintf_8c.html#a216ef515f4c79ee337820c5f637b802c">rb_enc_sprintf</a></div><div class="ttdeci">VALUE rb_enc_sprintf(rb_encoding *enc, const char *format,...)</div><div class="ttdef"><b>Definition:</b> <a href="../../d9/d2d/sprintf_8c_source.html#l01184">sprintf.c:1184</a></div></div> <div class="ttc" id="gc_8c_html_a53016811c87ff4c3ea839c9e85a9a9a4"><div class="ttname"><a href="../../d8/d16/gc_8c.html#a53016811c87ff4c3ea839c9e85a9a9a4">rb_gc_force_recycle</a></div><div class="ttdeci">void rb_gc_force_recycle(VALUE p)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d16/gc_8c_source.html#l02345">gc.c:2345</a></div></div> <div class="ttc" id="structrb__proc__t_html_acdb9a8c85422bf299615f7942ffbc916"><div class="ttname"><a href="../../d5/d77/structrb__proc__t.html#acdb9a8c85422bf299615f7942ffbc916">rb_proc_t::envval</a></div><div class="ttdeci">VALUE envval</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00529">vm_core.h:529</a></div></div> <div class="ttc" id="vm__core_8h_html_a8deb84ec6023e3229db88ac2c9da6138"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a8deb84ec6023e3229db88ac2c9da6138">GET_THREAD</a></div><div class="ttdeci">#define GET_THREAD()</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00690">vm_core.h:690</a></div></div> <div class="ttc" id="structrb__vm__struct_html_a81c2ebf1074cb61040daa9389f5bed80"><div class="ttname"><a href="../../db/d74/structrb__vm__struct.html#a81c2ebf1074cb61040daa9389f5bed80">rb_vm_struct::thgroup_default</a></div><div class="ttdeci">VALUE thgroup_default</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00286">vm_core.h:286</a></div></div> <div class="ttc" id="vm_8c_html_ac6493695633068f17f9c245d529698d9"><div class="ttname"><a href="../../de/de9/vm_8c.html#ac6493695633068f17f9c245d529698d9">vm_opt_method_table</a></div><div class="ttdeci">static st_table * vm_opt_method_table</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01041">vm.c:1041</a></div></div> <div class="ttc" id="vm__core_8h_html_a15218fe6d89c7897abd5a8ad8c9bc52f"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a15218fe6d89c7897abd5a8ad8c9bc52f">VM_FRAME_FLAG_PASSED</a></div><div class="ttdeci">#define VM_FRAME_FLAG_PASSED</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00588">vm_core.h:588</a></div></div> <div class="ttc" id="date__core_8c_html_a8157485e687f56a6ae2f3ee0a8cb1580"><div class="ttname"><a href="../../dd/dc0/date__core_8c.html#a8157485e687f56a6ae2f3ee0a8cb1580">sym</a></div><div class="ttdeci">#define sym(x)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/dc0/date__core_8c_source.html#l03748">date_core.c:3748</a></div></div> <div class="ttc" id="debug_8h_html_a08a47aff6867e5ae146382e66d2cc26b"><div class="ttname"><a href="../../db/d16/debug_8h.html#a08a47aff6867e5ae146382e66d2cc26b">dp</a></div><div class="ttdeci">#define dp(v)</div><div class="ttdef"><b>Definition:</b> <a href="../../db/d16/debug_8h_source.html#l00023">debug.h:23</a></div></div> <div class="ttc" id="vm__insnhelper_8c_html_a30340566da5743c4d660c8931dffd86e"><div class="ttname"><a href="../../d0/db2/vm__insnhelper_8c.html#a30340566da5743c4d660c8931dffd86e">vm_push_frame</a></div><div class="ttdeci">static rb_control_frame_t * vm_push_frame(rb_thread_t *th, const rb_iseq_t *iseq, VALUE type, VALUE self, VALUE specval, const VALUE *pc, VALUE *sp, VALUE *lfp, int local_size)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/db2/vm__insnhelper_8c_source.html#l00026">vm_insnhelper.c:26</a></div></div> <div class="ttc" id="struct_r_node_html"><div class="ttname"><a href="../../dd/de6/struct_r_node.html">RNode</a></div><div class="ttdef"><b>Definition:</b> <a href="../../d1/d77/node_8h_source.html#l00235">node.h:235</a></div></div> <div class="ttc" id="structiseq__catch__table__entry_html_ac2b2471bbfb0ada41e777d8e1919ba00"><div class="ttname"><a href="../../dc/d07/structiseq__catch__table__entry.html#ac2b2471bbfb0ada41e777d8e1919ba00">iseq_catch_table_entry::type</a></div><div class="ttdeci">enum iseq_catch_table_entry::catch_type type</div></div> <div class="ttc" id="win32ole_8c_html_a4b5a598a4f53b3724549c48dcfbf7c48"><div class="ttname"><a href="../../d2/d99/win32ole_8c.html#a4b5a598a4f53b3724549c48dcfbf7c48">p</a></div><div class="ttdeci">Win32OLEIDispatch * p</div><div class="ttdef"><b>Definition:</b> <a href="../../d2/d99/win32ole_8c_source.html#l00778">win32ole.c:778</a></div></div> <div class="ttc" id="structrb__iseq__struct_html_a35596da255ce28a5d1da94c2cc508c7d"><div class="ttname"><a href="../../d6/de3/structrb__iseq__struct.html#a35596da255ce28a5d1da94c2cc508c7d">rb_iseq_struct::name</a></div><div class="ttdeci">VALUE name</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00168">vm_core.h:168</a></div></div> <div class="ttc" id="eval_8c_html_a237939d28c83950b84fb6a45ccca53a0"><div class="ttname"><a href="../../d3/d57/eval_8c.html#a237939d28c83950b84fb6a45ccca53a0">rb_exc_raise</a></div><div class="ttdeci">void rb_exc_raise(VALUE mesg)</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d57/eval_8c_source.html#l00460">eval.c:460</a></div></div> <div class="ttc" id="vm__method_8c_html"><div class="ttname"><a href="../../de/d63/vm__method_8c.html">vm_method.c</a></div></div> <div class="ttc" id="vm__core_8h_html_a018f55ffc774044f51407f692f07c0d3"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a018f55ffc774044f51407f692f07c0d3">RUBY_VM_THREAD_STACK_SIZE</a></div><div class="ttdeci">#define RUBY_VM_THREAD_STACK_SIZE</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00521">vm_core.h:521</a></div></div> <div class="ttc" id="structrb__thread__struct_html_a3fd7aab45a1c539bc9ca022acfc1ad51"><div class="ttname"><a href="../../d2/d66/structrb__thread__struct.html#a3fd7aab45a1c539bc9ca022acfc1ad51">rb_thread_struct::stack</a></div><div class="ttdeci">VALUE * stack</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00398">vm_core.h:398</a></div></div> <div class="ttc" id="group__class_html_ga3778543a2798adab7bc12ed325c0b5d0"><div class="ttname"><a href="../../de/ddf/group__class.html#ga3778543a2798adab7bc12ed325c0b5d0">rb_singleton_class</a></div><div class="ttdeci">VALUE rb_singleton_class(VALUE obj)</div><div class="ttdoc">Returns the singleton class of obj. </div><div class="ttdef"><b>Definition:</b> <a href="../../d9/d0c/class_8c_source.html#l01316">class.c:1316</a></div></div> <div class="ttc" id="vm_8c_html_a50c13f51eaa186494807612609f95a97"><div class="ttname"><a href="../../de/de9/vm_8c.html#a50c13f51eaa186494807612609f95a97">Init_top_self</a></div><div class="ttdeci">void Init_top_self(void)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l02265">vm.c:2265</a></div></div> <div class="ttc" id="vm_8c_html_a2525811685e5b25a1d89a966f862fbea"><div class="ttname"><a href="../../de/de9/vm_8c.html#a2525811685e5b25a1d89a966f862fbea">vm_yield_with_cref</a></div><div class="ttdeci">static VALUE vm_yield_with_cref(rb_thread_t *th, int argc, const VALUE *argv, const NODE *cref)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00660">vm.c:660</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_ac4f895997656c2abd27a29a8b8e982ca"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#ac4f895997656c2abd27a29a8b8e982ca">RB_TYPE_P</a></div><div class="ttdeci">#define RB_TYPE_P(obj, type)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l01353">ruby.h:1353</a></div></div> <div class="ttc" id="vm_8c_html_ad686a96329c814869e6200edfac5107a"><div class="ttname"><a href="../../de/de9/vm_8c.html#ad686a96329c814869e6200edfac5107a">check_env_value</a></div><div class="ttdeci">static VALUE check_env_value(VALUE envval)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00334">vm.c:334</a></div></div> <div class="ttc" id="structrb__iseq__struct_html_af8bc7dbae6f61d836b5bb9fb50b6cfb8"><div class="ttname"><a href="../../d6/de3/structrb__iseq__struct.html#af8bc7dbae6f61d836b5bb9fb50b6cfb8">rb_iseq_struct::type</a></div><div class="ttdeci">enum rb_iseq_struct::iseq_type type</div></div> <div class="ttc" id="vm_8c_html_a24b81b57763993a6328a2451562e5995"><div class="ttname"><a href="../../de/de9/vm_8c.html#a24b81b57763993a6328a2451562e5995">mark_event_hooks</a></div><div class="ttdeci">static void mark_event_hooks(rb_event_hook_t *hook)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01572">vm.c:1572</a></div></div> <div class="ttc" id="intern_8h_html_ae311913aafd9469008cdf681aeae9ed6"><div class="ttname"><a href="../../db/d2e/intern_8h.html#ae311913aafd9469008cdf681aeae9ed6">rb_binding_new</a></div><div class="ttdeci">VALUE rb_binding_new(void)</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/dda/proc_8c_source.html#l00311">proc.c:311</a></div></div> <div class="ttc" id="eval__intern_8h_html_a4d06135dea1a72a3ab73b20cc1a9fc55"><div class="ttname"><a href="../../dd/dd0/eval__intern_8h.html#a4d06135dea1a72a3ab73b20cc1a9fc55">TH_POP_TAG</a></div><div class="ttdeci">#define TH_POP_TAG()</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/dd0/eval__intern_8h_source.html#l00118">eval_intern.h:118</a></div></div> <div class="ttc" id="structrb__iseq__struct_html_a06859fa5de56f2ede3cb692f1d9215e2"><div class="ttname"><a href="../../d6/de3/structrb__iseq__struct.html#a06859fa5de56f2ede3cb692f1d9215e2">rb_iseq_struct::filename</a></div><div class="ttdeci">VALUE filename</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00169">vm_core.h:169</a></div></div> <div class="ttc" id="vm_8c_html_a31455d8d3483e811bf2dfe55220e0a2d"><div class="ttname"><a href="../../de/de9/vm_8c.html#a31455d8d3483e811bf2dfe55220e0a2d">m_core_define_method</a></div><div class="ttdeci">static VALUE m_core_define_method(VALUE self, VALUE cbase, VALUE sym, VALUE iseqval)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01982">vm.c:1982</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_a56d620b94b668ed7665d1616b2c54e48"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#a56d620b94b668ed7665d1616b2c54e48">MEMZERO</a></div><div class="ttdeci">#define MEMZERO(p, type, n)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l01052">ruby.h:1052</a></div></div> <div class="ttc" id="vm__exec_8c_html_a6f84f6d4b822e9b021a1e64cacf21847"><div class="ttname"><a href="../../df/d38/vm__exec_8c.html#a6f84f6d4b822e9b021a1e64cacf21847">finish_insn_seq</a></div><div class="ttdeci">static VALUE finish_insn_seq[1]</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d38/vm__exec_8c_source.html#l00033">vm_exec.c:33</a></div></div> <div class="ttc" id="vm_8c_html_a2d68db6481cad1995cbdb77a8ddd5291"><div class="ttname"><a href="../../de/de9/vm_8c.html#a2d68db6481cad1995cbdb77a8ddd5291">rb_iter_break</a></div><div class="ttdeci">void rb_iter_break(void)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01034">vm.c:1034</a></div></div> <div class="ttc" id="vm_8c_html_a7920e56cee3ddd3b387cbe2d69b69544"><div class="ttname"><a href="../../de/de9/vm_8c.html#a7920e56cee3ddd3b387cbe2d69b69544">vm_make_env_each</a></div><div class="ttdeci">static VALUE vm_make_env_each(rb_thread_t *const th, rb_control_frame_t *const cfp, VALUE *envptr, VALUE *const endptr)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00347">vm.c:347</a></div></div> <div class="ttc" id="vm_8c_html_aa938e139dcf9509037140019da6f4a47"><div class="ttname"><a href="../../de/de9/vm_8c.html#aa938e139dcf9509037140019da6f4a47">vm_set_main_stack</a></div><div class="ttdeci">static void vm_set_main_stack(rb_thread_t *th, VALUE iseqval)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00146">vm.c:146</a></div></div> <div class="ttc" id="array_8c_html_a5c6b248d971f78b215844c60cdb00020"><div class="ttname"><a href="../../dc/dcc/array_8c.html#a5c6b248d971f78b215844c60cdb00020">rb_ary_free</a></div><div class="ttdeci">void rb_ary_free(VALUE ary)</div><div class="ttdef"><b>Definition:</b> <a href="../../dc/dcc/array_8c_source.html#l00386">array.c:386</a></div></div> <div class="ttc" id="structiseq__catch__table__entry_html_a1c2635a230708dfba8857a6d6509b6a1ab0479ba418aae875e074a9d1d32f77e4"><div class="ttname"><a href="../../dc/d07/structiseq__catch__table__entry.html#a1c2635a230708dfba8857a6d6509b6a1ab0479ba418aae875e074a9d1d32f77e4">iseq_catch_table_entry::CATCH_TYPE_RESCUE</a></div><div class="ttdef"><b>Definition:</b> <a href="../../d7/dc8/iseq_8h_source.html#l00054">iseq.h:54</a></div></div> <div class="ttc" id="vm_8c_html_a7417e683ea286195e2514eca8cfbf601"><div class="ttname"><a href="../../de/de9/vm_8c.html#a7417e683ea286195e2514eca8cfbf601">rb_thread_method_id_and_class</a></div><div class="ttdeci">int rb_thread_method_id_and_class(rb_thread_t *th, ID *idp, VALUE *klassp)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01484">vm.c:1484</a></div></div> <div class="ttc" id="vm_8c_html_a8254b2c9550e30be25c3115308865c28"><div class="ttname"><a href="../../de/de9/vm_8c.html#a8254b2c9550e30be25c3115308865c28">th_init</a></div><div class="ttdeci">static void th_init(rb_thread_t *th, VALUE self)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01886">vm.c:1886</a></div></div> <div class="ttc" id="vm__insnhelper_8c_html_a2f52576fff162c56bc4ccdc7acadcdf5"><div class="ttname"><a href="../../d0/db2/vm__insnhelper_8c.html#a2f52576fff162c56bc4ccdc7acadcdf5">lfp_svar_get</a></div><div class="ttdeci">static VALUE lfp_svar_get(rb_thread_t *th, VALUE *lfp, rb_num_t key)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/db2/vm__insnhelper_8c_source.html#l00980">vm_insnhelper.c:980</a></div></div> <div class="ttc" id="vm_8c_html_a19074acfc80b03239ef6b07b13a4b460"><div class="ttname"><a href="../../de/de9/vm_8c.html#a19074acfc80b03239ef6b07b13a4b460">add_opt_method</a></div><div class="ttdeci">static void add_opt_method(VALUE klass, ID mid, VALUE bop)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01055">vm.c:1055</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_a79041aa2bc7439c11906a86f82a52eb6"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#a79041aa2bc7439c11906a86f82a52eb6">ALLOC_N</a></div><div class="ttdeci">#define ALLOC_N(type, n)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l01034">ruby.h:1034</a></div></div> <div class="ttc" id="structrb__vm__struct_html_a3ee23d493b793fc91dd61376593e8f17"><div class="ttname"><a href="../../db/d74/structrb__vm__struct.html#a3ee23d493b793fc91dd61376593e8f17">rb_vm_struct::src_encoding_index</a></div><div class="ttdeci">int src_encoding_index</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00314">vm_core.h:314</a></div></div> <div class="ttc" id="eval__intern_8h_html_a3441e3967c633da99c3dcd025494053e"><div class="ttname"><a href="../../dd/dd0/eval__intern_8h.html#a3441e3967c633da99c3dcd025494053e">EXEC_TAG</a></div><div class="ttdeci">#define EXEC_TAG()</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/dd0/eval__intern_8h_source.html#l00130">eval_intern.h:130</a></div></div> <div class="ttc" id="structrb__thread__struct_html_ab0435aec1daf59ef6caceee7004a7cfb"><div class="ttname"><a href="../../d2/d66/structrb__thread__struct.html#ab0435aec1daf59ef6caceee7004a7cfb">rb_thread_struct::locking_mutex</a></div><div class="ttdeci">VALUE locking_mutex</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00443">vm_core.h:443</a></div></div> <div class="ttc" id="structrb__event__hook__struct_html_aa184927c156193e1506cf6649c036e67"><div class="ttname"><a href="../../d8/d86/structrb__event__hook__struct.html#aa184927c156193e1506cf6649c036e67">rb_event_hook_struct::next</a></div><div class="ttdeci">struct rb_event_hook_struct * next</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l01423">ruby.h:1423</a></div></div> <div class="ttc" id="vm__exec_8c_html"><div class="ttname"><a href="../../df/d38/vm__exec_8c.html">vm_exec.c</a></div></div> <div class="ttc" id="structrb__control__frame__t_html_af3314cb37c8a27353101bf6f35574946"><div class="ttname"><a href="../../dd/d84/structrb__control__frame__t.html#af3314cb37c8a27353101bf6f35574946">rb_control_frame_t::lfp</a></div><div class="ttdeci">VALUE * lfp</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00339">vm_core.h:339</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_a57c96ead3ef230b4838e65fe037c346e"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#a57c96ead3ef230b4838e65fe037c346e">rb_cObject</a></div><div class="ttdeci">RUBY_EXTERN VALUE rb_cObject</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l01246">ruby.h:1246</a></div></div> <div class="ttc" id="error_8c_html_a95ad3953d535707e2cf2b1d837f5e253"><div class="ttname"><a href="../../db/dcc/error_8c.html#a95ad3953d535707e2cf2b1d837f5e253">rb_eRuntimeError</a></div><div class="ttdeci">VALUE rb_eRuntimeError</div><div class="ttdef"><b>Definition:</b> <a href="../../db/dcc/error_8c_source.html#l00466">error.c:466</a></div></div> <div class="ttc" id="cparse_8c_html_a73ce5202e6172d3ad0bab7d1e0df9dae"><div class="ttname"><a href="../../dc/d0c/cparse_8c.html#a73ce5202e6172d3ad0bab7d1e0df9dae">SYM2ID</a></div><div class="ttdeci">#define SYM2ID(v)</div><div class="ttdef"><b>Definition:</b> <a href="../../dc/d0c/cparse_8c_source.html#l00066">cparse.c:66</a></div></div> <div class="ttc" id="intern_8h_html_acd98b4a614a453bc439758cd68a32985"><div class="ttname"><a href="../../db/d2e/intern_8h.html#acd98b4a614a453bc439758cd68a32985">rb_block_lambda</a></div><div class="ttdeci">VALUE rb_block_lambda(void)</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/dda/proc_8c_source.html#l00477">proc.c:477</a></div></div> <div class="ttc" id="vm_8c_html_a0310d690f45eb1cba3a726e36c65385b"><div class="ttname"><a href="../../de/de9/vm_8c.html#a0310d690f45eb1cba3a726e36c65385b">ruby_threadptr_data_type</a></div><div class="ttdeci">const rb_data_type_t ruby_threadptr_data_type</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01851">vm.c:1851</a></div></div> <div class="ttc" id="vm__core_8h_html_a491d77ec5480e1530e447dbb42481f5b"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a491d77ec5480e1530e447dbb42481f5b">GetBindingPtr</a></div><div class="ttdeci">#define GetBindingPtr(obj, ptr)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00547">vm_core.h:547</a></div></div> <div class="ttc" id="error_8c_html_a2a5803d0e60feb0ed8f37e7a38e8df47"><div class="ttname"><a href="../../db/dcc/error_8c.html#a2a5803d0e60feb0ed8f37e7a38e8df47">rb_typeddata_is_kind_of</a></div><div class="ttdeci">int rb_typeddata_is_kind_of(VALUE obj, const rb_data_type_t *data_type)</div><div class="ttdef"><b>Definition:</b> <a href="../../db/dcc/error_8c_source.html#l00430">error.c:430</a></div></div> <div class="ttc" id="vm__core_8h_html_ab6a8242588889813903cd5d577ed906e"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#ab6a8242588889813903cd5d577ed906e">rb_vm_t</a></div><div class="ttdeci">struct rb_vm_struct rb_vm_t</div></div> <div class="ttc" id="vm_8c_html_aff09679bd9e7c102ed3e3c3c6c04e182"><div class="ttname"><a href="../../de/de9/vm_8c.html#aff09679bd9e7c102ed3e3c3c6c04e182">rb_vm_inc_const_missing_count</a></div><div class="ttdeci">void rb_vm_inc_const_missing_count(void)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00088">vm.c:88</a></div></div> <div class="ttc" id="vm_8c_html_a83ac3f8bc164313d7a1b451f2d2cdabf"><div class="ttname"><a href="../../de/de9/vm_8c.html#a83ac3f8bc164313d7a1b451f2d2cdabf">rb_vm_set_progname</a></div><div class="ttdeci">void rb_vm_set_progname(VALUE filename)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l02212">vm.c:2212</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_a56629236cdaf6ddac6d05cd5ae21a2b4"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#a56629236cdaf6ddac6d05cd5ae21a2b4">rb_cBasicObject</a></div><div class="ttdeci">RUBY_EXTERN VALUE rb_cBasicObject</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l01245">ruby.h:1245</a></div></div> <div class="ttc" id="structrb__vm__struct_html_a2f1db803f6eb0ccee7e93bb105cccb9e"><div class="ttname"><a href="../../db/d74/structrb__vm__struct.html#a2f1db803f6eb0ccee7e93bb105cccb9e">rb_vm_struct::trap_list</a></div><div class="ttdeci">struct rb_vm_struct::@72 trap_list[RUBY_NSIG]</div></div> <div class="ttc" id="array_8c_html_a9518114fd36cb4ef4656ec1dc63348c9"><div class="ttname"><a href="../../dc/dcc/array_8c.html#a9518114fd36cb4ef4656ec1dc63348c9">rb_ary_new</a></div><div class="ttdeci">VALUE rb_ary_new(void)</div><div class="ttdef"><b>Definition:</b> <a href="../../dc/dcc/array_8c_source.html#l00339">array.c:339</a></div></div> <div class="ttc" id="eval__intern_8h_html_a24884166ae699029ade34fd36bedd688"><div class="ttname"><a href="../../dd/dd0/eval__intern_8h.html#a24884166ae699029ade34fd36bedd688">JUMP_TAG</a></div><div class="ttdeci">#define JUMP_TAG(st)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/dd0/eval__intern_8h_source.html#l00137">eval_intern.h:137</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_a4832bad8845a35fc50f7a160901854a1"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#a4832bad8845a35fc50f7a160901854a1">NIL_P</a></div><div class="ttdeci">#define NIL_P(v)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00374">ruby.h:374</a></div></div> <div class="ttc" id="vm__insnhelper_8h_html_adc65dee2ab1f2e022731b16355888ecb"><div class="ttname"><a href="../../d2/d5f/vm__insnhelper_8h.html#adc65dee2ab1f2e022731b16355888ecb">COPY_CREF</a></div><div class="ttdeci">#define COPY_CREF(c1, c2)</div><div class="ttdef"><b>Definition:</b> <a href="../../d2/d5f/vm__insnhelper_8h_source.html#l00152">vm_insnhelper.h:152</a></div></div> <div class="ttc" id="structrb__thread__struct_html_aa368906b4d6c4d26dc7f649b7c8fb6ab"><div class="ttname"><a href="../../d2/d66/structrb__thread__struct.html#aa368906b4d6c4d26dc7f649b7c8fb6ab">rb_thread_struct::event_hooks</a></div><div class="ttdeci">rb_event_hook_t * event_hooks</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00478">vm_core.h:478</a></div></div> <div class="ttc" id="vm__core_8h_html_ab10d0a221f4d7a706701b806c8135fd7"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#ab10d0a221f4d7a706701b806c8135fd7">UNLIKELY</a></div><div class="ttdeci">#define UNLIKELY(x)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00111">vm_core.h:111</a></div></div> <div class="ttc" id="vm_8c_html_a96a10fbdd9c8c5718f51516c714da0b1"><div class="ttname"><a href="../../de/de9/vm_8c.html#a96a10fbdd9c8c5718f51516c714da0b1">rb_backref_set</a></div><div class="ttdeci">void rb_backref_set(VALUE val)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00749">vm.c:749</a></div></div> <div class="ttc" id="group__class_html_ga15d068dbe88a3bab3700b03bebb7fbac"><div class="ttname"><a href="../../de/ddf/group__class.html#ga15d068dbe88a3bab3700b03bebb7fbac">rb_define_class</a></div><div class="ttdeci">VALUE rb_define_class(const char *name, VALUE super)</div><div class="ttdoc">Defines a top-level class. </div><div class="ttdef"><b>Definition:</b> <a href="../../d9/d0c/class_8c_source.html#l00469">class.c:469</a></div></div> <div class="ttc" id="structrb__thread__struct_html_a7863ca61434f5835cbe70aa14b0273c1"><div class="ttname"><a href="../../d2/d66/structrb__thread__struct.html#a7863ca61434f5835cbe70aa14b0273c1">rb_thread_struct::machine_regs</a></div><div class="ttdeci">jmp_buf machine_regs</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00471">vm_core.h:471</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_a861b20872f7d24f1c5f2da5261037322"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#a861b20872f7d24f1c5f2da5261037322">rb_define_const</a></div><div class="ttdeci">void rb_define_const(VALUE, const char *, VALUE)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/d2a/variable_8c_source.html#l01923">variable.c:1923</a></div></div> <div class="ttc" id="vm_8c_html_a16e2c046b4cf83df26232c0869ce7643"><div class="ttname"><a href="../../de/de9/vm_8c.html#a16e2c046b4cf83df26232c0869ce7643">collect_local_variables_in_iseq</a></div><div class="ttdeci">static int collect_local_variables_in_iseq(rb_iseq_t *iseq, const VALUE ary)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00432">vm.c:432</a></div></div> <div class="ttc" id="structrb__thread__struct_html_a4a62159d10487cfda82e358280f10625"><div class="ttname"><a href="../../d2/d66/structrb__thread__struct.html#a4a62159d10487cfda82e358280f10625">rb_thread_struct::local_svar</a></div><div class="ttdeci">VALUE local_svar</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00424">vm_core.h:424</a></div></div> <div class="ttc" id="vm_8c_html_a600dc9ffdba414e21dacfe809c4a9ec8"><div class="ttname"><a href="../../de/de9/vm_8c.html#a600dc9ffdba414e21dacfe809c4a9ec8">rb_cRubyVM</a></div><div class="ttdeci">VALUE rb_cRubyVM</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00035">vm.c:35</a></div></div> <div class="ttc" id="vm_8c_html_ad3546781259eb3e30b64580b1f35e6fb"><div class="ttname"><a href="../../de/de9/vm_8c.html#ad3546781259eb3e30b64580b1f35e6fb">check_block</a></div><div class="ttdeci">static const rb_block_t * check_block(rb_thread_t *th)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00648">vm.c:648</a></div></div> <div class="ttc" id="gc_8h_html_a2aa4d10eb84bae94811007f68c795fb7"><div class="ttname"><a href="../../d0/daa/gc_8h.html#a2aa4d10eb84bae94811007f68c795fb7">RUBY_MARK_ENTER</a></div><div class="ttdeci">#define RUBY_MARK_ENTER(msg)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/daa/gc_8h_source.html#l00053">gc.h:53</a></div></div> <div class="ttc" id="vm_8c_html_a469ecc9b7152b6bb8e3589ca48141f5e"><div class="ttname"><a href="../../de/de9/vm_8c.html#a469ecc9b7152b6bb8e3589ca48141f5e">vm_define_method</a></div><div class="ttdeci">static void vm_define_method(rb_thread_t *th, VALUE obj, ID id, VALUE iseqval, rb_num_t is_singleton, NODE *cref)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01933">vm.c:1933</a></div></div> <div class="ttc" id="structrb__thread__struct_html_ac0ba34f711c43f831fe95e9a9434353f"><div class="ttname"><a href="../../d2/d66/structrb__thread__struct.html#ac0ba34f711c43f831fe95e9a9434353f">rb_thread_struct::top_self</a></div><div class="ttdeci">VALUE top_self</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00417">vm_core.h:417</a></div></div> <div class="ttc" id="structrb__vm__struct_html_a97f5b4a0de8b22b5b2215e311bd51eac"><div class="ttname"><a href="../../db/d74/structrb__vm__struct.html#a97f5b4a0de8b22b5b2215e311bd51eac">rb_vm_struct::event_hooks</a></div><div class="ttdeci">rb_event_hook_t * event_hooks</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00312">vm_core.h:312</a></div></div> <div class="ttc" id="version_8c_html_aca7df2b4c101d2d9bc946de586de224c"><div class="ttname"><a href="../../d2/d0b/version_8c.html#aca7df2b4c101d2d9bc946de586de224c">ruby_engine_name</a></div><div class="ttdeci">VALUE ruby_engine_name</div><div class="ttdef"><b>Definition:</b> <a href="../../d2/d0b/version_8c_source.html#l00065">version.c:65</a></div></div> <div class="ttc" id="ruby_8c_html_ad1447518f4372828b8435ae82e48499e"><div class="ttname"><a href="../../df/d77/ruby_8c.html#ad1447518f4372828b8435ae82e48499e">argc</a></div><div class="ttdeci">int argc</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d77/ruby_8c_source.html#l00120">ruby.c:120</a></div></div> <div class="ttc" id="structrb__vm__struct_html_a545233706d1cdd425f64edda8fc67dc7"><div class="ttname"><a href="../../db/d74/structrb__vm__struct.html#a545233706d1cdd425f64edda8fc67dc7">rb_vm_struct::loading_table</a></div><div class="ttdeci">struct st_table * loading_table</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00303">vm_core.h:303</a></div></div> <div class="ttc" id="vm__core_8h_html_a2524f590c07fceb689b2b7d53114ff5f"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a2524f590c07fceb689b2b7d53114ff5f">VM_FRAME_MAGIC_CLASS</a></div><div class="ttdeci">#define VM_FRAME_MAGIC_CLASS</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00574">vm_core.h:574</a></div></div> <div class="ttc" id="vm__insnhelper_8c_html_aa231905b7ab6df0352fe4332ff5f5deb"><div class="ttname"><a href="../../d0/db2/vm__insnhelper_8c.html#aa231905b7ab6df0352fe4332ff5f5deb">vm_get_cref</a></div><div class="ttdeci">static NODE * vm_get_cref(const rb_iseq_t *iseq, const VALUE *lfp, const VALUE *dfp)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/db2/vm__insnhelper_8c_source.html#l01077">vm_insnhelper.c:1077</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_aba0717d2689eb68797421a02ab9295c6"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#aba0717d2689eb68797421a02ab9295c6">Qfalse</a></div><div class="ttdeci">#define Qfalse</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00365">ruby.h:365</a></div></div> <div class="ttc" id="vm_8c_html_aaa1408f30b8f6129882c3f99355e63cf"><div class="ttname"><a href="../../de/de9/vm_8c.html#aaa1408f30b8f6129882c3f99355e63cf">ruby_thread_init</a></div><div class="ttdeci">static VALUE ruby_thread_init(VALUE self)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01910">vm.c:1910</a></div></div> <div class="ttc" id="vm_8c_html_ae13ac094cd9fdca07b8abed66a9fd5c1"><div class="ttname"><a href="../../de/de9/vm_8c.html#ae13ac094cd9fdca07b8abed66a9fd5c1">thread_memsize</a></div><div class="ttdeci">static size_t thread_memsize(const void *ptr)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01831">vm.c:1831</a></div></div> <div class="ttc" id="thread_8c_html_a20d8df830e19c1e62520540c66aaf3bb"><div class="ttname"><a href="../../d3/de7/thread_8c.html#a20d8df830e19c1e62520540c66aaf3bb">ruby_thread_init_stack</a></div><div class="ttdeci">void ruby_thread_init_stack(rb_thread_t *th)</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/de7/thread_8c_source.html#l00433">thread.c:433</a></div></div> <div class="ttc" id="vm_8c_html_a2290ee4bcece4d937e5e04cf65c1771c"><div class="ttname"><a href="../../de/de9/vm_8c.html#a2290ee4bcece4d937e5e04cf65c1771c">collect_local_variables_in_env</a></div><div class="ttdeci">static int collect_local_variables_in_env(rb_env_t *env, const VALUE ary)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00446">vm.c:446</a></div></div> <div class="ttc" id="structrb__method__entry__struct_html"><div class="ttname"><a href="../../d7/db7/structrb__method__entry__struct.html">rb_method_entry_struct</a></div><div class="ttdef"><b>Definition:</b> <a href="../../db/d0a/method_8h_source.html#l00075">method.h:75</a></div></div> <div class="ttc" id="eval__intern_8h_html_a82e8bb282a1d35fcc453335b090bd4a7"><div class="ttname"><a href="../../dd/dd0/eval__intern_8h.html#a82e8bb282a1d35fcc453335b090bd4a7">TAG_REDO</a></div><div class="ttdeci">#define TAG_REDO</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/dd0/eval__intern_8h_source.html#l00156">eval_intern.h:156</a></div></div> <div class="ttc" id="gc_8c_html_adc7efe8997f04b5c275d7e7aed9169e3"><div class="ttname"><a href="../../d8/d16/gc_8c.html#adc7efe8997f04b5c275d7e7aed9169e3">rb_gc_register_mark_object</a></div><div class="ttdeci">void rb_gc_register_mark_object(VALUE obj)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d16/gc_8c_source.html#l00971">gc.c:971</a></div></div> <div class="ttc" id="structrb__objspace_html"><div class="ttname"><a href="../../d7/dc0/structrb__objspace.html">rb_objspace</a></div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d16/gc_8c_source.html#l00351">gc.c:351</a></div></div> <div class="ttc" id="vm_8c_html_a87fd97e34aa2d7399db658edb02ea083"><div class="ttname"><a href="../../de/de9/vm_8c.html#a87fd97e34aa2d7399db658edb02ea083">rb_vm_invoke_proc</a></div><div class="ttdeci">VALUE rb_vm_invoke_proc(rb_thread_t *th, rb_proc_t *proc, VALUE self, int argc, const VALUE *argv, const rb_block_t *blockptr)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00674">vm.c:674</a></div></div> <div class="ttc" id="defines_8h_html_ae8f8903fe59a574e940ed3e12de89fbe"><div class="ttname"><a href="../../d8/db0/defines_8h.html#ae8f8903fe59a574e940ed3e12de89fbe">RUBY_FUNC_EXPORTED</a></div><div class="ttdeci">#define RUBY_FUNC_EXPORTED</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/db0/defines_8h_source.html#l00254">defines.h:254</a></div></div> <div class="ttc" id="structrb__thread__struct_html_aad6cc8c9d9f511c12cca5af8c8aa6e77"><div class="ttname"><a href="../../d2/d66/structrb__thread__struct.html#aad6cc8c9d9f511c12cca5af8c8aa6e77">rb_thread_struct::base_block</a></div><div class="ttdeci">rb_block_t * base_block</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00421">vm_core.h:421</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_a5f1cc49c4da51d5bdffa64be79ff6fb0"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#a5f1cc49c4da51d5bdffa64be79ff6fb0">T_NODE</a></div><div class="ttdeci">#define T_NODE</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00434">ruby.h:434</a></div></div> <div class="ttc" id="intern_8h_html_aae711a904c63bacc1664e9ee240fc9b3"><div class="ttname"><a href="../../db/d2e/intern_8h.html#aae711a904c63bacc1664e9ee240fc9b3">ID_ALLOCATOR</a></div><div class="ttdeci">#define ID_ALLOCATOR</div><div class="ttdef"><b>Definition:</b> <a href="../../db/d2e/intern_8h_source.html#l00054">intern.h:54</a></div></div> <div class="ttc" id="vm_8c_html_aa1a13d72336a9859fa7c70bcde97b4f9"><div class="ttname"><a href="../../de/de9/vm_8c.html#aa1a13d72336a9859fa7c70bcde97b4f9">rb_gc_stack_start</a></div><div class="ttdeci">VALUE * rb_gc_stack_start</div></div> <div class="ttc" id="intern_8h_html_a4419d9ed52af0d0dbdcb02f491b1d88d"><div class="ttname"><a href="../../db/d2e/intern_8h.html#a4419d9ed52af0d0dbdcb02f491b1d88d">rb_obj_alloc</a></div><div class="ttdeci">VALUE rb_obj_alloc(VALUE)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/de1/object_8c_source.html#l01601">object.c:1601</a></div></div> <div class="ttc" id="win32_8c_html_a6ce68847c12434f60d1b2654a3dc3409"><div class="ttname"><a href="../../d5/df2/win32_8c.html#a6ce68847c12434f60d1b2654a3dc3409">err</a></div><div class="ttdeci">int err</div><div class="ttdef"><b>Definition:</b> <a href="../../d5/df2/win32_8c_source.html#l00078">win32.c:78</a></div></div> <div class="ttc" id="id_8h_html_a08dd4fbd61c5fde369edd59783f753b3aca22aa169ad0cbbac8c17ce3c79bf4d4"><div class="ttname"><a href="../../df/db9/id_8h.html#a08dd4fbd61c5fde369edd59783f753b3aca22aa169ad0cbbac8c17ce3c79bf4d4">id_core_define_method</a></div><div class="ttdef"><b>Definition:</b> <a href="../../df/db9/id_8h_source.html#l00069">id.h:69</a></div></div> <div class="ttc" id="vm_8c_html_a38087978d8bc36f8cd48b62b70b15000"><div class="ttname"><a href="../../de/de9/vm_8c.html#a38087978d8bc36f8cd48b62b70b15000">rb_vm_make_env_object</a></div><div class="ttdeci">RUBY_FUNC_EXPORTED VALUE rb_vm_make_env_object(rb_thread_t *th, rb_control_frame_t *cfp)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00474">vm.c:474</a></div></div> <div class="ttc" id="eval__intern_8h_html_a73efe787c131b385070f25d18b7c9aa4"><div class="ttname"><a href="../../dd/dd0/eval__intern_8h.html#a73efe787c131b385070f25d18b7c9aa4">EXIT_FAILURE</a></div><div class="ttdeci">#define EXIT_FAILURE</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/dd0/eval__intern_8h_source.html#l00024">eval_intern.h:24</a></div></div> <div class="ttc" id="structrb__thread__struct_html_a004e79191ba26ebbdc62ea9f77039f1b"><div class="ttname"><a href="../../d2/d66/structrb__thread__struct.html#a004e79191ba26ebbdc62ea9f77039f1b">rb_thread_struct::machine_stack_start</a></div><div class="ttdeci">VALUE * machine_stack_start</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00463">vm_core.h:463</a></div></div> <div class="ttc" id="eval__intern_8h_html_aa893e1d4238c9135f318ddaff6b1c679"><div class="ttname"><a href="../../dd/dd0/eval__intern_8h.html#aa893e1d4238c9135f318ddaff6b1c679">SET_THROWOBJ_CATCH_POINT</a></div><div class="ttdeci">#define SET_THROWOBJ_CATCH_POINT(obj, val)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/dd0/eval__intern_8h_source.html#l00164">eval_intern.h:164</a></div></div> <div class="ttc" id="vm_8c_html_a3ddaf8dd022a2376d14fa8bff79e0a53"><div class="ttname"><a href="../../de/de9/vm_8c.html#a3ddaf8dd022a2376d14fa8bff79e0a53">vm_make_env_object</a></div><div class="ttdeci">static VALUE vm_make_env_object(rb_thread_t *th, rb_control_frame_t *cfp, VALUE *blockprocptr)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00481">vm.c:481</a></div></div> <div class="ttc" id="struct_r_array_html_a302033453988193e8f7b18774fb68df9"><div class="ttname"><a href="../../dd/d8b/struct_r_array.html#a302033453988193e8f7b18774fb68df9">RArray::basic</a></div><div class="ttdeci">struct RBasic basic</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00692">ruby.h:692</a></div></div> <div class="ttc" id="structrb__iseq__struct_html_a667787a2e393a8e2a203bf1c2442276d"><div class="ttname"><a href="../../d6/de3/structrb__iseq__struct.html#a667787a2e393a8e2a203bf1c2442276d">rb_iseq_struct::local_table</a></div><div class="ttdeci">ID * local_table</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00182">vm_core.h:182</a></div></div> <div class="ttc" id="vm_8c_html_a6fca4e13002f037d2e15bc1c77ab18ed"><div class="ttname"><a href="../../de/de9/vm_8c.html#a6fca4e13002f037d2e15bc1c77ab18ed">vm_exec</a></div><div class="ttdeci">static VALUE vm_exec(rb_thread_t *th)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01225">vm.c:1225</a></div></div> <div class="ttc" id="vm__core_8h_html_a2cc1c838fecda2400fa9f2fb5fad3618"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a2cc1c838fecda2400fa9f2fb5fad3618">RUBY_VM_GET_CFP_FROM_BLOCK_PTR</a></div><div class="ttdeci">#define RUBY_VM_GET_CFP_FROM_BLOCK_PTR(b)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00625">vm_core.h:625</a></div></div> <div class="ttc" id="vm_8c_html_afbca5a98d211dac56fd4fbad2a382716"><div class="ttname"><a href="../../de/de9/vm_8c.html#afbca5a98d211dac56fd4fbad2a382716">ruby_vm_debug_ptr</a></div><div class="ttdeci">VALUE * ruby_vm_debug_ptr(rb_vm_t *vm)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l02283">vm.c:2283</a></div></div> <div class="ttc" id="vm_8c_html_a7c957fc69c5c69c03b72c2723d973c3c"><div class="ttname"><a href="../../de/de9/vm_8c.html#a7c957fc69c5c69c03b72c2723d973c3c">rb_thread_mark</a></div><div class="ttdeci">void rb_thread_mark(void *ptr)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01723">vm.c:1723</a></div></div> <div class="ttc" id="structrb__method__entry__struct_html_a9ce0871480ac405b00673b25234738de"><div class="ttname"><a href="../../d7/db7/structrb__method__entry__struct.html#a9ce0871480ac405b00673b25234738de">rb_method_entry_struct::klass</a></div><div class="ttdeci">VALUE klass</div><div class="ttdef"><b>Definition:</b> <a href="../../db/d0a/method_8h_source.html#l00080">method.h:80</a></div></div> <div class="ttc" id="encoding_8h_html"><div class="ttname"><a href="../../d5/de3/encoding_8h.html">encoding.h</a></div></div> <div class="ttc" id="structiseq__catch__table__entry_html_a9427499a8613b4046de7b20d3153c5ab"><div class="ttname"><a href="../../dc/d07/structiseq__catch__table__entry.html#a9427499a8613b4046de7b20d3153c5ab">iseq_catch_table_entry::start</a></div><div class="ttdeci">unsigned long start</div><div class="ttdef"><b>Definition:</b> <a href="../../d7/dc8/iseq_8h_source.html#l00062">iseq.h:62</a></div></div> <div class="ttc" id="vm__core_8h_html_afa3629f5cb977b24532d09e1aa055e4a"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#afa3629f5cb977b24532d09e1aa055e4a">rb_num_t</a></div><div class="ttdeci">unsigned long rb_num_t</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00120">vm_core.h:120</a></div></div> <div class="ttc" id="gc_8c_html_a4c2152009e465bf40a157fa23dfcc92e"><div class="ttname"><a href="../../d8/d16/gc_8c.html#a4c2152009e465bf40a157fa23dfcc92e">rb_gc_mark_machine_stack</a></div><div class="ttdeci">void rb_gc_mark_machine_stack(rb_thread_t *th)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d16/gc_8c_source.html#l02622">gc.c:2622</a></div></div> <div class="ttc" id="eval__jump_8c_html_aa4edbe2aeb4e47e6bd22bd2b3f6d8ba8"><div class="ttname"><a href="../../d6/d9b/eval__jump_8c.html#aa4edbe2aeb4e47e6bd22bd2b3f6d8ba8">rb_call_end_proc</a></div><div class="ttdeci">void rb_call_end_proc(VALUE data)</div><div class="ttdef"><b>Definition:</b> <a href="../../d6/d9b/eval__jump_8c_source.html#l00011">eval_jump.c:11</a></div></div> <div class="ttc" id="vm__core_8h_html_a4bc9fa804787db9db7ea5d698da9db9e"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a4bc9fa804787db9db7ea5d698da9db9e">GC_GUARDED_PTR</a></div><div class="ttdeci">#define GC_GUARDED_PTR(p)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00607">vm_core.h:607</a></div></div> <div class="ttc" id="vm__eval_8c_html"><div class="ttname"><a href="../../d3/d80/vm__eval_8c.html">vm_eval.c</a></div></div> <div class="ttc" id="eval__intern_8h_html_abfe39758eac9658dbce9750e4bfddbc6"><div class="ttname"><a href="../../dd/dd0/eval__intern_8h.html#abfe39758eac9658dbce9750e4bfddbc6">TAG_RETURN</a></div><div class="ttdeci">#define TAG_RETURN</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/dd0/eval__intern_8h_source.html#l00152">eval_intern.h:152</a></div></div> <div class="ttc" id="eval__intern_8h_html_a4bb909636fd43ab591291ffb47b83d3f"><div class="ttname"><a href="../../dd/dd0/eval__intern_8h.html#a4bb909636fd43ab591291ffb47b83d3f">TH_POP_TAG2</a></div><div class="ttdeci">#define TH_POP_TAG2()</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/dd0/eval__intern_8h_source.html#l00122">eval_intern.h:122</a></div></div> <div class="ttc" id="-test-_2string_2init_8c_html_a7c6f1d2e32298f69b4ea18be4aa62129"><div class="ttname"><a href="../../df/d43/-test-_2string_2init_8c.html#a7c6f1d2e32298f69b4ea18be4aa62129">init</a></div><div class="ttdeci">#define init(n)</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d43/-test-_2string_2init_8c_source.html#l00003">init.c:3</a></div></div> <div class="ttc" id="intern_8h_html_a17a81c1a7d754e5ab49fc4b4369b6c8c"><div class="ttname"><a href="../../db/d2e/intern_8h.html#a17a81c1a7d754e5ab49fc4b4369b6c8c">rb_const_get</a></div><div class="ttdeci">VALUE rb_const_get(VALUE, ID)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/d2a/variable_8c_source.html#l01635">variable.c:1635</a></div></div> <div class="ttc" id="structrb__block__struct_html_a834e1c9b35a06714deeb62097636564f"><div class="ttname"><a href="../../da/dc0/structrb__block__struct.html#a834e1c9b35a06714deeb62097636564f">rb_block_struct::lfp</a></div><div class="ttdeci">VALUE * lfp</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00348">vm_core.h:348</a></div></div> <div class="ttc" id="structiseq__catch__table__entry_html_a1c2635a230708dfba8857a6d6509b6a1af40d37f8dee0a7d299cf107101dd588b"><div class="ttname"><a href="../../dc/d07/structiseq__catch__table__entry.html#a1c2635a230708dfba8857a6d6509b6a1af40d37f8dee0a7d299cf107101dd588b">iseq_catch_table_entry::CATCH_TYPE_ENSURE</a></div><div class="ttdef"><b>Definition:</b> <a href="../../d7/dc8/iseq_8h_source.html#l00055">iseq.h:55</a></div></div> <div class="ttc" id="intern_8h_html_ab8ed493136ffbe39cfc3fca62eced570"><div class="ttname"><a href="../../db/d2e/intern_8h.html#ab8ed493136ffbe39cfc3fca62eced570">rb_alias_variable</a></div><div class="ttdeci">void rb_alias_variable(ID, ID)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/d2a/variable_8c_source.html#l00778">variable.c:778</a></div></div> <div class="ttc" id="internal_8h_html_ab59ea80cdf15f3f19bbae0346314c9ad"><div class="ttname"><a href="../../db/dde/internal_8h.html#ab59ea80cdf15f3f19bbae0346314c9ad">RCLASS_M_TBL</a></div><div class="ttdeci">#define RCLASS_M_TBL(c)</div><div class="ttdef"><b>Definition:</b> <a href="../../db/dde/internal_8h_source.html#l00037">internal.h:37</a></div></div> <div class="ttc" id="structiseq__catch__table__entry_html_a1c2635a230708dfba8857a6d6509b6a1a98ba159a92bfd8eabf0edb7381b8dcac"><div class="ttname"><a href="../../dc/d07/structiseq__catch__table__entry.html#a1c2635a230708dfba8857a6d6509b6a1a98ba159a92bfd8eabf0edb7381b8dcac">iseq_catch_table_entry::CATCH_TYPE_NEXT</a></div><div class="ttdef"><b>Definition:</b> <a href="../../d7/dc8/iseq_8h_source.html#l00059">iseq.h:59</a></div></div> <div class="ttc" id="vm_8c_html_ab3cf4160fd472c04e48e7569c2ed34fe"><div class="ttname"><a href="../../de/de9/vm_8c.html#ab3cf4160fd472c04e48e7569c2ed34fe">vm_svar_set</a></div><div class="ttdeci">static void vm_svar_set(VALUE key, VALUE val)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00736">vm.c:736</a></div></div> <div class="ttc" id="vm__core_8h_html_addad24839d7483095151e91b3b83aed6"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#addad24839d7483095151e91b3b83aed6">rb_thread_set_current</a></div><div class="ttdeci">#define rb_thread_set_current(th)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00692">vm_core.h:692</a></div></div> <div class="ttc" id="nkf_8h_html_aa8cecfc5c5c054d2875c03e77b7be15d"><div class="ttname"><a href="../../d1/d5c/nkf_8h.html#aa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a></div><div class="ttdeci">#define TRUE</div><div class="ttdef"><b>Definition:</b> <a href="../../d1/d5c/nkf_8h_source.html#l00186">nkf.h:186</a></div></div> <div class="ttc" id="structrb__vm__struct_html_a0878bef1918bcb59dbd39fe53ba3a9a1"><div class="ttname"><a href="../../db/d74/structrb__vm__struct.html#a0878bef1918bcb59dbd39fe53ba3a9a1">rb_vm_struct::special_exceptions</a></div><div class="ttdeci">VALUE special_exceptions[ruby_special_error_count]</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00297">vm_core.h:297</a></div></div> <div class="ttc" id="vm_8c_html_af0a6e7c3e77f3c6c8e7738b79dfbde2f"><div class="ttname"><a href="../../de/de9/vm_8c.html#af0a6e7c3e77f3c6c8e7738b79dfbde2f">rb_vm_stack_to_heap</a></div><div class="ttdeci">void rb_vm_stack_to_heap(rb_thread_t *th)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00540">vm.c:540</a></div></div> <div class="ttc" id="structrb__thread__struct_html_adb11d95769dc97f821331399fd45a586"><div class="ttname"><a href="../../d2/d66/structrb__thread__struct.html#adb11d95769dc97f821331399fd45a586">rb_thread_struct::keeping_mutexes</a></div><div class="ttdeci">struct rb_mutex_struct * keeping_mutexes</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00444">vm_core.h:444</a></div></div> <div class="ttc" id="sprintf_8c_html_a05c34a91ab36c6a463c861df47808fae"><div class="ttname"><a href="../../d9/d2d/sprintf_8c.html#a05c34a91ab36c6a463c861df47808fae">rb_sprintf</a></div><div class="ttdeci">VALUE rb_sprintf(const char *format,...)</div><div class="ttdef"><b>Definition:</b> <a href="../../d9/d2d/sprintf_8c_source.html#l01203">sprintf.c:1203</a></div></div> <div class="ttc" id="structrb__proc__t_html"><div class="ttname"><a href="../../d5/d77/structrb__proc__t.html">rb_proc_t</a></div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00526">vm_core.h:526</a></div></div> <div class="ttc" id="vm_8c_html_a70b2fd040eae21f04d68a7a6f7ee1a05"><div class="ttname"><a href="../../de/de9/vm_8c.html#a70b2fd040eae21f04d68a7a6f7ee1a05">vm_analysis_operand</a></div><div class="ttdeci">void vm_analysis_operand(int insn, int n, VALUE op)</div></div> <div class="ttc" id="structrb__vm__struct_html_adc9a2f20cba11e9a872bbe603b7db593"><div class="ttname"><a href="../../db/d74/structrb__vm__struct.html#adc9a2f20cba11e9a872bbe603b7db593">rb_vm_struct::loaded_features</a></div><div class="ttdeci">VALUE loaded_features</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00302">vm_core.h:302</a></div></div> <div class="ttc" id="generator_8h_html_ad2bf389f3fddea7bd3befa162c70561a"><div class="ttname"><a href="../../d8/df4/generator_8h.html#ad2bf389f3fddea7bd3befa162c70561a">RB_GC_GUARD</a></div><div class="ttdeci">#define RB_GC_GUARD(object)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/df4/generator_8h_source.html#l00050">generator.h:50</a></div></div> <div class="ttc" id="method_8h_html_af24b4bc2104eeb955b312d41bb492c5c"><div class="ttname"><a href="../../db/d0a/method_8h.html#af24b4bc2104eeb955b312d41bb492c5c">rb_add_method</a></div><div class="ttdeci">rb_method_entry_t * rb_add_method(VALUE klass, ID mid, rb_method_type_t type, void *option, rb_method_flag_t noex)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/d63/vm__method_8c_source.html#l00276">vm_method.c:276</a></div></div> <div class="ttc" id="vm_8c_html_a835b4cd0571894b624a302e8d2b736de"><div class="ttname"><a href="../../de/de9/vm_8c.html#a835b4cd0571894b624a302e8d2b736de">vm_set_top_stack</a></div><div class="ttdeci">static void vm_set_top_stack(rb_thread_t *th, VALUE iseqval)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00106">vm.c:106</a></div></div> <div class="ttc" id="hash_8c_html_af1da586524a3a1739fd5b91272037815"><div class="ttname"><a href="../../d1/d04/hash_8c.html#af1da586524a3a1739fd5b91272037815">rb_hash_new</a></div><div class="ttdeci">VALUE rb_hash_new(void)</div><div class="ttdef"><b>Definition:</b> <a href="../../d1/d04/hash_8c_source.html#l00229">hash.c:229</a></div></div> <div class="ttc" id="intern_8h_html_a7e5b0d4c40fecb26c1ac946f674a690e"><div class="ttname"><a href="../../db/d2e/intern_8h.html#a7e5b0d4c40fecb26c1ac946f674a690e">rb_iv_set</a></div><div class="ttdeci">VALUE rb_iv_set(VALUE, const char *, VALUE)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/d2a/variable_8c_source.html#l02228">variable.c:2228</a></div></div> <div class="ttc" id="gc_8c_html_a0bffec5b2cc004adcebb6802e7620387"><div class="ttname"><a href="../../d8/d16/gc_8c.html#a0bffec5b2cc004adcebb6802e7620387">ruby_xfree</a></div><div class="ttdeci">void ruby_xfree(void *x)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d16/gc_8c_source.html#l00916">gc.c:916</a></div></div> <div class="ttc" id="vm_8c_html_af6daaa3b312cda0a07c1c06b2608d4dc"><div class="ttname"><a href="../../de/de9/vm_8c.html#af6daaa3b312cda0a07c1c06b2608d4dc">m_core_define_singleton_method</a></div><div class="ttdeci">static VALUE m_core_define_singleton_method(VALUE self, VALUE cbase, VALUE sym, VALUE iseqval)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01991">vm.c:1991</a></div></div> <div class="ttc" id="ripper_8c_html_aed0d62fc21ec2baa9ae344fe3ff30668"><div class="ttname"><a href="../../d5/d11/ripper_8c.html#aed0d62fc21ec2baa9ae344fe3ff30668">rb_is_local_id</a></div><div class="ttdeci">int rb_is_local_id(ID id)</div><div class="ttdef"><b>Definition:</b> <a href="../../d5/d11/ripper_8c_source.html#l16421">ripper.c:16421</a></div></div> <div class="ttc" id="vm_8c_html_a6570f238bce65b6594917b796b285edc"><div class="ttname"><a href="../../de/de9/vm_8c.html#a6570f238bce65b6594917b796b285edc">rb_frame_method_id_and_class</a></div><div class="ttdeci">int rb_frame_method_id_and_class(ID *idp, VALUE *klassp)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01514">vm.c:1514</a></div></div> <div class="ttc" id="vm__core_8h_html_a456e0e30a5829a029128bcb785ff6933"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a456e0e30a5829a029128bcb785ff6933">RUBY_VM_NEXT_CONTROL_FRAME</a></div><div class="ttdeci">#define RUBY_VM_NEXT_CONTROL_FRAME(cfp)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00612">vm_core.h:612</a></div></div> <div class="ttc" id="internal_8h_html"><div class="ttname"><a href="../../db/dde/internal_8h.html">internal.h</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_afa5b9137f051ac26d7ccc8824f178233"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#afa5b9137f051ac26d7ccc8824f178233">ID</a></div><div class="ttdeci">unsigned long ID</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00089">ruby.h:89</a></div></div> <div class="ttc" id="vm_8c_html_aa81384e9111765fdcf967b201efb2e6b"><div class="ttname"><a href="../../de/de9/vm_8c.html#aa81384e9111765fdcf967b201efb2e6b">rb_vm_make_jump_tag_but_local_jump</a></div><div class="ttdeci">VALUE rb_vm_make_jump_tag_but_local_jump(int state, VALUE val)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00979">vm.c:979</a></div></div> <div class="ttc" id="vm__core_8h_html_ae154762699bf1f722bdf05c22026d678"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#ae154762699bf1f722bdf05c22026d678">RUBYVM_CFUNC_FRAME_P</a></div><div class="ttdeci">#define RUBYVM_CFUNC_FRAME_P(cfp)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00590">vm_core.h:590</a></div></div> <div class="ttc" id="vm_8c_html_ae7ad8c359f6d89380dceca5a63bc2c48"><div class="ttname"><a href="../../de/de9/vm_8c.html#ae7ad8c359f6d89380dceca5a63bc2c48">ruby_vm_at_exit</a></div><div class="ttdeci">void ruby_vm_at_exit(void(*func)(rb_vm_t *))</div><div class="ttdoc">ruby_vm_at_exit registers a function func to be invoked when a VM passed away. </div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00205">vm.c:205</a></div></div> <div class="ttc" id="structrb__env__t_html_a5babbdd0740bbdc371ae7d2f225e8b64"><div class="ttname"><a href="../../d0/d73/structrb__env__t.html#a5babbdd0740bbdc371ae7d2f225e8b64">rb_env_t::local_size</a></div><div class="ttdeci">int local_size</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00542">vm_core.h:542</a></div></div> <div class="ttc" id="vm_8c_html_ad55204994fe946dcd317061047845c3a"><div class="ttname"><a href="../../de/de9/vm_8c.html#ad55204994fe946dcd317061047845c3a">rb_cEnv</a></div><div class="ttdeci">VALUE rb_cEnv</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00037">vm.c:37</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_aba03c3c4ff187bbda6c4459e2dc9f6c6"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a></div><div class="ttdeci">#define Qnil</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00367">ruby.h:367</a></div></div> <div class="ttc" id="error_8c_html_ab629d2b031e852bf387e32c836417061"><div class="ttname"><a href="../../db/dcc/error_8c.html#ab629d2b031e852bf387e32c836417061">rb_exc_new2</a></div><div class="ttdeci">VALUE rb_exc_new2(VALUE etype, const char *s)</div><div class="ttdef"><b>Definition:</b> <a href="../../db/dcc/error_8c_source.html#l00498">error.c:498</a></div></div> <div class="ttc" id="tcltklib_8c_html_ac765329451135abec74c45e1897abf26"><div class="ttname"><a href="../../d5/d9d/tcltklib_8c.html#ac765329451135abec74c45e1897abf26">type</a></div><div class="ttdeci">int type</div><div class="ttdef"><b>Definition:</b> <a href="../../d5/d9d/tcltklib_8c_source.html#l00107">tcltklib.c:107</a></div></div> <div class="ttc" id="vm_8c_html_aa41b42017c8091c664dea5ed30fe9c5c"><div class="ttname"><a href="../../de/de9/vm_8c.html#aa41b42017c8091c664dea5ed30fe9c5c">REWIND_CFP</a></div><div class="ttdeci">#define REWIND_CFP(expr)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01976">vm.c:1976</a></div></div> <div class="ttc" id="vm__core_8h_html"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html">vm_core.h</a></div></div> <div class="ttc" id="vm__core_8h_html_ac7b8d797cce488d08572c273f49f28fe"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#ac7b8d797cce488d08572c273f49f28fe">VM_FRAME_MAGIC_EVAL</a></div><div class="ttdeci">#define VM_FRAME_MAGIC_EVAL</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00580">vm_core.h:580</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_aee74f540353cd2d77d1cb37a3714bd7d"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#aee74f540353cd2d77d1cb37a3714bd7d">BUILTIN_TYPE</a></div><div class="ttdeci">#define BUILTIN_TYPE(x)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00438">ruby.h:438</a></div></div> <div class="ttc" id="structrb__iseq__struct_html_aa70f3e195a4350acbbc130f8a95c9958"><div class="ttname"><a href="../../d6/de3/structrb__iseq__struct.html#aa70f3e195a4350acbbc130f8a95c9958">rb_iseq_struct::iseq_encoded</a></div><div class="ttdeci">VALUE * iseq_encoded</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00172">vm_core.h:172</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_a3c1d4bfc6a81af60bdcb48744c35f760"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="ttdeci">unsigned long VALUE</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00088">ruby.h:88</a></div></div> <div class="ttc" id="vm_8c_html_a5293371c1050a118f49ccf3c073bcfbe"><div class="ttname"><a href="../../de/de9/vm_8c.html#a5293371c1050a118f49ccf3c073bcfbe">rb_vm_top_self</a></div><div class="ttdeci">VALUE rb_vm_top_self(void)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l02259">vm.c:2259</a></div></div> <div class="ttc" id="vm_8c_html_a6e6ce66eb03fe0ce260cc4556b62e129"><div class="ttname"><a href="../../de/de9/vm_8c.html#a6e6ce66eb03fe0ce260cc4556b62e129">rb_iseq_eval</a></div><div class="ttdeci">VALUE rb_iseq_eval(VALUE iseqval)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01456">vm.c:1456</a></div></div> <div class="ttc" id="nkf_8c_html_a5ea5ac7abf5cce39283e422add1067d5"><div class="ttname"><a href="../../d8/d90/nkf_8c.html#a5ea5ac7abf5cce39283e422add1067d5">result</a></div><div class="ttdeci">static VALUE result</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d90/nkf_8c_source.html#l00040">nkf.c:40</a></div></div> <div class="ttc" id="vm_8c_html_a9c233b8f4d2f77f12089fc293705ddea"><div class="ttname"><a href="../../de/de9/vm_8c.html#a9c233b8f4d2f77f12089fc293705ddea">vm_backtrace_each</a></div><div class="ttdeci">static int vm_backtrace_each(rb_thread_t *th, int lev, void(*init)(void *), rb_backtrace_iter_func *iter, void *arg)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00792">vm.c:792</a></div></div> <div class="ttc" id="vm__insnhelper_8c_html_a0aeeee637bf9706f9d240bac4ae359c3"><div class="ttname"><a href="../../d0/db2/vm__insnhelper_8c.html#a0aeeee637bf9706f9d240bac4ae359c3">vm_pop_frame</a></div><div class="ttdeci">static void vm_pop_frame(rb_thread_t *th)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/db2/vm__insnhelper_8c_source.html#l00081">vm_insnhelper.c:81</a></div></div> <div class="ttc" id="date__strftime_8c_html_aa21fad24622996b74839deccf1202f29"><div class="ttname"><a href="../../d1/d6f/date__strftime_8c.html#aa21fad24622996b74839deccf1202f29">malloc</a></div><div class="ttdeci">void * malloc()</div></div> <div class="ttc" id="structrb__iseq__struct_html_ae1d2b9b5e2ae668e100d814f2da38ac0"><div class="ttname"><a href="../../d6/de3/structrb__iseq__struct.html#ae1d2b9b5e2ae668e100d814f2da38ac0">rb_iseq_struct::catch_table_size</a></div><div class="ttdeci">int catch_table_size</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00228">vm_core.h:228</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_a1d4c05021aacd8cab989ff60f95ebe2d"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#a1d4c05021aacd8cab989ff60f95ebe2d">RBASIC</a></div><div class="ttdeci">#define RBASIC(obj)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00904">ruby.h:904</a></div></div> <div class="ttc" id="structiseq__catch__table__entry_html"><div class="ttname"><a href="../../dc/d07/structiseq__catch__table__entry.html">iseq_catch_table_entry</a></div><div class="ttdef"><b>Definition:</b> <a href="../../d7/dc8/iseq_8h_source.html#l00052">iseq.h:52</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_a01daa4561ae2e5d904a4df3c200a951c"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#a01daa4561ae2e5d904a4df3c200a951c">RARRAY_EMBED_FLAG</a></div><div class="ttdeci">#define RARRAY_EMBED_FLAG</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00705">ruby.h:705</a></div></div> <div class="ttc" id="structrb__vm__struct_html_a55af19560794b67c09c608a8464e47c9"><div class="ttname"><a href="../../db/d74/structrb__vm__struct.html#a55af19560794b67c09c608a8464e47c9">rb_vm_struct::main_thread</a></div><div class="ttdeci">struct rb_thread_struct * main_thread</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00282">vm_core.h:282</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_afd98e957d0d96017f7a07dd83772fadc"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#afd98e957d0d96017f7a07dd83772fadc">rb_class2name</a></div><div class="ttdeci">const char * rb_class2name(VALUE)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/d2a/variable_8c_source.html#l00311">variable.c:311</a></div></div> <div class="ttc" id="vm_8c_html_a21823fe13ba76a2161c1b35286853e32"><div class="ttname"><a href="../../de/de9/vm_8c.html#a21823fe13ba76a2161c1b35286853e32">ruby_current_thread</a></div><div class="ttdeci">rb_thread_t * ruby_current_thread</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00044">vm.c:44</a></div></div> <div class="ttc" id="structrb__thread__struct_html_aefaadd717ae62c44343b7bc767db6c5b"><div class="ttname"><a href="../../d2/d66/structrb__thread__struct.html#aefaadd717ae62c44343b7bc767db6c5b">rb_thread_struct::first_proc</a></div><div class="ttdeci">VALUE first_proc</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00458">vm_core.h:458</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_ad838455402de0089eb6b18bf094d54ad"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#ad838455402de0089eb6b18bf094d54ad">RARRAY_EMBED_LEN_MASK</a></div><div class="ttdeci">#define RARRAY_EMBED_LEN_MASK</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00707">ruby.h:707</a></div></div> <div class="ttc" id="gc_8c_html_a6b9a51387748f1a94f4d77092163aa3a"><div class="ttname"><a href="../../d8/d16/gc_8c.html#a6b9a51387748f1a94f4d77092163aa3a">rb_mark_tbl</a></div><div class="ttdeci">void rb_mark_tbl(st_table *tbl)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d16/gc_8c_source.html#l01735">gc.c:1735</a></div></div> <div class="ttc" id="internal_8h_html_a1261ad828419468df5d4e92bb75ff6f3"><div class="ttname"><a href="../../db/dde/internal_8h.html#a1261ad828419468df5d4e92bb75ff6f3">Init_native_thread</a></div><div class="ttdeci">void Init_native_thread(void)</div></div> <div class="ttc" id="intern_8h_html_a875565385e4542e217883aa78ede3a67"><div class="ttname"><a href="../../db/d2e/intern_8h.html#a875565385e4542e217883aa78ede3a67">rb_alias</a></div><div class="ttdeci">void rb_alias(VALUE, ID, ID)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/d63/vm__method_8c_source.html#l00888">vm_method.c:888</a></div></div> <div class="ttc" id="eval__intern_8h_html_a4410e4208d7ae0de8dae7c5b61f9d55c"><div class="ttname"><a href="../../dd/dd0/eval__intern_8h.html#a4410e4208d7ae0de8dae7c5b61f9d55c">TH_PUSH_TAG</a></div><div class="ttdeci">#define TH_PUSH_TAG(th)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/dd0/eval__intern_8h_source.html#l00111">eval_intern.h:111</a></div></div> <div class="ttc" id="struct_r_basic_html_a8ba5a9a18f9e80fc8b8531d5894f5f38"><div class="ttname"><a href="../../d2/d22/struct_r_basic.html#a8ba5a9a18f9e80fc8b8531d5894f5f38">RBasic::flags</a></div><div class="ttdeci">VALUE flags</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00597">ruby.h:597</a></div></div> <div class="ttc" id="structrb__control__frame__t_html_a8e19fd7af779b623f1e9477f271358e6"><div class="ttname"><a href="../../dd/d84/structrb__control__frame__t.html#a8e19fd7af779b623f1e9477f271358e6">rb_control_frame_t::bp</a></div><div class="ttdeci">VALUE * bp</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00335">vm_core.h:335</a></div></div> <div class="ttc" id="vm_8c_html_a3a1a8ed8ecbbf3bd74854ef802cb910d"><div class="ttname"><a href="../../de/de9/vm_8c.html#a3a1a8ed8ecbbf3bd74854ef802cb910d">ruby_vm_destruct</a></div><div class="ttdeci">int ruby_vm_destruct(rb_vm_t *vm)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01618">vm.c:1618</a></div></div> <div class="ttc" id="structiseq__catch__table__entry_html_a1c2635a230708dfba8857a6d6509b6a1ae556eed8cf5ae82c6e44b2ee9f5bc3d7"><div class="ttname"><a href="../../dc/d07/structiseq__catch__table__entry.html#a1c2635a230708dfba8857a6d6509b6a1ae556eed8cf5ae82c6e44b2ee9f5bc3d7">iseq_catch_table_entry::CATCH_TYPE_BREAK</a></div><div class="ttdef"><b>Definition:</b> <a href="../../d7/dc8/iseq_8h_source.html#l00057">iseq.h:57</a></div></div> <div class="ttc" id="vm__core_8h_html_af17ad00cbac9b23ea267784b2547acbe"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#af17ad00cbac9b23ea267784b2547acbe">rb_backtrace_iter_func</a></div><div class="ttdeci">int rb_backtrace_iter_func(void *, VALUE, int, VALUE)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00670">vm_core.h:670</a></div></div> <div class="ttc" id="cparse_8c_html_a2c5302305d878024276c413652549eb9"><div class="ttname"><a href="../../dc/d0c/cparse_8c.html#a2c5302305d878024276c413652549eb9">AREF</a></div><div class="ttdeci">#define AREF(s, idx)</div><div class="ttdef"><b>Definition:</b> <a href="../../dc/d0c/cparse_8c_source.html#l00093">cparse.c:93</a></div></div> <div class="ttc" id="structrb__control__frame__t_html_ac1cafd093e114d3ec99ebeca0ffeb048"><div class="ttname"><a href="../../dd/d84/structrb__control__frame__t.html#ac1cafd093e114d3ec99ebeca0ffeb048">rb_control_frame_t::dfp</a></div><div class="ttdeci">VALUE * dfp</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00340">vm_core.h:340</a></div></div> <div class="ttc" id="vm__core_8h_html_aca50bfb7be201e098951bf4ec357f5c2"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#aca50bfb7be201e098951bf4ec357f5c2">ALT_STACK_SIZE</a></div><div class="ttdeci">#define ALT_STACK_SIZE</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00390">vm_core.h:390</a></div></div> <div class="ttc" id="structrb__control__frame__t_html_a28b0b301811a891225ba9a58c412482d"><div class="ttname"><a href="../../dd/d84/structrb__control__frame__t.html#a28b0b301811a891225ba9a58c412482d">rb_control_frame_t::pc</a></div><div class="ttdeci">VALUE * pc</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00333">vm_core.h:333</a></div></div> <div class="ttc" id="syck_8h_html_a8a45dfe133c1fd041e1b902bda9e43e8"><div class="ttname"><a href="../../de/dce/syck_8h.html#a8a45dfe133c1fd041e1b902bda9e43e8">st_data_t</a></div><div class="ttdeci">long st_data_t</div><div class="ttdef"><b>Definition:</b> <a href="../../de/dce/syck_8h_source.html#l00069">syck.h:69</a></div></div> <div class="ttc" id="eval__intern_8h_html_a73e5172525e734da0d617c532cef0c6d"><div class="ttname"><a href="../../dd/dd0/eval__intern_8h.html#a73e5172525e734da0d617c532cef0c6d">NEW_THROW_OBJECT</a></div><div class="ttdeci">#define NEW_THROW_OBJECT(val, pt, st)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/dd0/eval__intern_8h_source.html#l00162">eval_intern.h:162</a></div></div> <div class="ttc" id="structiseq__catch__table__entry_html_a1c2635a230708dfba8857a6d6509b6a1aa4e94b0ce1178f40ead4772fba48178d"><div class="ttname"><a href="../../dc/d07/structiseq__catch__table__entry.html#a1c2635a230708dfba8857a6d6509b6a1aa4e94b0ce1178f40ead4772fba48178d">iseq_catch_table_entry::CATCH_TYPE_REDO</a></div><div class="ttdef"><b>Definition:</b> <a href="../../d7/dc8/iseq_8h_source.html#l00058">iseq.h:58</a></div></div> <div class="ttc" id="eval__jump_8c_html_a59c976d93f8b1b2766e4fe7e01ac1ee7"><div class="ttname"><a href="../../d6/d9b/eval__jump_8c.html#a59c976d93f8b1b2766e4fe7e01ac1ee7">rb_set_end_proc</a></div><div class="ttdeci">void rb_set_end_proc(void(*func)(VALUE), VALUE data)</div><div class="ttdef"><b>Definition:</b> <a href="../../d6/d9b/eval__jump_8c_source.html#l00060">eval_jump.c:60</a></div></div> <div class="ttc" id="gc_8c_html_a14b9fe6e6bba3f2279b95af407c546f8"><div class="ttname"><a href="../../d8/d16/gc_8c.html#a14b9fe6e6bba3f2279b95af407c546f8">rb_memerror</a></div><div class="ttdeci">void rb_memerror(void)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d16/gc_8c_source.html#l00581">gc.c:581</a></div></div> <div class="ttc" id="structrb__proc__t_html_a6541c1e61b0734aef20b7c2af3b4de5e"><div class="ttname"><a href="../../d5/d77/structrb__proc__t.html#a6541c1e61b0734aef20b7c2af3b4de5e">rb_proc_t::blockprocval</a></div><div class="ttdeci">VALUE blockprocval</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00530">vm_core.h:530</a></div></div> <div class="ttc" id="vm_8c_html_a2abade868818c379135d2eb27c104f85"><div class="ttname"><a href="../../de/de9/vm_8c.html#a2abade868818c379135d2eb27c104f85">thread_recycle_stack</a></div><div class="ttdeci">static VALUE * thread_recycle_stack(size_t size)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01686">vm.c:1686</a></div></div> <div class="ttc" id="vm_8c_html_a73a24c093ebc1906a9831819833fc1f7"><div class="ttname"><a href="../../de/de9/vm_8c.html#a73a24c093ebc1906a9831819833fc1f7">OP</a></div><div class="ttdeci">#define OP(mid_, bop_)</div></div> <div class="ttc" id="structrb__thread__struct_html_a647ed2a802789fff9e511bea4ada1239"><div class="ttname"><a href="../../d2/d66/structrb__thread__struct.html#a647ed2a802789fff9e511bea4ada1239">rb_thread_struct::status</a></div><div class="ttdeci">enum rb_thread_status status</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00428">vm_core.h:428</a></div></div> <div class="ttc" id="vm__core_8h_html_ac9390ef02c17a0bc7e3bd359264562c7"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#ac9390ef02c17a0bc7e3bd359264562c7">VM_FRAME_MAGIC_TOP</a></div><div class="ttdeci">#define VM_FRAME_MAGIC_TOP</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00575">vm_core.h:575</a></div></div> <div class="ttc" id="vm_8c_html_a9ae786ebda2b26b25d2fc8212420e665"><div class="ttname"><a href="../../de/de9/vm_8c.html#a9ae786ebda2b26b25d2fc8212420e665">vm_svar_get</a></div><div class="ttdeci">static VALUE vm_svar_get(VALUE key)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00729">vm.c:729</a></div></div> <div class="ttc" id="gc_8h_html_a904b1cd50d09d6c8ae915c78e425420a"><div class="ttname"><a href="../../d0/daa/gc_8h.html#a904b1cd50d09d6c8ae915c78e425420a">RUBY_FREE_UNLESS_NULL</a></div><div class="ttdeci">#define RUBY_FREE_UNLESS_NULL(ptr)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/daa/gc_8h_source.html#l00061">gc.h:61</a></div></div> <div class="ttc" id="vm__core_8h_html_ac1f5b7efa57bccbeb4ff5e7ae6ff18c2"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#ac1f5b7efa57bccbeb4ff5e7ae6ff18c2">VM_FRAME_MAGIC_PROC</a></div><div class="ttdeci">#define VM_FRAME_MAGIC_PROC</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00578">vm_core.h:578</a></div></div> <div class="ttc" id="vm__core_8h_html_a724eed84e4b041ec1867e198ee129192"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a724eed84e4b041ec1867e198ee129192">EXEC_EVENT_HOOK</a></div><div class="ttdeci">#define EXEC_EVENT_HOOK(th, flag, self, id, klass)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00743">vm_core.h:743</a></div></div> <div class="ttc" id="vm_8c_html_a15744aab342112335b9189c8911ba625"><div class="ttname"><a href="../../de/de9/vm_8c.html#a15744aab342112335b9189c8911ba625">rb_mRubyVMFrozenCore</a></div><div class="ttdeci">VALUE rb_mRubyVMFrozenCore</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00038">vm.c:38</a></div></div> <div class="ttc" id="cparse_8c_html_a637bc5a232034ee3fd411f8bef091566"><div class="ttname"><a href="../../dc/d0c/cparse_8c.html#a637bc5a232034ee3fd411f8bef091566">SYMBOL_P</a></div><div class="ttdeci">#define SYMBOL_P(v)</div><div class="ttdef"><b>Definition:</b> <a href="../../dc/d0c/cparse_8c_source.html#l00069">cparse.c:69</a></div></div> <div class="ttc" id="id_8h_html_a08dd4fbd61c5fde369edd59783f753b3a0a29fbdb8ebb642f943c4f6f26ecff2a"><div class="ttname"><a href="../../df/db9/id_8h.html#a08dd4fbd61c5fde369edd59783f753b3a0a29fbdb8ebb642f943c4f6f26ecff2a">id_core_set_method_alias</a></div><div class="ttdef"><b>Definition:</b> <a href="../../df/db9/id_8h_source.html#l00066">id.h:66</a></div></div> <div class="ttc" id="structrb__thread__struct_html_a510cac166812798b8548fe541020667f"><div class="ttname"><a href="../../d2/d66/structrb__thread__struct.html#a510cac166812798b8548fe541020667f">rb_thread_struct::machine_stack_end</a></div><div class="ttdeci">VALUE * machine_stack_end</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00464">vm_core.h:464</a></div></div> <div class="ttc" id="vm__exec_8c_html_a5f6167faed281f68dfb092bc052afacf"><div class="ttname"><a href="../../df/d38/vm__exec_8c.html#a5f6167faed281f68dfb092bc052afacf">vm_exec_core</a></div><div class="ttdeci">static VALUE vm_exec_core(rb_thread_t *th, VALUE initial)</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d38/vm__exec_8c_source.html#l00038">vm_exec.c:38</a></div></div> <div class="ttc" id="structrb__thread__struct_html_ac0efa5cb7f18b285cc3415f47930c4e6"><div class="ttname"><a href="../../d2/d66/structrb__thread__struct.html#ac0efa5cb7f18b285cc3415f47930c4e6">rb_thread_struct::first_args</a></div><div class="ttdeci">VALUE first_args</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00459">vm_core.h:459</a></div></div> <div class="ttc" id="group__defmethod_html_gaef65cd1b731ec5c27eedd0e7ea73b6ca"><div class="ttname"><a href="../../d7/d19/group__defmethod.html#gaef65cd1b731ec5c27eedd0e7ea73b6ca">rb_define_method_id</a></div><div class="ttdeci">void rb_define_method_id(VALUE klass, ID mid, VALUE(*func)(ANYARGS), int argc)</div><div class="ttdef"><b>Definition:</b> <a href="../../d9/d0c/class_8c_source.html#l01204">class.c:1204</a></div></div> <div class="ttc" id="structiseq__catch__table__entry_html_a0b7ff23536c8be69a62188be1a84c1d5"><div class="ttname"><a href="../../dc/d07/structiseq__catch__table__entry.html#a0b7ff23536c8be69a62188be1a84c1d5">iseq_catch_table_entry::sp</a></div><div class="ttdeci">unsigned long sp</div><div class="ttdef"><b>Definition:</b> <a href="../../d7/dc8/iseq_8h_source.html#l00065">iseq.h:65</a></div></div> <div class="ttc" id="vm_8c_html_aceae2e37af21e2228489afc5d0233103"><div class="ttname"><a href="../../de/de9/vm_8c.html#aceae2e37af21e2228489afc5d0233103">vm_set_eval_stack</a></div><div class="ttdeci">static void vm_set_eval_stack(rb_thread_t *th, VALUE iseqval, const NODE *cref)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00126">vm.c:126</a></div></div> <div class="ttc" id="encoding_8c_html_a439227feff9d7f55384e8780cfc2eb82"><div class="ttname"><a href="../../d5/db5/encoding_8c.html#a439227feff9d7f55384e8780cfc2eb82">size</a></div><div class="ttdeci">int size</div><div class="ttdef"><b>Definition:</b> <a href="../../d5/db5/encoding_8c_source.html#l00051">encoding.c:51</a></div></div> <div class="ttc" id="vm__core_8h_html_a57840803108748406429fb1cb3b10530"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a57840803108748406429fb1cb3b10530">VM_FRAME_MAGIC_LAMBDA</a></div><div class="ttdeci">#define VM_FRAME_MAGIC_LAMBDA</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00581">vm_core.h:581</a></div></div> <div class="ttc" id="structrb__block__struct_html_a305ea0fcc6d1233de416bd8e7edab218"><div class="ttname"><a href="../../da/dc0/structrb__block__struct.html#a305ea0fcc6d1233de416bd8e7edab218">rb_block_struct::proc</a></div><div class="ttdeci">VALUE proc</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00351">vm_core.h:351</a></div></div> <div class="ttc" id="structrb__vm__struct_html_a9eedda91413032dce6a7053a8f0a449d"><div class="ttname"><a href="../../db/d74/structrb__vm__struct.html#a9eedda91413032dce6a7053a8f0a449d">rb_vm_struct::objspace</a></div><div class="ttdeci">struct rb_objspace * objspace</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00322">vm_core.h:322</a></div></div> <div class="ttc" id="structrb__thread__struct_html_a63addaa5b39a83e287f7b8747398ab57"><div class="ttname"><a href="../../d2/d66/structrb__thread__struct.html#a63addaa5b39a83e287f7b8747398ab57">rb_thread_struct::top_wrapper</a></div><div class="ttdeci">VALUE top_wrapper</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00418">vm_core.h:418</a></div></div> <div class="ttc" id="vm_8c_html_a6ac679a303e8be8dffedf08bc252a624"><div class="ttname"><a href="../../de/de9/vm_8c.html#a6ac679a303e8be8dffedf08bc252a624">vm_clear_global_method_cache</a></div><div class="ttdeci">static void vm_clear_global_method_cache(void)</div></div> <div class="ttc" id="structrb__thread__struct_html_ae17b699504a6c4780843eac4971b2e98"><div class="ttname"><a href="../../d2/d66/structrb__thread__struct.html#ae17b699504a6c4780843eac4971b2e98">rb_thread_struct::mark_stack_len</a></div><div class="ttdeci">int mark_stack_len</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00472">vm_core.h:472</a></div></div> <div class="ttc" id="vm_8c_html_a9be24d2deecfd3c43942e8c7cc4770a1"><div class="ttname"><a href="../../de/de9/vm_8c.html#a9be24d2deecfd3c43942e8c7cc4770a1">ruby_current_vm</a></div><div class="ttdeci">rb_vm_t * ruby_current_vm</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00045">vm.c:45</a></div></div> <div class="ttc" id="structrb__iseq__struct_html_abd2b67e0dffb2262ab272a67bbe747d6"><div class="ttname"><a href="../../d6/de3/structrb__iseq__struct.html#abd2b67e0dffb2262ab272a67bbe747d6">rb_iseq_struct::arg_size</a></div><div class="ttdeci">int arg_size</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00221">vm_core.h:221</a></div></div> <div class="ttc" id="vm_8c_html_ac35785c3423751b6c5095da2a99c61f4"><div class="ttname"><a href="../../de/de9/vm_8c.html#ac35785c3423751b6c5095da2a99c61f4">nsdr</a></div><div class="ttdeci">static VALUE nsdr(void)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l02071">vm.c:2071</a></div></div> <div class="ttc" id="structrb__proc__t_html_aceef0bead8eaa17dd1217f6078e9cd75"><div class="ttname"><a href="../../d5/d77/structrb__proc__t.html#aceef0bead8eaa17dd1217f6078e9cd75">rb_proc_t::safe_level</a></div><div class="ttdeci">int safe_level</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00531">vm_core.h:531</a></div></div> <div class="ttc" id="tcltklib_8c_html_a0964f0f2c4ef2a9554392a5aaf13b032"><div class="ttname"><a href="../../d5/d9d/tcltklib_8c.html#a0964f0f2c4ef2a9554392a5aaf13b032">at_exit</a></div><div class="ttdeci">static int at_exit</div><div class="ttdef"><b>Definition:</b> <a href="../../d5/d9d/tcltklib_8c_source.html#l00181">tcltklib.c:181</a></div></div> <div class="ttc" id="vm_8c_html_ac185acdaeb1aadf3f4297609e05fd083"><div class="ttname"><a href="../../de/de9/vm_8c.html#ac185acdaeb1aadf3f4297609e05fd083">rb_lastline_get</a></div><div class="ttdeci">VALUE rb_lastline_get(void)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00755">vm.c:755</a></div></div> <div class="ttc" id="structrb__proc__t_html_acf80b0e350012548c28cba1ea64a7a6e"><div class="ttname"><a href="../../d5/d77/structrb__proc__t.html#acf80b0e350012548c28cba1ea64a7a6e">rb_proc_t::block</a></div><div class="ttdeci">rb_block_t block</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00527">vm_core.h:527</a></div></div> <div class="ttc" id="structrb__control__frame__t_html_a88144f455e4e42ff4379ab971f22cffc"><div class="ttname"><a href="../../dd/d84/structrb__control__frame__t.html#a88144f455e4e42ff4379ab971f22cffc">rb_control_frame_t::flag</a></div><div class="ttdeci">VALUE flag</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00337">vm_core.h:337</a></div></div> <div class="ttc" id="vm__insnhelper_8c_html"><div class="ttname"><a href="../../d0/db2/vm__insnhelper_8c.html">vm_insnhelper.c</a></div></div> <div class="ttc" id="vm_8c_html_a76e16c1e36ad91c284cc727c3b3eccf1"><div class="ttname"><a href="../../de/de9/vm_8c.html#a76e16c1e36ad91c284cc727c3b3eccf1">rb_thread_recycle_stack_release</a></div><div class="ttdeci">void rb_thread_recycle_stack_release(VALUE *stack)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01701">vm.c:1701</a></div></div> <div class="ttc" id="vm_8c_html_aebe8178dca87b6a8883017e6921029c2"><div class="ttname"><a href="../../de/de9/vm_8c.html#aebe8178dca87b6a8883017e6921029c2">Init_BareVM</a></div><div class="ttdeci">void Init_BareVM(void)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l02225">vm.c:2225</a></div></div> <div class="ttc" id="vm_8c_html_a27ed80c29d1a854ccaa4ae2aa3ef6769"><div class="ttname"><a href="../../de/de9/vm_8c.html#a27ed80c29d1a854ccaa4ae2aa3ef6769">thread_data_type</a></div><div class="ttdeci">#define thread_data_type</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01850">vm.c:1850</a></div></div> <div class="ttc" id="intern_8h_html_a7b330d2905c5f0c9a68cef4ebba5c00f"><div class="ttname"><a href="../../db/d2e/intern_8h.html#a7b330d2905c5f0c9a68cef4ebba5c00f">rb_block_proc</a></div><div class="ttdeci">VALUE rb_block_proc(void)</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/dda/proc_8c_source.html#l00463">proc.c:463</a></div></div> <div class="ttc" id="structrb__method__entry__struct_html_a6c868c50e67b757c6324dfef0f3184dc"><div class="ttname"><a href="../../d7/db7/structrb__method__entry__struct.html#a6c868c50e67b757c6324dfef0f3184dc">rb_method_entry_struct::def</a></div><div class="ttdeci">rb_method_definition_t * def</div><div class="ttdef"><b>Definition:</b> <a href="../../db/d0a/method_8h_source.html#l00078">method.h:78</a></div></div> <div class="ttc" id="st_8h_html_a1d0d955fb1f39486c18162f222deb82b"><div class="ttname"><a href="../../dd/d24/st_8h.html#a1d0d955fb1f39486c18162f222deb82b">st_memsize</a></div><div class="ttdeci">size_t st_memsize(const st_table *)</div><div class="ttdef"><b>Definition:</b> <a href="../../d4/d71/st_8c_source.html#l00274">st.c:274</a></div></div> <div class="ttc" id="vm_8c_html_a750084962ee12011b63dd0b901058f71"><div class="ttname"><a href="../../de/de9/vm_8c.html#a750084962ee12011b63dd0b901058f71">PROCDEBUG</a></div><div class="ttdeci">#define PROCDEBUG</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00033">vm.c:33</a></div></div> <div class="ttc" id="vm_8c_html_adcdfac9f41b5eac1f4f89a647d2ff5b8"><div class="ttname"><a href="../../de/de9/vm_8c.html#adcdfac9f41b5eac1f4f89a647d2ff5b8">rb_ruby_verbose_ptr</a></div><div class="ttdeci">VALUE * rb_ruby_verbose_ptr(void)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l02289">vm.c:2289</a></div></div> <div class="ttc" id="regint_8h_html_a6de11f24647b8c2938badf820e79a976"><div class="ttname"><a href="../../d6/d87/regint_8h.html#a6de11f24647b8c2938badf820e79a976">st_init_numtable</a></div><div class="ttdeci">#define st_init_numtable</div><div class="ttdef"><b>Definition:</b> <a href="../../d6/d87/regint_8h_source.html#l00142">regint.h:142</a></div></div> <div class="ttc" id="gc_8h_html_af304d34de3474d75064e0cba170b7bf5"><div class="ttname"><a href="../../d0/daa/gc_8h.html#af304d34de3474d75064e0cba170b7bf5">RUBY_FREE_LEAVE</a></div><div class="ttdeci">#define RUBY_FREE_LEAVE(msg)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/daa/gc_8h_source.html#l00056">gc.h:56</a></div></div> <div class="ttc" id="structrb__data__type__struct_html"><div class="ttname"><a href="../../d7/de2/structrb__data__type__struct.html">rb_data_type_struct</a></div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00770">ruby.h:770</a></div></div> <div class="ttc" id="id_8h_html_a08dd4fbd61c5fde369edd59783f753b3a4a41bd30fb1ed7f08b1f1489735f57ea"><div class="ttname"><a href="../../df/db9/id_8h.html#a08dd4fbd61c5fde369edd59783f753b3a4a41bd30fb1ed7f08b1f1489735f57ea">id_core_define_singleton_method</a></div><div class="ttdef"><b>Definition:</b> <a href="../../df/db9/id_8h_source.html#l00070">id.h:70</a></div></div> <div class="ttc" id="gc_8h_html_a5d959738efb454623a7dad84d728262a"><div class="ttname"><a href="../../d0/daa/gc_8h.html#a5d959738efb454623a7dad84d728262a">RUBY_FREE_ENTER</a></div><div class="ttdeci">#define RUBY_FREE_ENTER(msg)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/daa/gc_8h_source.html#l00055">gc.h:55</a></div></div> <div class="ttc" id="structrb__control__frame__t_html_a4c11a50358317e1207affd6d7b4ad576"><div class="ttname"><a href="../../dd/d84/structrb__control__frame__t.html#a4c11a50358317e1207affd6d7b4ad576">rb_control_frame_t::self</a></div><div class="ttdeci">VALUE self</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00338">vm_core.h:338</a></div></div> <div class="ttc" id="vm_8c_html_aa873ebca03e88966c9fd8710cff0a429"><div class="ttname"><a href="../../de/de9/vm_8c.html#aa873ebca03e88966c9fd8710cff0a429">vm_cfp_svar_set</a></div><div class="ttdeci">static void vm_cfp_svar_set(rb_thread_t *th, rb_control_frame_t *cfp, VALUE key, const VALUE val)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00722">vm.c:722</a></div></div> <div class="ttc" id="structrb__iseq__struct_html_aaf3c6629a41865ab662884b7481fb394"><div class="ttname"><a href="../../d6/de3/structrb__iseq__struct.html#aaf3c6629a41865ab662884b7481fb394">rb_iseq_struct::catch_table</a></div><div class="ttdeci">struct iseq_catch_table_entry * catch_table</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00227">vm_core.h:227</a></div></div> <div class="ttc" id="random_8c_html_a742229490b6759a90ece7ba82ba129d5"><div class="ttname"><a href="../../dc/de5/random_8c.html#a742229490b6759a90ece7ba82ba129d5">key</a></div><div class="ttdeci">uint8_t key[16]</div><div class="ttdef"><b>Definition:</b> <a href="../../dc/de5/random_8c_source.html#l01284">random.c:1284</a></div></div> <div class="ttc" id="vm_8c_html_aade475ee7a5ceb8e727ec38287af0e95"><div class="ttname"><a href="../../de/de9/vm_8c.html#aade475ee7a5ceb8e727ec38287af0e95">rb_cThread</a></div><div class="ttdeci">VALUE rb_cThread</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00036">vm.c:36</a></div></div> <div class="ttc" id="vm_8c_html_af41ce3aa993b8eb956d96a10060fdcca"><div class="ttname"><a href="../../de/de9/vm_8c.html#af41ce3aa993b8eb956d96a10060fdcca">ruby_vm_run_at_exit_hooks</a></div><div class="ttdeci">static void ruby_vm_run_at_exit_hooks(rb_vm_t *vm)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00211">vm.c:211</a></div></div> <div class="ttc" id="structrb__thread__struct_html_aabd5971200cda279bd826c2bd00f870f"><div class="ttname"><a href="../../d2/d66/structrb__thread__struct.html#aabd5971200cda279bd826c2bd00f870f">rb_thread_struct::root_fiber</a></div><div class="ttdeci">VALUE root_fiber</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00484">vm_core.h:484</a></div></div> <div class="ttc" id="structrb__iseq__struct_html_afbae994355f91f3ea547570debb757c0"><div class="ttname"><a href="../../d6/de3/structrb__iseq__struct.html#afbae994355f91f3ea547570debb757c0">rb_iseq_struct::local_size</a></div><div class="ttdeci">int local_size</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00186">vm_core.h:186</a></div></div> <div class="ttc" id="structrb__thread__struct_html_ad4f0d497c78f3ab7f172d67c6b202b18"><div class="ttname"><a href="../../d2/d66/structrb__thread__struct.html#ad4f0d497c78f3ab7f172d67c6b202b18">rb_thread_struct::fiber</a></div><div class="ttdeci">VALUE fiber</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00483">vm_core.h:483</a></div></div> <div class="ttc" id="structrb__block__struct_html_ac3696ee534a836d6ccc55cdeb2181ac5"><div class="ttname"><a href="../../da/dc0/structrb__block__struct.html#ac3696ee534a836d6ccc55cdeb2181ac5">rb_block_struct::dfp</a></div><div class="ttdeci">VALUE * dfp</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00349">vm_core.h:349</a></div></div> <div class="ttc" id="vm__core_8h_html_a7a99483c2c0fd30a4d89052ef1d7d547"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a7a99483c2c0fd30a4d89052ef1d7d547">EXEC_EVENT_HOOK_AND_POP_FRAME</a></div><div class="ttdeci">#define EXEC_EVENT_HOOK_AND_POP_FRAME(th, flag, self, id, klass)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00746">vm_core.h:746</a></div></div> <div class="ttc" id="vm_8c_html_ac09fe4b7c739818891e16b9b06110d87"><div class="ttname"><a href="../../de/de9/vm_8c.html#ac09fe4b7c739818891e16b9b06110d87">env_data_type</a></div><div class="ttdeci">static const rb_data_type_t env_data_type</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00293">vm.c:293</a></div></div> <div class="ttc" id="gc_8h_html_afad3c58fae104a867be4305d1f96414a"><div class="ttname"><a href="../../d0/daa/gc_8h.html#afad3c58fae104a867be4305d1f96414a">RUBY_MARK_UNLESS_NULL</a></div><div class="ttdeci">#define RUBY_MARK_UNLESS_NULL(ptr)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/daa/gc_8h_source.html#l00060">gc.h:60</a></div></div> <div class="ttc" id="structrb__iseq__struct_html_a4f2f75b5dd56c2069139710fc684bb67"><div class="ttname"><a href="../../d6/de3/structrb__iseq__struct.html#a4f2f75b5dd56c2069139710fc684bb67">rb_iseq_struct::insn_info_size</a></div><div class="ttdeci">size_t insn_info_size</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00180">vm_core.h:180</a></div></div> <div class="ttc" id="structrb__binding__t_html"><div class="ttname"><a href="../../d3/d76/structrb__binding__t.html">rb_binding_t</a></div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00550">vm_core.h:550</a></div></div> <div class="ttc" id="structrb__control__frame__t_html_a4b25ca925a9f60481173632b9c09d4e0"><div class="ttname"><a href="../../dd/d84/structrb__control__frame__t.html#a4b25ca925a9f60481173632b9c09d4e0">rb_control_frame_t::iseq</a></div><div class="ttdeci">rb_iseq_t * iseq</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00336">vm_core.h:336</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_a008ad47ad1b6add87c9dc674e976380c"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#a008ad47ad1b6add87c9dc674e976380c">RUBY_EVENT_END</a></div><div class="ttdeci">#define RUBY_EVENT_END</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l01405">ruby.h:1405</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_acb14aa93d3dc60a9d16570270154e6fa"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#acb14aa93d3dc60a9d16570270154e6fa">TypedData_Make_Struct</a></div><div class="ttdeci">#define TypedData_Make_Struct(klass, type, data_type, sval)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00829">ruby.h:829</a></div></div> <div class="ttc" id="structiseq__insn__info__entry_html_a6d449a8f403d3452777aca050b5c97fb"><div class="ttname"><a href="../../db/ded/structiseq__insn__info__entry.html#a6d449a8f403d3452777aca050b5c97fb">iseq_insn_info_entry::line_no</a></div><div class="ttdeci">unsigned short line_no</div><div class="ttdef"><b>Definition:</b> <a href="../../d7/dc8/iseq_8h_source.html#l00048">iseq.h:48</a></div></div> <div class="ttc" id="vm_8c_html_a1a2da1f8e6027c3088ccde6bc397b34d"><div class="ttname"><a href="../../de/de9/vm_8c.html#a1a2da1f8e6027c3088ccde6bc397b34d">vm_backtrace</a></div><div class="ttdeci">static VALUE vm_backtrace(rb_thread_t *th, int lev)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00861">vm.c:861</a></div></div> <div class="ttc" id="st_8h_html"><div class="ttname"><a href="../../dd/d24/st_8h.html">st.h</a></div></div> <div class="ttc" id="structrb__thread__struct_html_a25bbafcd0a1e0f6f79b42cc29baf3eb8"><div class="ttname"><a href="../../d2/d66/structrb__thread__struct.html#a25bbafcd0a1e0f6f79b42cc29baf3eb8">rb_thread_struct::state</a></div><div class="ttdeci">int state</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00406">vm_core.h:406</a></div></div> <div class="ttc" id="vm__core_8h_html_a36e942386b2b43383c44e769bffe5808"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a36e942386b2b43383c44e769bffe5808">GetThreadPtr</a></div><div class="ttdeci">#define GetThreadPtr(obj, ptr)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00356">vm_core.h:356</a></div></div> <div class="ttc" id="vm_8h_html"><div class="ttname"><a href="../../da/d0a/vm_8h.html">vm.h</a></div></div> <div class="ttc" id="vm_8c_html_ad53ef65d4a92f8337548b752d4b44b9e"><div class="ttname"><a href="../../de/de9/vm_8c.html#ad53ef65d4a92f8337548b752d4b44b9e">rb_gc_stack_maxsize</a></div><div class="ttdeci">size_t rb_gc_stack_maxsize</div></div> <div class="ttc" id="structrb__control__frame__t_html_aad61bbd9da30e861bfb5fb9669d974cb"><div class="ttname"><a href="../../dd/d84/structrb__control__frame__t.html#aad61bbd9da30e861bfb5fb9669d974cb">rb_control_frame_t::proc</a></div><div class="ttdeci">VALUE proc</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00342">vm_core.h:342</a></div></div> <div class="ttc" id="structrb__vm__struct_html_aa4d70f7ac782e2587683d28c1a99d6ea"><div class="ttname"><a href="../../db/d74/structrb__vm__struct.html#aa4d70f7ac782e2587683d28c1a99d6ea">rb_vm_struct::debug</a></div><div class="ttdeci">VALUE debug</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00316">vm_core.h:316</a></div></div> <div class="ttc" id="vm_8c_html_ae4b1c6a8b7a127fbd91c24d4198c9964"><div class="ttname"><a href="../../de/de9/vm_8c.html#ae4b1c6a8b7a127fbd91c24d4198c9964">vm_free</a></div><div class="ttdeci">#define vm_free</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01615">vm.c:1615</a></div></div> <div class="ttc" id="regint_8h_html_ab6920d7d3a34f3d179d1f35806e1965f"><div class="ttname"><a href="../../d6/d87/regint_8h.html#ab6920d7d3a34f3d179d1f35806e1965f">st_insert</a></div><div class="ttdeci">#define st_insert</div><div class="ttdef"><b>Definition:</b> <a href="../../d6/d87/regint_8h_source.html#l00148">regint.h:148</a></div></div> <div class="ttc" id="vm_8c_html_a6fc04023a326c5129423edebf52894fd"><div class="ttname"><a href="../../de/de9/vm_8c.html#a6fc04023a326c5129423edebf52894fd">rb_vm_change_state</a></div><div class="ttdeci">void rb_vm_change_state(void)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00063">vm.c:63</a></div></div> <div class="ttc" id="vm_8c_html_ab4e70e1584b736c0698101beabd2a2bd"><div class="ttname"><a href="../../de/de9/vm_8c.html#ab4e70e1584b736c0698101beabd2a2bd">thread_alloc</a></div><div class="ttdeci">static VALUE thread_alloc(VALUE klass)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01872">vm.c:1872</a></div></div> <div class="ttc" id="vm_8c_html_acb7274747d1f091bee63b471c7a81654"><div class="ttname"><a href="../../de/de9/vm_8c.html#acb7274747d1f091bee63b471c7a81654">env_free</a></div><div class="ttdeci">static void env_free(void *const ptr)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00268">vm.c:268</a></div></div> <div class="ttc" id="structrb__vm__struct_html_a60a372cceaf16011b6c3d3b6861df36b"><div class="ttname"><a href="../../db/d74/structrb__vm__struct.html#a60a372cceaf16011b6c3d3b6861df36b">rb_vm_struct::self</a></div><div class="ttdeci">VALUE self</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00278">vm_core.h:278</a></div></div> <div class="ttc" id="vm_8c_html_aadc79f2891643166c13ed45e187396f2"><div class="ttname"><a href="../../de/de9/vm_8c.html#aadc79f2891643166c13ed45e187396f2">vm_analysis_insn</a></div><div class="ttdeci">void vm_analysis_insn(int insn)</div></div> <div class="ttc" id="nkf-utf8_2nkf_8c_html_a8f8f80d37794cde9472343e4487ba3eb"><div class="ttname"><a href="../../d6/da0/nkf-utf8_2nkf_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a></div><div class="ttdeci">const char * name</div><div class="ttdef"><b>Definition:</b> <a href="../../d6/da0/nkf-utf8_2nkf_8c_source.html#l00208">nkf.c:208</a></div></div> <div class="ttc" id="structrb__vm__struct_html"><div class="ttname"><a href="../../db/d74/structrb__vm__struct.html">rb_vm_struct</a></div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00277">vm_core.h:277</a></div></div> <div class="ttc" id="structrb__iseq__struct_html_a46d5fb5c3de970a9540ab85d4b060957"><div class="ttname"><a href="../../d6/de3/structrb__iseq__struct.html#a46d5fb5c3de970a9540ab85d4b060957">rb_iseq_struct::self</a></div><div class="ttdeci">VALUE self</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00238">vm_core.h:238</a></div></div> <div class="ttc" id="structrb__iseq__struct_html"><div class="ttname"><a href="../../d6/de3/structrb__iseq__struct.html">rb_iseq_struct</a></div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00151">vm_core.h:151</a></div></div> <div class="ttc" id="vm__core_8h_html_a5e6a3515e0ad9b9d6a4c0ab577dc50b6"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a5e6a3515e0ad9b9d6a4c0ab577dc50b6">GetISeqPtr</a></div><div class="ttdeci">#define GetISeqPtr(obj, ptr)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00146">vm_core.h:146</a></div></div> <div class="ttc" id="structiseq__catch__table__entry_html_a948846a98f14e75301964e17a95afcea"><div class="ttname"><a href="../../dc/d07/structiseq__catch__table__entry.html#a948846a98f14e75301964e17a95afcea">iseq_catch_table_entry::cont</a></div><div class="ttdeci">unsigned long cont</div><div class="ttdef"><b>Definition:</b> <a href="../../d7/dc8/iseq_8h_source.html#l00064">iseq.h:64</a></div></div> <div class="ttc" id="vm__core_8h_html_a027718c64d1aa742ccdb9c1a68afaa75a7b74b43e0bf953520175df870c5aef3c"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a027718c64d1aa742ccdb9c1a68afaa75a7b74b43e0bf953520175df870c5aef3c">THREAD_RUNNABLE</a></div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00361">vm_core.h:361</a></div></div> <div class="ttc" id="ripper_8c_html_a877bc58c495643fcf49dc64c44631e72"><div class="ttname"><a href="../../d5/d11/ripper_8c.html#a877bc58c495643fcf49dc64c44631e72">rb_id2name</a></div><div class="ttdeci">const char * rb_id2name(ID id)</div><div class="ttdef"><b>Definition:</b> <a href="../../d5/d11/ripper_8c_source.html#l16362">ripper.c:16362</a></div></div> <div class="ttc" id="vm_8c_html_aa775eb74347f7cde2375d8c694ff47aa"><div class="ttname"><a href="../../de/de9/vm_8c.html#aa775eb74347f7cde2375d8c694ff47aa">m_core_set_variable_alias</a></div><div class="ttdeci">static VALUE m_core_set_variable_alias(VALUE self, VALUE sym1, VALUE sym2)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l02009">vm.c:2009</a></div></div> <div class="ttc" id="structrb__thread__struct_html_adc5048ddde96e3ea2e6b22c3e58ce696"><div class="ttname"><a href="../../d2/d66/structrb__thread__struct.html#adc5048ddde96e3ea2e6b22c3e58ce696">rb_thread_struct::safe_level</a></div><div class="ttdeci">int safe_level</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00401">vm_core.h:401</a></div></div> <div class="ttc" id="array_8c_html_a28b218710cccc0bf0ca8467e9bbfa60f"><div class="ttname"><a href="../../dc/dcc/array_8c.html#a28b218710cccc0bf0ca8467e9bbfa60f">rb_ary_reverse</a></div><div class="ttdeci">VALUE rb_ary_reverse(VALUE ary)</div><div class="ttdef"><b>Definition:</b> <a href="../../dc/dcc/array_8c_source.html#l01858">array.c:1858</a></div></div> <div class="ttc" id="structrb__thread__struct_html_a6e712e6c5295a4173188139f1d6b7462"><div class="ttname"><a href="../../d2/d66/structrb__thread__struct.html#a6e712e6c5295a4173188139f1d6b7462">rb_thread_struct::self</a></div><div class="ttdeci">VALUE self</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00394">vm_core.h:394</a></div></div> <div class="ttc" id="vm__core_8h_html_a70702992b3bf190c5dd8a4dffd79e2cd"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a70702992b3bf190c5dd8a4dffd79e2cd">rb_thread_t</a></div><div class="ttdeci">struct rb_thread_struct rb_thread_t</div></div> <div class="ttc" id="vm_8c_html_ab5b731afdd8e86459bd5ddbc587c8a1c"><div class="ttname"><a href="../../de/de9/vm_8c.html#ab5b731afdd8e86459bd5ddbc587c8a1c">m_core_set_method_alias</a></div><div class="ttdeci">static VALUE m_core_set_method_alias(VALUE self, VALUE cbase, VALUE sym1, VALUE sym2)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l02000">vm.c:2000</a></div></div> <div class="ttc" id="regint_8h_html_ae0adede5868e71009c620a32a7b9d61e"><div class="ttname"><a href="../../d6/d87/regint_8h.html#ae0adede5868e71009c620a32a7b9d61e">st_free_table</a></div><div class="ttdeci">#define st_free_table</div><div class="ttdef"><b>Definition:</b> <a href="../../d6/d87/regint_8h_source.html#l00152">regint.h:152</a></div></div> <div class="ttc" id="vm__core_8h_html_a885c6468caef6c3de80b0ad6c50ae38d"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a885c6468caef6c3de80b0ad6c50ae38d">VM_FRAME_MAGIC_FINISH</a></div><div class="ttdeci">#define VM_FRAME_MAGIC_FINISH</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00576">vm_core.h:576</a></div></div> <div class="ttc" id="vm_8c_html_aba01cea003dce480ff70e17597990208"><div class="ttname"><a href="../../de/de9/vm_8c.html#aba01cea003dce480ff70e17597990208">m_core_set_postexe</a></div><div class="ttdeci">static VALUE m_core_set_postexe(VALUE self, VALUE iseqval)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l02028">vm.c:2028</a></div></div> <div class="ttc" id="structiseq__catch__table__entry_html_a919aa1dbe534777ff38a07a17b956524"><div class="ttname"><a href="../../dc/d07/structiseq__catch__table__entry.html#a919aa1dbe534777ff38a07a17b956524">iseq_catch_table_entry::iseq</a></div><div class="ttdeci">VALUE iseq</div><div class="ttdef"><b>Definition:</b> <a href="../../d7/dc8/iseq_8h_source.html#l00061">iseq.h:61</a></div></div> <div class="ttc" id="thread_8c_html_a152e345de139a53b412409fe441067a0"><div class="ttname"><a href="../../d3/de7/thread_8c.html#a152e345de139a53b412409fe441067a0">rb_vm_gvl_destroy</a></div><div class="ttdeci">void rb_vm_gvl_destroy(rb_vm_t *vm)</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/de7/thread_8c_source.html#l00259">thread.c:259</a></div></div> <div class="ttc" id="structrb__event__hook__struct_html_aa6137e2130d9fd79d3efe46bdfce89ec"><div class="ttname"><a href="../../d8/d86/structrb__event__hook__struct.html#aa6137e2130d9fd79d3efe46bdfce89ec">rb_event_hook_struct::data</a></div><div class="ttdeci">VALUE data</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l01422">ruby.h:1422</a></div></div> <div class="ttc" id="vm_8c_html_a1afa8b88ecd32dd5f8fecdc8c31568e7"><div class="ttname"><a href="../../de/de9/vm_8c.html#a1afa8b88ecd32dd5f8fecdc8c31568e7">rb_lastline_set</a></div><div class="ttdeci">void rb_lastline_set(VALUE val)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00761">vm.c:761</a></div></div> <div class="ttc" id="method_8h_html_a88a981f6cc69187ed9c2de2630a1687aa1691810af54507b018d2639b60e8057d"><div class="ttname"><a href="../../db/d0a/method_8h.html#a88a981f6cc69187ed9c2de2630a1687aa1691810af54507b018d2639b60e8057d">VM_METHOD_TYPE_CFUNC</a></div><div class="ttdef"><b>Definition:</b> <a href="../../db/d0a/method_8h_source.html#l00036">method.h:36</a></div></div> <div class="ttc" id="intern_8h_html_a372d6acb27d271ee4fc2e88c7022c485"><div class="ttname"><a href="../../db/d2e/intern_8h.html#a372d6acb27d271ee4fc2e88c7022c485">rb_check_frozen</a></div><div class="ttdeci">#define rb_check_frozen(obj)</div><div class="ttdef"><b>Definition:</b> <a href="../../db/d2e/intern_8h_source.html#l00242">intern.h:242</a></div></div> <div class="ttc" id="vm__core_8h_html_a373f1cafd944ff9e99986582d0fd695b"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a373f1cafd944ff9e99986582d0fd695b">GC_GUARDED_PTR_REF</a></div><div class="ttdeci">#define GC_GUARDED_PTR_REF(p)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00608">vm_core.h:608</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_aa50b9d5bc665eb5545f6857c89232161"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#aa50b9d5bc665eb5545f6857c89232161">CONST_ID</a></div><div class="ttdeci">#define CONST_ID(var, str)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l01127">ruby.h:1127</a></div></div> <div class="ttc" id="iseq_8c_html_a356d85dc4610b2e4f8fdd2c9cede6780"><div class="ttname"><a href="../../dd/d74/iseq_8c.html#a356d85dc4610b2e4f8fdd2c9cede6780">rb_iseq_new</a></div><div class="ttdeci">VALUE rb_iseq_new(NODE *node, VALUE name, VALUE filename, VALUE filepath, VALUE parent, enum iseq_type type)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d74/iseq_8c_source.html#l00380">iseq.c:380</a></div></div> <div class="ttc" id="id_8h_html_a08dd4fbd61c5fde369edd59783f753b3a281bc2e6e4d11c2b5e9224421bfd9a5a"><div class="ttname"><a href="../../df/db9/id_8h.html#a08dd4fbd61c5fde369edd59783f753b3a281bc2e6e4d11c2b5e9224421bfd9a5a">id_core_set_postexe</a></div><div class="ttdef"><b>Definition:</b> <a href="../../df/db9/id_8h_source.html#l00071">id.h:71</a></div></div> <div class="ttc" id="intern_8h_html_a8ea3742679211f408cb5769de6cf0d46"><div class="ttname"><a href="../../db/d2e/intern_8h.html#a8ea3742679211f408cb5769de6cf0d46">rb_obj_freeze</a></div><div class="ttdeci">VALUE rb_obj_freeze(VALUE)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/de1/object_8c_source.html#l00902">object.c:902</a></div></div> <div class="ttc" id="vm_8c_html_a518d3ecb1212b2eea58b409fd4ace787"><div class="ttname"><a href="../../de/de9/vm_8c.html#a518d3ecb1212b2eea58b409fd4ace787">ENV_VAL</a></div><div class="ttdeci">#define ENV_VAL(env)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00235">vm.c:235</a></div></div> <div class="ttc" id="method_8h_html_a1e54ff32a6191e40451e1523c61ca439acbaffd02a49dab8af6ca3bcde9336f30"><div class="ttname"><a href="../../db/d0a/method_8h.html#a1e54ff32a6191e40451e1523c61ca439acbaffd02a49dab8af6ca3bcde9336f30">NOEX_PUBLIC</a></div><div class="ttdef"><b>Definition:</b> <a href="../../db/d0a/method_8h_source.html#l00015">method.h:15</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_ac59489a7ed093e29019047d13e79c009"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#ac59489a7ed093e29019047d13e79c009">SPECIAL_CONST_P</a></div><div class="ttdeci">#define SPECIAL_CONST_P(x)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00953">ruby.h:953</a></div></div> <div class="ttc" id="gb18030_8c_html_adc6e5733fc3c22f0a7b2914188c49c90"><div class="ttname"><a href="../../d5/d1d/gb18030_8c.html#adc6e5733fc3c22f0a7b2914188c49c90">state</a></div><div class="ttdeci">state</div><div class="ttdef"><b>Definition:</b> <a href="../../d5/d1d/gb18030_8c_source.html#l00213">gb18030.c:213</a></div></div> <div class="ttc" id="structrb__thread__struct_html_a1587dec1a575fb9f8d6a689ef4fdb6b5"><div class="ttname"><a href="../../d2/d66/structrb__thread__struct.html#a1587dec1a575fb9f8d6a689ef4fdb6b5">rb_thread_struct::stack_size</a></div><div class="ttdeci">unsigned long stack_size</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00399">vm_core.h:399</a></div></div> <div class="ttc" id="structrb__vm__struct_html_a3f2af823747e05c39f7ebd9113e18d3a"><div class="ttname"><a href="../../db/d74/structrb__vm__struct.html#a3f2af823747e05c39f7ebd9113e18d3a">rb_vm_struct::load_path</a></div><div class="ttdeci">VALUE load_path</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00301">vm_core.h:301</a></div></div> <div class="ttc" id="structrb__iseq__struct_html_a7d6b0dd003b6703454061024b11481ad"><div class="ttname"><a href="../../d6/de3/structrb__iseq__struct.html#a7d6b0dd003b6703454061024b11481ad">rb_iseq_struct::insn_info_table</a></div><div class="ttdeci">struct iseq_insn_info_entry * insn_info_table</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00179">vm_core.h:179</a></div></div> <div class="ttc" id="vm_8c_html_ac482343a3f810e935739993994e26b22"><div class="ttname"><a href="../../de/de9/vm_8c.html#ac482343a3f810e935739993994e26b22">RECYCLE_MAX</a></div><div class="ttdeci">#define RECYCLE_MAX</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01681">vm.c:1681</a></div></div> <div class="ttc" id="vm_8c_html_afbd004fdeff5b9e93c1a3792114f0be0"><div class="ttname"><a href="../../de/de9/vm_8c.html#afbd004fdeff5b9e93c1a3792114f0be0">vm_make_proc_from_block</a></div><div class="ttdeci">static VALUE vm_make_proc_from_block(rb_thread_t *th, rb_block_t *block)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00552">vm.c:552</a></div></div> <div class="ttc" id="array_8c_html_a9cfa42d4b79c89d68c53be8b2150a503"><div class="ttname"><a href="../../dc/dcc/array_8c.html#a9cfa42d4b79c89d68c53be8b2150a503">rb_intern</a></div><div class="ttdeci">#define rb_intern(str)</div></div> <div class="ttc" id="vm_8c_html_a452b5b1b1a54238cd749112eb9e9d688"><div class="ttname"><a href="../../de/de9/vm_8c.html#a452b5b1b1a54238cd749112eb9e9d688">rb_sourcefile</a></div><div class="ttdeci">const char * rb_sourcefile(void)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00874">vm.c:874</a></div></div> <div class="ttc" id="win32_8c_html_af973ca20f6594ad664c03daa83867128"><div class="ttname"><a href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a></div><div class="ttdeci">#define env</div></div> <div class="ttc" id="__sdbm_8c_html_a070d2ce7b6bb7e5c05602aa8c308d0c4"><div class="ttname"><a href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a></div><div class="ttdeci">#define NULL</div><div class="ttdef"><b>Definition:</b> <a href="../../d4/db0/__sdbm_8c_source.html#l00107">_sdbm.c:107</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_a2edf6990280eb2637623ccd421dee4f0"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#a2edf6990280eb2637623ccd421dee4f0">Qundef</a></div><div class="ttdeci">#define Qundef</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00368">ruby.h:368</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_a82c8c4569748b9645c958b9eaeaabb81"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#a82c8c4569748b9645c958b9eaeaabb81">T_ICLASS</a></div><div class="ttdeci">#define T_ICLASS</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00415">ruby.h:415</a></div></div> <div class="ttc" id="structrb__thread__struct_html_a3c9e667590cfe18b655cbe812e04d643"><div class="ttname"><a href="../../d2/d66/structrb__thread__struct.html#a3c9e667590cfe18b655cbe812e04d643">rb_thread_struct::stat_insn_usage</a></div><div class="ttdeci">VALUE stat_insn_usage</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00475">vm_core.h:475</a></div></div> <div class="ttc" id="structrb__thread__struct_html_a173e2da61fa57c7044fd7874a8c7a924"><div class="ttname"><a href="../../d2/d66/structrb__thread__struct.html#a173e2da61fa57c7044fd7874a8c7a924">rb_thread_struct::errinfo</a></div><div class="ttdeci">VALUE errinfo</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00437">vm_core.h:437</a></div></div> <div class="ttc" id="vm__insnhelper_8h_html_a8e91da0eaddd34a78c8f9c5207df8979"><div class="ttname"><a href="../../d2/d5f/vm__insnhelper_8h.html#a8e91da0eaddd34a78c8f9c5207df8979">INC_VM_STATE_VERSION</a></div><div class="ttdeci">#define INC_VM_STATE_VERSION()</div><div class="ttdef"><b>Definition:</b> <a href="../../d2/d5f/vm__insnhelper_8h_source.html#l00214">vm_insnhelper.h:214</a></div></div> <div class="ttc" id="structiseq__insn__info__entry_html_ad42ccac526cf4800ca5262006d35ee26"><div class="ttname"><a href="../../db/ded/structiseq__insn__info__entry.html#ad42ccac526cf4800ca5262006d35ee26">iseq_insn_info_entry::position</a></div><div class="ttdeci">unsigned short position</div><div class="ttdef"><b>Definition:</b> <a href="../../d7/dc8/iseq_8h_source.html#l00047">iseq.h:47</a></div></div> <div class="ttc" id="group__class_html_ga164285b5b5225740d582d4c3773f9179"><div class="ttname"><a href="../../de/ddf/group__class.html#ga164285b5b5225740d582d4c3773f9179">rb_class_new</a></div><div class="ttdeci">VALUE rb_class_new(VALUE super)</div><div class="ttdoc">Creates a new class. </div><div class="ttdef"><b>Definition:</b> <a href="../../d9/d0c/class_8c_source.html#l00116">class.c:116</a></div></div> <div class="ttc" id="intern_8h_html_ada1577ce4242b06ff5c1c52f37f5e679"><div class="ttname"><a href="../../db/d2e/intern_8h.html#ada1577ce4242b06ff5c1c52f37f5e679">rb_str_new2</a></div><div class="ttdeci">VALUE rb_str_new2(const char *)</div></div> <div class="ttc" id="eval__intern_8h_html_a3cc03eefb2b828e688368c647698e1b7"><div class="ttname"><a href="../../dd/dd0/eval__intern_8h.html#a3cc03eefb2b828e688368c647698e1b7">GET_THROWOBJ_VAL</a></div><div class="ttdeci">#define GET_THROWOBJ_VAL(obj)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/dd0/eval__intern_8h_source.html#l00169">eval_intern.h:169</a></div></div> <div class="ttc" id="win32ole_8c_html_a18100522f0b19b5e9b9875f5737a9386"><div class="ttname"><a href="../../d2/d99/win32ole_8c.html#a18100522f0b19b5e9b9875f5737a9386">free</a></div><div class="ttdeci">free(psz)</div></div> <div class="ttc" id="vm_8c_html_a7eda924b79844f890f5ba44800c1c520"><div class="ttname"><a href="../../de/de9/vm_8c.html#a7eda924b79844f890f5ba44800c1c520">rb_obj_is_thread</a></div><div class="ttdeci">VALUE rb_obj_is_thread(VALUE obj)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01861">vm.c:1861</a></div></div> <div class="ttc" id="vm_8c_html_a5628587c50e8c4ba85eb1f3df1fa19e2"><div class="ttname"><a href="../../de/de9/vm_8c.html#a5628587c50e8c4ba85eb1f3df1fa19e2">ruby_vm_verbose_ptr</a></div><div class="ttdeci">VALUE * ruby_vm_verbose_ptr(rb_vm_t *vm)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l02277">vm.c:2277</a></div></div> <div class="ttc" id="vm_8c_html_a810304f38337326e623456a52492584f"><div class="ttname"><a href="../../de/de9/vm_8c.html#a810304f38337326e623456a52492584f">rb_vm_check_redefinition_opt_method</a></div><div class="ttdeci">static void rb_vm_check_redefinition_opt_method(const rb_method_entry_t *me)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01044">vm.c:1044</a></div></div> <div class="ttc" id="vm_8c_html_a891ada54116b1442538ca6fc0e2861b1"><div class="ttname"><a href="../../de/de9/vm_8c.html#a891ada54116b1442538ca6fc0e2861b1">vm_init_redefined_flag</a></div><div class="ttdeci">static void vm_init_redefined_flag(void)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01068">vm.c:1068</a></div></div> <div class="ttc" id="vm__core_8h_html_a189286b1d291cc780c5205d00e1b47e6"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a189286b1d291cc780c5205d00e1b47e6">rb_thread_set_current_raw</a></div><div class="ttdeci">#define rb_thread_set_current_raw(th)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00691">vm_core.h:691</a></div></div> <div class="ttc" id="structrb__vm__struct_html_a21b034468dbe39d33b06fff964a45e9e"><div class="ttname"><a href="../../db/d74/structrb__vm__struct.html#a21b034468dbe39d33b06fff964a45e9e">rb_vm_struct::coverages</a></div><div class="ttdeci">VALUE coverages</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00317">vm_core.h:317</a></div></div> <div class="ttc" id="vm_8c_html_a22af4689a1b73006b14a25502191cde5"><div class="ttname"><a href="../../de/de9/vm_8c.html#a22af4689a1b73006b14a25502191cde5">vm_analysis_register</a></div><div class="ttdeci">void vm_analysis_register(int reg, int isset)</div></div> <div class="ttc" id="structrb__thread__struct_html_acbd5b841dcb2158ed2111abd6b876251"><div class="ttname"><a href="../../d2/d66/structrb__thread__struct.html#acbd5b841dcb2158ed2111abd6b876251">rb_thread_struct::thread_id</a></div><div class="ttdeci">rb_thread_id_t thread_id</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00427">vm_core.h:427</a></div></div> <div class="ttc" id="vm_8c_html_af5f87f9d39ea7433dc0de2f655bd6359"><div class="ttname"><a href="../../de/de9/vm_8c.html#af5f87f9d39ea7433dc0de2f655bd6359">rb_sourceline</a></div><div class="ttdeci">int rb_sourceline(void)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00888">vm.c:888</a></div></div> <div class="ttc" id="ruby_8c_html_af2efa898e9eed6fe6715279cb1ec35b0"><div class="ttname"><a href="../../df/d77/ruby_8c.html#af2efa898e9eed6fe6715279cb1ec35b0">argv</a></div><div class="ttdeci">char ** argv</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d77/ruby_8c_source.html#l00121">ruby.c:121</a></div></div> <div class="ttc" id="vm__insnhelper_8h_html_aa618c4d8c29ef4efe6f10c741fb1f47aa234b86bd36a499b3fde775c6f4034108"><div class="ttname"><a href="../../d2/d5f/vm__insnhelper_8h.html#aa618c4d8c29ef4efe6f10c741fb1f47aa234b86bd36a499b3fde775c6f4034108">BOP_LAST_</a></div><div class="ttdef"><b>Definition:</b> <a href="../../d2/d5f/vm__insnhelper_8h_source.html#l00058">vm_insnhelper.h:58</a></div></div> <div class="ttc" id="eval__intern_8h_html_a277f73abdf66e83f4fc75b93d6e87b72"><div class="ttname"><a href="../../dd/dd0/eval__intern_8h.html#a277f73abdf66e83f4fc75b93d6e87b72">TAG_RETRY</a></div><div class="ttdeci">#define TAG_RETRY</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/dd0/eval__intern_8h_source.html#l00155">eval_intern.h:155</a></div></div> <div class="ttc" id="structrb__control__frame__t_html"><div class="ttname"><a href="../../dd/d84/structrb__control__frame__t.html">rb_control_frame_t</a></div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00332">vm_core.h:332</a></div></div> <div class="ttc" id="group__class_html_gad44e50d3f03c58fa8d5e4e50558df898"><div class="ttname"><a href="../../de/ddf/group__class.html#gad44e50d3f03c58fa8d5e4e50558df898">rb_iseq_clone</a></div><div class="ttdeci">VALUE rb_iseq_clone(VALUE iseqval, VALUE newcbase)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d74/iseq_8c_source.html#l01360">iseq.c:1360</a></div></div> <div class="ttc" id="vm__insnhelper_8c_html_abdbae6f122fc653110b2893cece182df"><div class="ttname"><a href="../../d0/db2/vm__insnhelper_8c.html#abdbae6f122fc653110b2893cece182df">vm_yield_with_cfunc</a></div><div class="ttdeci">static VALUE vm_yield_with_cfunc(rb_thread_t *th, const rb_block_t *block, VALUE self, int argc, const VALUE *argv, const rb_block_t *blockargptr)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/db2/vm__insnhelper_8c_source.html#l00698">vm_insnhelper.c:698</a></div></div> <div class="ttc" id="vm_8c_html_af3ce515dfb6ce5b335b9e2074c7572d2"><div class="ttname"><a href="../../de/de9/vm_8c.html#af3ce515dfb6ce5b335b9e2074c7572d2">rb_thread_current_status</a></div><div class="ttdeci">VALUE rb_thread_current_status(const rb_thread_t *th)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01520">vm.c:1520</a></div></div> <div class="ttc" id="structrb__env__t_html"><div class="ttname"><a href="../../d0/d73/structrb__env__t.html">rb_env_t</a></div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00539">vm_core.h:539</a></div></div> <div class="ttc" id="vm__core_8h_html_a6cfcd3997994924c8cd13c3b5c099ec6"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a6cfcd3997994924c8cd13c3b5c099ec6">GET_VM</a></div><div class="ttdeci">#define GET_VM()</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00689">vm_core.h:689</a></div></div> </div><!-- fragment --></div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="../../doxygen.png" alt="doxygen"/> </a> 1.8.14 </small></address> </body> </html>
💾 Save Changes
❌ Cancel