📁 File Manager Pro
v10.0.3 | PHP: 8.1.34
Server: Apache
2026-06-22 05:58:50
📂
/ (Root)
/
opt
/
alt
/
ruby20
/
share
/
doc
/
ruby
/
capi
/
html
/
de
/
de9
📍 /opt/alt/ruby20/share/doc/ruby/capi/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">2.0.0p648(2015-12-16revision53162)</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> <span class="preprocessor">#include "<a class="code" href="../../d8/dc4/probes_8h.html">probes.h</a>"</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include "<a class="code" href="../../d6/d27/probes__helper_8h.html">probes_helper.h</a>"</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div><div class="line"><a name="l00024"></a><span class="lineno"> 24</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="l00025"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a4e70ebd7bc0034dd333065fabad96362"> 25</a></span> <a class="code" href="../../de/de9/vm_8c.html#a4e70ebd7bc0034dd333065fabad96362">VM_EP_LEP</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *ep)</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="keywordflow">while</span> (1) {</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d8/d32/vm__core_8h.html#a619374642328720b7f656c69dd13faca">VM_EP_LEP_P</a>(ep)) {</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="keywordflow">return</span> ep;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  }</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  ep = <a class="code" href="../../d8/d32/vm__core_8h.html#a3e768fc2cff5b405b3cab29488daace1">VM_EP_PREV_EP</a>(ep);</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  }</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</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"> 35</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *</div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="../../d8/d32/vm__core_8h.html#ab52f1a9275d590532a7bcf08897d0db5"> 36</a></span> <a class="code" href="../../de/de9/vm_8c.html#ab52f1a9275d590532a7bcf08897d0db5">rb_vm_ep_local_ep</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *ep)</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> {</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="keywordflow">return</span> <a class="code" href="../../de/de9/vm_8c.html#a4e70ebd7bc0034dd333065fabad96362">VM_EP_LEP</a>(ep);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> }</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div><div class="line"><a name="l00041"></a><span class="lineno"> 41</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="l00042"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#aef56dc0756735c2f5d6e5cb594747503"> 42</a></span> <a class="code" href="../../de/de9/vm_8c.html#aef56dc0756735c2f5d6e5cb594747503">VM_CF_LEP</a>(<a class="code" href="../../de/dc6/structrb__control__frame__struct.html">rb_control_frame_t</a> *cfp)</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> {</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keywordflow">return</span> <a class="code" href="../../de/de9/vm_8c.html#a4e70ebd7bc0034dd333065fabad96362">VM_EP_LEP</a>(cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a98749000ef85777099b645d7d755275d">ep</a>);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> }</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="keyword">inline</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a3c036fe8ef4e1a83cc704014ee4cabf6"> 48</a></span> <a class="code" href="../../de/de9/vm_8c.html#a3c036fe8ef4e1a83cc704014ee4cabf6">VM_CF_PREV_EP</a>(<a class="code" href="../../de/dc6/structrb__control__frame__struct.html">rb_control_frame_t</a> * cfp)</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> {</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keywordflow">return</span> <a class="code" href="../../d8/d32/vm__core_8h.html#a3e768fc2cff5b405b3cab29488daace1">VM_EP_PREV_EP</a>((cfp)->ep);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> }</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="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="../../da/dc0/structrb__block__struct.html">rb_block_t</a> *</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a936d0f75f6bf996cd8845be07c6d08d8"> 54</a></span> <a class="code" href="../../de/de9/vm_8c.html#a936d0f75f6bf996cd8845be07c6d08d8">VM_CF_BLOCK_PTR</a>(<a class="code" href="../../de/dc6/structrb__control__frame__struct.html">rb_control_frame_t</a> *cfp)</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> {</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *ep = <a class="code" href="../../de/de9/vm_8c.html#aef56dc0756735c2f5d6e5cb594747503">VM_CF_LEP</a>(cfp);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keywordflow">return</span> <a class="code" href="../../d8/d32/vm__core_8h.html#a5410a86de3cd3499b2b1197ab89a0da4">VM_EP_BLOCK_PTR</a>(ep);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> }</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <a class="code" href="../../da/dc0/structrb__block__struct.html">rb_block_t</a> *</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="../../d8/d32/vm__core_8h.html#a560d20e8bc93acda0fad129d707f273a"> 61</a></span> <a class="code" href="../../de/de9/vm_8c.html#a560d20e8bc93acda0fad129d707f273a">rb_vm_control_frame_block_ptr</a>(<a class="code" href="../../de/dc6/structrb__control__frame__struct.html">rb_control_frame_t</a> *cfp)</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> {</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keywordflow">return</span> <a class="code" href="../../de/de9/vm_8c.html#a936d0f75f6bf996cd8845be07c6d08d8">VM_CF_BLOCK_PTR</a>(cfp);</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> </div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="preprocessor">#if VM_COLLECT_USAGE_DETAILS</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">static</span> <span class="keywordtype">void</span> vm_collect_usage_operand(<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="l00068"></a><span class="lineno"> 68</span> <span class="keyword">static</span> <span class="keywordtype">void</span> vm_collect_usage_insn(<span class="keywordtype">int</span> insn);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="keyword">static</span> <span class="keywordtype">void</span> vm_collect_usage_register(<span class="keywordtype">int</span> reg, <span class="keywordtype">int</span> isset);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div><div class="line"><a name="l00072"></a><span class="lineno"> 72</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="l00073"></a><span class="lineno"> 73</span> <a class="code" href="../../de/de9/vm_8c.html#aaf7bb4b661a43db4aeefc8b1520b3374">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>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> defined_class,</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</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="l00075"></a><span class="lineno"> 75</span> </div><div class="line"><a name="l00076"></a><span class="lineno"> 76</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="l00077"></a><span class="lineno"> 77</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="l00078"></a><span class="lineno"> 78</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="l00079"></a><span class="lineno"> 79</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="l00080"></a><span class="lineno"> 80</span> </div><div class="line"><a name="l00081"></a><span class="lineno"> 81</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="l00082"></a><span class="lineno"> 82</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="l00083"></a><span class="lineno"> 83</span> </div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="preprocessor">#include <assert.h></span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#aeca034f67218340ecb2261a22c2f3dcd"> 86</a></span> <span class="preprocessor">#define BUFSIZE 0x100</span></div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a750084962ee12011b63dd0b901058f71"> 87</a></span> <span class="preprocessor">#define PROCDEBUG 0</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a600dc9ffdba414e21dacfe809c4a9ec8"> 89</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="l00090"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#aade475ee7a5ceb8e727ec38287af0e95"> 90</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="l00091"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#ad55204994fe946dcd317061047845c3a"> 91</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="l00092"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a15744aab342112335b9189c8911ba625"> 92</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="l00093"></a><span class="lineno"> 93</span> </div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="../../d2/d5f/vm__insnhelper_8h.html#a29d64659d230fbf7dc7326585cdaa8e5"> 94</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="l00095"></a><span class="lineno"><a class="line" href="../../d2/d5f/vm__insnhelper_8h.html#ae7ebc888013290c4c514a63794167a87"> 95</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#a25e50be5c73e0b2fab54944e68dd48c2a234b86bd36a499b3fde775c6f4034108">BOP_LAST_</a>];</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="../../d8/d32/vm__core_8h.html#a21823fe13ba76a2161c1b35286853e32"> 96</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="l00097"></a><span class="lineno"><a class="line" href="../../d8/d32/vm__core_8h.html#a9be24d2deecfd3c43942e8c7cc4770a1"> 97</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="l00098"></a><span class="lineno"><a class="line" href="../../d8/d32/vm__core_8h.html#ab8677f4fed08c9fffe955fb1b76dcc85"> 98</a></span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a76a842035af1200c4d9d124d0eba2b95">rb_event_flag_t</a> <a class="code" href="../../de/de9/vm_8c.html#ab8677f4fed08c9fffe955fb1b76dcc85">ruby_vm_event_flags</a>;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div><div class="line"><a name="l00100"></a><span class="lineno"> 100</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="l00101"></a><span class="lineno"> 101</span> </div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="../../d8/d32/vm__core_8h.html#a6fc04023a326c5129423edebf52894fd"> 103</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="l00104"></a><span class="lineno"> 104</span> {</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <a class="code" href="../../d2/d5f/vm__insnhelper_8h.html#a8e91da0eaddd34a78c8f9c5207df8979">INC_VM_STATE_VERSION</a>();</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span> }</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> <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="l00109"></a><span class="lineno"> 109</span> </div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a7387e7f9d917b598fbda1ce48f6122c5"> 111</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="l00112"></a><span class="lineno"> 112</span> {</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="comment">/* TODO: Clear all inline cache entries in all iseqs.</span></div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="comment"> How to iterate all iseqs in sweep phase?</span></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="comment"> rb_objspace_each_objects() doesn't work at sweep phase.</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="comment"> */</span></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> </div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a2fa957ea281fa0f0ea74f4070cf04724"> 120</a></span> <a class="code" href="../../de/de9/vm_8c.html#a2fa957ea281fa0f0ea74f4070cf04724">vm_clear_all_cache</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="../../de/de9/vm_8c.html#a6ac679a303e8be8dffedf08bc252a624">vm_clear_global_method_cache</a>();</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <a class="code" href="../../de/de9/vm_8c.html#a7387e7f9d917b598fbda1ce48f6122c5">vm_clear_all_inline_method_cache</a>();</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</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="l00125"></a><span class="lineno"> 125</span> }</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="../../d8/d32/vm__core_8h.html#aff09679bd9e7c102ed3e3c3c6c04e182"> 128</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="l00129"></a><span class="lineno"> 129</span> {</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <a class="code" href="../../de/de9/vm_8c.html#a29d64659d230fbf7dc7326585cdaa8e5">ruby_vm_const_missing_count</a> +=1;</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> </div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="comment">/* control stack frame */</span></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span> </div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a835b4cd0571894b624a302e8d2b736de"> 136</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="l00137"></a><span class="lineno"> 137</span> {</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <a class="code" href="../../d6/de3/structrb__iseq__struct.html">rb_iseq_t</a> *iseq;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#a5e6a3515e0ad9b9d6a4c0ab577dc50b6">GetISeqPtr</a>(iseqval, iseq);</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>  <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="l00142"></a><span class="lineno"> 142</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="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="comment">/* for return */</span></div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#aa05b3d2e0f35045c65f2dbba67c5b5b2">CHECK_VM_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#afbae994355f91f3ea547570debb757c0">local_size</a> + iseq-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#a00494b6f5b1aa350819cad777e19eee8">stack_max</a>);</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <a class="code" href="../../d0/db2/vm__insnhelper_8c.html#ae6e62348f86c254a636fba4f6a21bb94">vm_push_frame</a>(th, iseq, <a class="code" href="../../d8/d32/vm__core_8h.html#ac9390ef02c17a0bc7e3bd359264562c7">VM_FRAME_MAGIC_TOP</a> | <a class="code" href="../../d8/d32/vm__core_8h.html#abd23406d55d05ea192a6cdf93ae2ea32">VM_FRAME_FLAG_FINISH</a>,</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#ac0ba34f711c43f831fe95e9a9434353f">top_self</a>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a57c96ead3ef230b4838e65fe037c346e">rb_cObject</a>, <a class="code" href="../../d8/d32/vm__core_8h.html#a64ed5818722f4cd9c207333766951ef8">VM_ENVVAL_BLOCK_PTR</a>(0),</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  iseq-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#aa70f3e195a4350acbbc130f8a95c9958">iseq_encoded</a>, th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a0e900de65ec08ba64df1125350b4071b">sp</a>, iseq-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#afbae994355f91f3ea547570debb757c0">local_size</a>, 0);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span> }</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span> </div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a8c666c67569f92ac5d01c2d1829dcc2c"> 153</a></span> <a class="code" href="../../de/de9/vm_8c.html#a8c666c67569f92ac5d01c2d1829dcc2c">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, <a class="code" href="../../da/dc0/structrb__block__struct.html">rb_block_t</a> *base_block)</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span> {</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <a class="code" href="../../d6/de3/structrb__iseq__struct.html">rb_iseq_t</a> *iseq;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#a5e6a3515e0ad9b9d6a4c0ab577dc50b6">GetISeqPtr</a>(iseqval, iseq);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span> </div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#aa05b3d2e0f35045c65f2dbba67c5b5b2">CHECK_VM_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#afbae994355f91f3ea547570debb757c0">local_size</a> + iseq-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#a00494b6f5b1aa350819cad777e19eee8">stack_max</a>);</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <a class="code" href="../../d0/db2/vm__insnhelper_8c.html#ae6e62348f86c254a636fba4f6a21bb94">vm_push_frame</a>(th, iseq, <a class="code" href="../../d8/d32/vm__core_8h.html#ac7b8d797cce488d08572c273f49f28fe">VM_FRAME_MAGIC_EVAL</a> | <a class="code" href="../../d8/d32/vm__core_8h.html#abd23406d55d05ea192a6cdf93ae2ea32">VM_FRAME_FLAG_FINISH</a>,</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  base_block-><a class="code" href="../../da/dc0/structrb__block__struct.html#ad54e1ec45ab21ef384fe9e4346570397">self</a>, base_block-><a class="code" href="../../da/dc0/structrb__block__struct.html#a0ee5a28e75794bb397dbbd95baa7cdc0">klass</a>,</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#a9405c55bec05419bc0ed7ae4d631e091">VM_ENVVAL_PREV_EP_PTR</a>(base_block-><a class="code" href="../../da/dc0/structrb__block__struct.html#a4b6a1d10dd8dc1167703ec7999b0fbf0">ep</a>), iseq-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#aa70f3e195a4350acbbc130f8a95c9958">iseq_encoded</a>,</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a0e900de65ec08ba64df1125350b4071b">sp</a>, iseq-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#afbae994355f91f3ea547570debb757c0">local_size</a>, 0);</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>  <span class="keywordflow">if</span> (cref) {</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a98749000ef85777099b645d7d755275d">ep</a>[-1] = (<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a>)cref;</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> </div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#aa938e139dcf9509037140019da6f4a47"> 170</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="l00171"></a><span class="lineno"> 171</span> {</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</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="l00173"></a><span class="lineno"> 173</span>  <a class="code" href="../../d3/d76/structrb__binding__t.html">rb_binding_t</a> *bind;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <a class="code" href="../../d6/de3/structrb__iseq__struct.html">rb_iseq_t</a> *iseq;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</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="l00176"></a><span class="lineno"> 176</span> </div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#a491d77ec5480e1530e447dbb42481f5b">GetBindingPtr</a>(toplevel_binding, bind);</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</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="l00179"></a><span class="lineno"> 179</span>  <a class="code" href="../../de/de9/vm_8c.html#a8c666c67569f92ac5d01c2d1829dcc2c">vm_set_eval_stack</a>(th, iseqval, 0, &<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->block);</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="comment">/* save binding */</span></div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#a5e6a3515e0ad9b9d6a4c0ab577dc50b6">GetISeqPtr</a>(iseqval, iseq);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</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="l00184"></a><span class="lineno"> 184</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="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> </div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <a class="code" href="../../de/dc6/structrb__control__frame__struct.html">rb_control_frame_t</a> *</div><div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="../../d8/d32/vm__core_8h.html#a1feafff695f882b2123508c367df6250"> 189</a></span> <a class="code" href="../../de/de9/vm_8c.html#a1feafff695f882b2123508c367df6250">rb_vm_get_binding_creatable_next_cfp</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="../../de/dc6/structrb__control__frame__struct.html">rb_control_frame_t</a> *cfp)</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span> {</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</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="l00192"></a><span class="lineno"> 192</span>  <span class="keywordflow">if</span> (cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">iseq</a>) {</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="keywordflow">return</span> (<a class="code" href="../../de/dc6/structrb__control__frame__struct.html">rb_control_frame_t</a> *)cfp;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  }</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</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="l00196"></a><span class="lineno"> 196</span>  }</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <span class="keywordflow">return</span> 0;</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> </div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <a class="code" href="../../de/dc6/structrb__control__frame__struct.html">rb_control_frame_t</a> *</div><div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="../../d8/d32/vm__core_8h.html#abe55ec96693d3caf875342934a7fe1f1"> 201</a></span> <a class="code" href="../../de/de9/vm_8c.html#abe55ec96693d3caf875342934a7fe1f1">rb_vm_get_ruby_level_next_cfp</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="../../de/dc6/structrb__control__frame__struct.html">rb_control_frame_t</a> *cfp)</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span> {</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</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="l00204"></a><span class="lineno"> 204</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="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">iseq</a>)) {</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keywordflow">return</span> (<a class="code" href="../../de/dc6/structrb__control__frame__struct.html">rb_control_frame_t</a> *)cfp;</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>  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="l00208"></a><span class="lineno"> 208</span>  }</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span> }</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span> </div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="keyword">static</span> <a class="code" href="../../de/dc6/structrb__control__frame__struct.html">rb_control_frame_t</a> *</div><div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a198b8bdfa01414239809443f0a7b2625"> 213</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="../../de/dc6/structrb__control__frame__struct.html">rb_control_frame_t</a> *cfp)</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>  <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="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">iseq</a>)) {</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="keywordflow">return</span> cfp;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  }</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span> </div><div class="line"><a name="l00219"></a><span class="lineno"> 219</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="l00220"></a><span class="lineno"> 220</span> </div><div class="line"><a name="l00221"></a><span class="lineno"> 221</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="l00222"></a><span class="lineno"> 222</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="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">iseq</a>)) {</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <span class="keywordflow">return</span> cfp;</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> </div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <span class="keywordflow">if</span> ((cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#ab4fbcf3f8b2d09cea7d5eb88e3446380">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="l00227"></a><span class="lineno"> 227</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  }</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</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="l00230"></a><span class="lineno"> 230</span>  }</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span> }</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span> </div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#ac5737294cca8cab5c302b2849ea8b98e"> 235</a></span> <a class="code" href="../../de/de9/vm_8c.html#ac5737294cca8cab5c302b2849ea8b98e">rb_vm_pop_cfunc_frame</a>(<span class="keywordtype">void</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>  <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#aec678927729c3dcca12b2fae241158b0">GET_THREAD</a>();</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</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="../../de/dc6/structrb__control__frame__struct.html#ab8ddfbe44ad9a3582069c9fcf5211afc">me</a>;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#aaf6f79a9848eb27bfb82ac0d3ea8e0d9">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="../../de/dc6/structrb__control__frame__struct.html#aba6bb1166e207f96d81c4fcac16b3119">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>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>);</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <a class="code" href="../../d6/d27/probes__helper_8h.html#ab729063fadabe3c80b7c72dae144bba3">RUBY_DTRACE_CMETHOD_RETURN_HOOK</a>(th, me-><a class="code" href="../../d7/db7/structrb__method__entry__struct.html#a9ce0871480ac405b00673b25234738de">klass</a>, me-><a class="code" href="../../d7/db7/structrb__method__entry__struct.html#a31439bd620e98940410ba59244a85eae">called_id</a>);</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <a class="code" href="../../d0/db2/vm__insnhelper_8c.html#a0aeeee637bf9706f9d240bac4ae359c3">vm_pop_frame</a>(th);</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span> }</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="keywordtype">void</span></div><div class="line"><a name="l00245"></a><span class="lineno"><a class="line" href="../../d8/d32/vm__core_8h.html#a3393fad060f20895631762c9e3786693"> 245</a></span> <a class="code" href="../../de/de9/vm_8c.html#a3393fad060f20895631762c9e3786693">rb_vm_rewind_cfp</a>(<a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th, <a class="code" href="../../de/dc6/structrb__control__frame__struct.html">rb_control_frame_t</a> *cfp)</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span> {</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <span class="comment">/* check skipped frame */</span></div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <span class="keywordflow">while</span> (th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a> != cfp) {</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span> <span class="preprocessor">#if VMDEBUG</span></div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  printf(<span class="stringliteral">"skipped frame: %s\n"</span>, vm_frametype_name(th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>));</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00252"></a><span class="lineno"> 252</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#a26308f33317bb5b96ff89924822e8eab">VM_FRAME_MAGIC_CFUNC</a>) {</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <a class="code" href="../../d0/db2/vm__insnhelper_8c.html#a0aeeee637bf9706f9d240bac4ae359c3">vm_pop_frame</a>(th);</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">else</span> { <span class="comment">/* unlikely path */</span></div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <a class="code" href="../../de/de9/vm_8c.html#ac5737294cca8cab5c302b2849ea8b98e">rb_vm_pop_cfunc_frame</a>();</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  }</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> }</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span> </div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <span class="comment">/* obsolete */</span></div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00263"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a6c9b6fe2b70d01e176fa50b4aa4da39c"> 263</a></span> <a class="code" href="../../de/de9/vm_8c.html#a6c9b6fe2b70d01e176fa50b4aa4da39c">rb_frame_pop</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span> {</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</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#aec678927729c3dcca12b2fae241158b0">GET_THREAD</a>();</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <a class="code" href="../../d0/db2/vm__insnhelper_8c.html#a0aeeee637bf9706f9d240bac4ae359c3">vm_pop_frame</a>(th);</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span> }</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span> </div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span> <span class="comment">/* at exit */</span></div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span> </div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#ae7ad8c359f6d89380dceca5a63bc2c48"> 272</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="l00273"></a><span class="lineno"> 273</span> {</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</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="l00275"></a><span class="lineno"> 275</span> }</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span> </div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00278"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#af41ce3aa993b8eb956d96a10060fdcca"> 278</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="l00279"></a><span class="lineno"> 279</span> {</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</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="l00281"></a><span class="lineno"> 281</span> </div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  while (<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a0068ed01a16efbb8740e1b0c295b672e">RARRAY_LEN</a>(hook) > 0) {</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</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="l00284"></a><span class="lineno"> 284</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="l00285"></a><span class="lineno"> 285</span>  (*func)(vm);</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  }</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <a class="code" href="../../dc/dcc/array_8c.html#a5c6b248d971f78b215844c60cdb00020">rb_ary_free</a>(hook);</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span> }</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="comment">/* Env */</span></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> <span class="comment">/*</span></div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span> <span class="comment"> env{</span></div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span> <span class="comment"> env[0] // special (block or prev env)</span></div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span> <span class="comment"> env[1] // env object</span></div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span> <span class="comment"> };</span></div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span> <span class="comment"> */</span></div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span> </div><div class="line"><a name="l00299"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a763a6b9c07ba29acc33611df4297f321"> 299</a></span> <span class="preprocessor">#define ENV_IN_HEAP_P(th, env) \</span></div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span> <span class="preprocessor"> (!((th)->stack <= (env) && (env) < ((th)->stack + (th)->stack_size)))</span></div><div class="line"><a name="l00301"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a518d3ecb1212b2eea58b409fd4ace787"> 301</a></span> <span class="preprocessor">#define ENV_VAL(env) ((env)[1])</span></div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span> </div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00304"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#ae7481a42efe3169d09a302d1c6ffd38c"> 304</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="l00305"></a><span class="lineno"> 305</span> {</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</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="l00307"></a><span class="lineno"> 307</span>  <span class="keywordflow">if</span> (ptr) {</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</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="l00309"></a><span class="lineno"> 309</span> </div><div class="line"><a name="l00310"></a><span class="lineno"> 310</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="l00311"></a><span class="lineno"> 311</span>  <span class="comment">/* TODO: should mark more restricted range */</span></div><div class="line"><a name="l00312"></a><span class="lineno"> 312</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="l00313"></a><span class="lineno"> 313</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="l00314"></a><span class="lineno"> 314</span>  }</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span> </div><div class="line"><a name="l00316"></a><span class="lineno"> 316</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="l00317"></a><span class="lineno"> 317</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="l00318"></a><span class="lineno"> 318</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="l00319"></a><span class="lineno"> 319</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="l00320"></a><span class="lineno"> 320</span> </div><div class="line"><a name="l00321"></a><span class="lineno"> 321</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="l00322"></a><span class="lineno"> 322</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="l00323"></a><span class="lineno"> 323</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="l00324"></a><span class="lineno"> 324</span>  }</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</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="l00327"></a><span class="lineno"> 327</span>  }</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</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>  <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="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> <span class="keywordtype">void</span></div><div class="line"><a name="l00334"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#acb7274747d1f091bee63b471c7a81654"> 334</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="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/daa/gc_8h.html#a5d959738efb454623a7dad84d728262a">RUBY_FREE_ENTER</a>(<span class="stringliteral">"env"</span>);</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  <span class="keywordflow">if</span> (ptr) {</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</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="l00339"></a><span class="lineno"> 339</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="l00340"></a><span class="lineno"> 340</span>  <a class="code" href="../../d8/d16/gc_8c.html#a0bffec5b2cc004adcebb6802e7620387">ruby_xfree</a>(ptr);</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="../../d0/daa/gc_8h.html#af304d34de3474d75064e0cba170b7bf5">RUBY_FREE_LEAVE</a>(<span class="stringliteral">"env"</span>);</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</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> <span class="keyword">static</span> <span class="keywordtype">size_t</span></div><div class="line"><a name="l00346"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a5e1259c3fa1d188528af5b535e3a7f00"> 346</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="l00347"></a><span class="lineno"> 347</span> {</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  <span class="keywordflow">if</span> (ptr) {</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</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="l00350"></a><span class="lineno"> 350</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="l00351"></a><span class="lineno"> 351</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="l00352"></a><span class="lineno"> 352</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="l00353"></a><span class="lineno"> 353</span>  }</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  <span class="keywordflow">return</span> <a class="code" href="../../d5/db5/encoding_8c.html#a439227feff9d7f55384e8780cfc2eb82">size</a>;</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  }</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <span class="keywordflow">return</span> 0;</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"><a class="line" href="../../de/de9/vm_8c.html#ac09fe4b7c739818891e16b9b06110d87"> 359</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="l00360"></a><span class="lineno"> 360</span>  <span class="stringliteral">"VM/env"</span>,</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</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="l00362"></a><span class="lineno"> 362</span> };</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span> </div><div class="line"><a name="l00364"></a><span class="lineno"> 364</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="l00365"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a9f77b7ff2a4e6e64a9a1590f9b7219a7"> 365</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="l00366"></a><span class="lineno"> 366</span> {</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> obj;</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</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="l00369"></a><span class="lineno"> 369</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="l00370"></a><span class="lineno"> 370</span>  <a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->env = 0;</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->prev_envval = 0;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->block.iseq = 0;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  <span class="keywordflow">return</span> obj;</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span> }</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span> </div><div class="line"><a name="l00376"></a><span class="lineno"> 376</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="l00377"></a><span class="lineno"> 377</span> </div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span> <span class="keyword">static</span> <span class="keywordtype">int</span></div><div class="line"><a name="l00379"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a32e6bd476abfda4d5fcca42de87ff4e2"> 379</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="l00380"></a><span class="lineno"> 380</span> {</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  fprintf(stderr, <span class="stringliteral">"---\n"</span>);</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  fprintf(stderr, <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.ep[0]);</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  fprintf(stderr, <span class="stringliteral">"envval: %10p "</span>, (<span class="keywordtype">void</span> *)<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->block.ep[1]);</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  <a class="code" href="../../d5/d8c/vm__debug_8h.html#a08a47aff6867e5ae146382e66d2cc26b">dp</a>(<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->block.ep[1]);</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  fprintf(stderr, <span class="stringliteral">"ep: %10p\n"</span>, (<span class="keywordtype">void</span> *)<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->block.ep);</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->prev_envval) {</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  fprintf(stderr, <span class="stringliteral">">>\n"</span>);</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</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>->prev_envval);</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  fprintf(stderr, <span class="stringliteral">"<<\n"</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>  <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span> }</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span> </div><div class="line"><a name="l00394"></a><span class="lineno"> 394</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="l00395"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#ad686a96329c814869e6200edfac5107a"> 395</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="l00396"></a><span class="lineno"> 396</span> {</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</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="l00398"></a><span class="lineno"> 398</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="l00399"></a><span class="lineno"> 399</span> </div><div class="line"><a name="l00400"></a><span class="lineno"> 400</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="l00401"></a><span class="lineno"> 401</span>  <span class="keywordflow">return</span> envval;</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  }</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</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="l00404"></a><span class="lineno"> 404</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="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> <span class="keyword">static</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l00408"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a7920e56cee3ddd3b387cbe2d69b69544"> 408</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="../../de/dc6/structrb__control__frame__struct.html">rb_control_frame_t</a> * <span class="keyword">const</span> cfp,</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</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="l00410"></a><span class="lineno"> 410</span> {</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> envval, penvval = 0;</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</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="l00413"></a><span class="lineno"> 413</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *nenvptr;</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</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="l00415"></a><span class="lineno"> 415</span> </div><div class="line"><a name="l00416"></a><span class="lineno"> 416</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="l00417"></a><span class="lineno"> 417</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="l00418"></a><span class="lineno"> 418</span>  }</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span> </div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <span class="keywordflow">if</span> (envptr != endptr) {</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</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="l00422"></a><span class="lineno"> 422</span>  <a class="code" href="../../de/dc6/structrb__control__frame__struct.html">rb_control_frame_t</a> *pcfp = cfp;</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="../../de/de9/vm_8c.html#a763a6b9c07ba29acc33611df4297f321">ENV_IN_HEAP_P</a>(th, penvptr)) {</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  penvval = <a class="code" href="../../de/de9/vm_8c.html#a518d3ecb1212b2eea58b409fd4ace787">ENV_VAL</a>(penvptr);</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  }</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  <span class="keywordflow">while</span> (pcfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a98749000ef85777099b645d7d755275d">ep</a> != penvptr) {</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  pcfp++;</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  <span class="keywordflow">if</span> (pcfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a98749000ef85777099b645d7d755275d">ep</a> == 0) {</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#ac33c371d81972685538097cb4f49181f">SDR</a>();</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  <a class="code" href="../../db/dcc/error_8c.html#a2d5fb28e54f792e7341b2c45f52f3860">rb_bug</a>(<span class="stringliteral">"invalid ep"</span>);</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>  }</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</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="l00436"></a><span class="lineno"> 436</span>  *envptr = <a class="code" href="../../d8/d32/vm__core_8h.html#a9405c55bec05419bc0ed7ae4d631e091">VM_ENVVAL_PREV_EP_PTR</a>(pcfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a98749000ef85777099b645d7d755275d">ep</a>);</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  }</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  }</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span> </div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  <span class="comment">/* allocate env */</span></div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  envval = <a class="code" href="../../de/de9/vm_8c.html#a9f77b7ff2a4e6e64a9a1590f9b7219a7">env_alloc</a>();</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</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="l00443"></a><span class="lineno"> 443</span> </div><div class="line"><a name="l00444"></a><span class="lineno"> 444</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="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">iseq</a>)) {</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  local_size = 2;</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  }</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  local_size = cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">iseq</a>-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#afbae994355f91f3ea547570debb757c0">local_size</a>;</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  }</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span> </div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  <a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->env_size = local_size + 1 + 1;</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  <a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->local_size = local_size;</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</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="l00454"></a><span class="lineno"> 454</span>  <a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->prev_envval = penvval;</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="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="l00457"></a><span class="lineno"> 457</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="l00458"></a><span class="lineno"> 458</span> <span class="preprocessor">#if 0</span></div><div class="line"><a name="l00459"></a><span class="lineno"> 459</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="../../d5/d8c/vm__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="l00460"></a><span class="lineno"> 460</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="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">iseq</a>)) {</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  <span class="comment">/* clear value stack for GC */</span></div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  envptr[-local_size + <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>] = 0;</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  }</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  }</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span> </div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  *envptr = envval; <span class="comment">/* GC mark */</span></div><div class="line"><a name="l00468"></a><span class="lineno"> 468</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="l00469"></a><span class="lineno"> 469</span>  nenvptr[1] = envval; <span class="comment">/* frame self */</span></div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span> </div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  <span class="comment">/* reset ep in cfp */</span></div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a98749000ef85777099b645d7d755275d">ep</a> = nenvptr;</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span> </div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  <span class="comment">/* as Binding */</span></div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  <a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->block.self = cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#aba6bb1166e207f96d81c4fcac16b3119">self</a>;</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  <a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->block.ep = cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a98749000ef85777099b645d7d755275d">ep</a>;</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  <a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->block.iseq = cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">iseq</a>;</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>  <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="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">iseq</a>)) {</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  <span class="comment">/* TODO */</span></div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  <a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->block.iseq = 0;</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>  <span class="keywordflow">return</span> envval;</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span> }</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span> </div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span> <span class="keyword">static</span> <span class="keywordtype">int</span></div><div class="line"><a name="l00487"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a16e2c046b4cf83df26232c0869ce7643"> 487</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="l00488"></a><span class="lineno"> 488</span> {</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  <span class="keywordtype">int</span> <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>;</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  <span class="keywordflow">if</span> (!iseq) <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</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="l00492"></a><span class="lineno"> 492</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="l00493"></a><span class="lineno"> 493</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="l00494"></a><span class="lineno"> 494</span>  <a class="code" href="../../dc/dcc/array_8c.html#a59d553a8cd781364b8bcb0deae25cca2">rb_ary_push</a>(ary, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a4ef7b7ff907d043bd989a7e73e1da420">ID2SYM</a>(lid));</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  }</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  }</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span> }</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span> </div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span> <span class="keyword">static</span> <span class="keywordtype">int</span></div><div class="line"><a name="l00501"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a2290ee4bcece4d937e5e04cf65c1771c"> 501</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="l00502"></a><span class="lineno"> 502</span> {</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span> </div><div class="line"><a name="l00504"></a><span class="lineno"> 504</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="l00505"></a><span class="lineno"> 505</span>  <a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->prev_envval) {</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</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="l00507"></a><span class="lineno"> 507</span>  }</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  <span class="keywordflow">return</span> 0;</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> </div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span> <span class="keyword">static</span> <span class="keywordtype">int</span></div><div class="line"><a name="l00512"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a55957d4e328d8c8f022b88d52a4a6194"> 512</a></span> <a class="code" href="../../de/de9/vm_8c.html#a55957d4e328d8c8f022b88d52a4a6194">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> *ep, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> ary)</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span> {</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  <span class="keywordflow">if</span> (<a class="code" href="../../de/de9/vm_8c.html#a763a6b9c07ba29acc33611df4297f321">ENV_IN_HEAP_P</a>(th, ep)) {</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</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="l00516"></a><span class="lineno"> 516</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>(ep), <a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>);</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</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="l00518"></a><span class="lineno"> 518</span>  <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  }</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  }</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span> }</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span> </div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="../../de/de9/vm_8c.html#a15b74bb00bea378aded269afb419ba1f">vm_rewrite_ep_in_errinfo</a>(<a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th);</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</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="l00527"></a><span class="lineno"> 527</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="../../de/dc6/structrb__control__frame__struct.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="l00528"></a><span class="lineno"> 528</span> </div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l00530"></a><span class="lineno"><a class="line" href="../../d8/d32/vm__core_8h.html#a38087978d8bc36f8cd48b62b70b15000"> 530</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="../../de/dc6/structrb__control__frame__struct.html">rb_control_frame_t</a> *cfp)</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>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> blockprocval;</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</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="l00534"></a><span class="lineno"> 534</span> }</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span> </div><div class="line"><a name="l00536"></a><span class="lineno"> 536</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="l00537"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a3ddaf8dd022a2376d14fa8bff79e0a53"> 537</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="../../de/dc6/structrb__control__frame__struct.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="l00538"></a><span class="lineno"> 538</span> {</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> envval;</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *lep = <a class="code" href="../../de/de9/vm_8c.html#aef56dc0756735c2f5d6e5cb594747503">VM_CF_LEP</a>(cfp);</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</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#a5410a86de3cd3499b2b1197ab89a0da4">VM_EP_BLOCK_PTR</a>(lep);</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span> </div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  <span class="keywordflow">if</span> (blockptr) {</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</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="l00545"></a><span class="lineno"> 545</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="l00546"></a><span class="lineno"> 546</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="l00547"></a><span class="lineno"> 547</span>  lep[0] = <a class="code" href="../../d8/d32/vm__core_8h.html#a64ed5818722f4cd9c207333766951ef8">VM_ENVVAL_BLOCK_PTR</a>(&<a class="code" href="../../d2/d99/win32ole_8c.html#a4b5a598a4f53b3724549c48dcfbf7c48">p</a>->block);</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  *blockprocptr = blockprocval;</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</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>  envval = <a class="code" href="../../de/de9/vm_8c.html#a7920e56cee3ddd3b387cbe2d69b69544">vm_make_env_each</a>(th, cfp, cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a98749000ef85777099b645d7d755275d">ep</a>, lep);</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  <a class="code" href="../../de/de9/vm_8c.html#a15b74bb00bea378aded269afb419ba1f">vm_rewrite_ep_in_errinfo</a>(th);</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> (<a class="code" href="../../de/de9/vm_8c.html#a750084962ee12011b63dd0b901058f71">PROCDEBUG</a>) {</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  <a class="code" href="../../de/de9/vm_8c.html#ad686a96329c814869e6200edfac5107a">check_env_value</a>(envval);</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> </div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  <span class="keywordflow">return</span> envval;</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> </div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00562"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a15b74bb00bea378aded269afb419ba1f"> 562</a></span> <a class="code" href="../../de/de9/vm_8c.html#a15b74bb00bea378aded269afb419ba1f">vm_rewrite_ep_in_errinfo</a>(<a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th)</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span> {</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  <a class="code" href="../../de/dc6/structrb__control__frame__struct.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="l00565"></a><span class="lineno"> 565</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="l00566"></a><span class="lineno"> 566</span>  <span class="comment">/* rewrite ep in errinfo to point to heap */</span></div><div class="line"><a name="l00567"></a><span class="lineno"> 567</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="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">iseq</a>) &&</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  (cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">iseq</a>-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#af8bc7dbae6f61d836b5bb9fb50b6cfb8">type</a> == ISEQ_TYPE_RESCUE ||</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">iseq</a>-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#af8bc7dbae6f61d836b5bb9fb50b6cfb8">type</a> == ISEQ_TYPE_ENSURE)) {</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> errinfo = cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a98749000ef85777099b645d7d755275d">ep</a>[-2]; <span class="comment">/* #$! */</span></div><div class="line"><a name="l00571"></a><span class="lineno"> 571</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="l00572"></a><span class="lineno"> 572</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *escape_ep = <a class="code" href="../../dd/dd0/eval__intern_8h.html#aeeda78ded67b3dc359c8911e679f0f15">GET_THROWOBJ_CATCH_POINT</a>(errinfo);</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#a763a6b9c07ba29acc33611df4297f321">ENV_IN_HEAP_P</a>(th, escape_ep)) {</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> epval = *escape_ep;</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  <span class="keywordflow">if</span> (!<a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac59489a7ed093e29019047d13e79c009">SPECIAL_CONST_P</a>(epval) && <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a1d4c05021aacd8cab989ff60f95ebe2d">RBASIC</a>(epval)->klass == <a class="code" href="../../de/de9/vm_8c.html#ad55204994fe946dcd317061047845c3a">rb_cEnv</a>) {</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  <a class="code" href="../../d0/d73/structrb__env__t.html">rb_env_t</a> *epenv;</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#aaa39b3177aba775195d515b937ef78ff">GetEnvPtr</a>(epval, epenv);</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</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>)(epenv-><a class="code" href="../../d0/d73/structrb__env__t.html#a1c42d4847422b6ffd0fb340fdd0cfa8b">env</a> + epenv-><a class="code" href="../../d0/d73/structrb__env__t.html#a5babbdd0740bbdc371ae7d2f225e8b64">local_size</a>));</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  }</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  }</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  }</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  }</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</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="l00584"></a><span class="lineno"> 584</span>  }</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span> }</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="keywordtype">void</span></div><div class="line"><a name="l00588"></a><span class="lineno"><a class="line" href="../../d8/d32/vm__core_8h.html#af0a6e7c3e77f3c6c8e7738b79dfbde2f"> 588</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="l00589"></a><span class="lineno"> 589</span> {</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  <a class="code" href="../../de/dc6/structrb__control__frame__struct.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="l00591"></a><span class="lineno"> 591</span>  <span class="keywordflow">while</span> ((cfp = <a class="code" href="../../de/de9/vm_8c.html#a1feafff695f882b2123508c367df6250">rb_vm_get_binding_creatable_next_cfp</a>(th, cfp)) != 0) {</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</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="l00593"></a><span class="lineno"> 593</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="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> </div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span> <span class="comment">/* Proc */</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="keyword">static</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l00600"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#afbd004fdeff5b9e93c1a3792114f0be0"> 600</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="l00601"></a><span class="lineno"> 601</span> {</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</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="l00603"></a><span class="lineno"> 603</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="l00604"></a><span class="lineno"> 604</span>  }</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</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="l00606"></a><span class="lineno"> 606</span> }</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span> </div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l00609"></a><span class="lineno"><a class="line" href="../../d8/d32/vm__core_8h.html#a7e8d71dee905abc403d671561b12f4e8"> 609</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="l00610"></a><span class="lineno"> 610</span> {</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> procval, envval, blockprocval = 0;</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  <a class="code" href="../../d5/d77/structrb__proc__t.html">rb_proc_t</a> *proc;</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  <a class="code" href="../../de/dc6/structrb__control__frame__struct.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="l00614"></a><span class="lineno"> 614</span> </div><div class="line"><a name="l00615"></a><span class="lineno"> 615</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="l00616"></a><span class="lineno"> 616</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="l00617"></a><span class="lineno"> 617</span>  }</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span> </div><div class="line"><a name="l00619"></a><span class="lineno"> 619</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="l00620"></a><span class="lineno"> 620</span> </div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  <span class="keywordflow">if</span> (<a class="code" href="../../de/de9/vm_8c.html#a750084962ee12011b63dd0b901058f71">PROCDEBUG</a>) {</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  <a class="code" href="../../de/de9/vm_8c.html#ad686a96329c814869e6200edfac5107a">check_env_value</a>(envval);</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>  procval = <a class="code" href="../../d3/dda/proc_8c.html#afdfd5397f25a751a5bf34dbfeb0968ba">rb_proc_alloc</a>(klass);</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#ad9cb04a311c21bdbbd936d8f8b7237db">GetProcPtr</a>(procval, proc);</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>  proc-><a class="code" href="../../d5/d77/structrb__proc__t.html#a6541c1e61b0734aef20b7c2af3b4de5e">blockprocval</a> = blockprocval;</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</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="l00628"></a><span class="lineno"> 628</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#a0ee5a28e75794bb397dbbd95baa7cdc0">klass</a> = block-><a class="code" href="../../da/dc0/structrb__block__struct.html#a0ee5a28e75794bb397dbbd95baa7cdc0">klass</a>;</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</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#a4b6a1d10dd8dc1167703ec7999b0fbf0">ep</a> = block-><a class="code" href="../../da/dc0/structrb__block__struct.html#a4b6a1d10dd8dc1167703ec7999b0fbf0">ep</a>;</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</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="l00631"></a><span class="lineno"> 631</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="l00632"></a><span class="lineno"> 632</span>  proc-><a class="code" href="../../d5/d77/structrb__proc__t.html#acdb9a8c85422bf299615f7942ffbc916">envval</a> = envval;</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</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="l00634"></a><span class="lineno"> 634</span> </div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>  <span class="keywordflow">if</span> (<a class="code" href="../../dd/dd7/vm__dump_8c.html#a5e6b7f865cae591e5e27b0e36b0d357f">VMDEBUG</a>) {</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</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#a4b6a1d10dd8dc1167703ec7999b0fbf0">ep</a> && block-><a class="code" href="../../da/dc0/structrb__block__struct.html#a4b6a1d10dd8dc1167703ec7999b0fbf0">ep</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#a1f263d7b7ee19fc82ea14d83ed1dc7bd">stack_size</a>) {</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>  <a class="code" href="../../db/dcc/error_8c.html#a2d5fb28e54f792e7341b2c45f52f3860">rb_bug</a>(<span class="stringliteral">"invalid ptr: block->ep"</span>);</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> </div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>  <span class="keywordflow">return</span> procval;</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span> }</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span> </div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span> <span class="comment">/* Binding */</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> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l00647"></a><span class="lineno"><a class="line" href="../../d8/d32/vm__core_8h.html#aa6fedecd9dffdb27169039af7d290ffd"> 647</a></span> <a class="code" href="../../de/de9/vm_8c.html#aa6fedecd9dffdb27169039af7d290ffd">rb_vm_make_binding</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="../../de/dc6/structrb__control__frame__struct.html">rb_control_frame_t</a> *src_cfp)</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span> {</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>  <a class="code" href="../../de/dc6/structrb__control__frame__struct.html">rb_control_frame_t</a> *cfp = <a class="code" href="../../de/de9/vm_8c.html#a1feafff695f882b2123508c367df6250">rb_vm_get_binding_creatable_next_cfp</a>(th, src_cfp);</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>  <a class="code" href="../../de/dc6/structrb__control__frame__struct.html">rb_control_frame_t</a> *ruby_level_cfp = <a class="code" href="../../de/de9/vm_8c.html#abe55ec96693d3caf875342934a7fe1f1">rb_vm_get_ruby_level_next_cfp</a>(th, src_cfp);</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> bindval, envval;</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>  <a class="code" href="../../d3/d76/structrb__binding__t.html">rb_binding_t</a> *bind;</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> blockprocval = 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>  <span class="keywordflow">if</span> (cfp == 0 || ruby_level_cfp == 0) {</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</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 create Binding Object on top of Fiber."</span>);</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="keywordflow">while</span> (1) {</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</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="l00661"></a><span class="lineno"> 661</span>  <span class="keywordflow">if</span> (cfp == ruby_level_cfp) {</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>  }</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>  cfp = <a class="code" href="../../de/de9/vm_8c.html#a1feafff695f882b2123508c367df6250">rb_vm_get_binding_creatable_next_cfp</a>(th, <a class="code" href="../../d8/d32/vm__core_8h.html#af087c881c3c493e3a4e326852e8ed2a9">RUBY_VM_PREVIOUS_CONTROL_FRAME</a>(cfp));</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> </div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>  bindval = <a class="code" href="../../d3/dda/proc_8c.html#a53bda31f3f4abcfa2e20754606140079">rb_binding_alloc</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#ad07e23922ca1fa3e87647edf4fab6d38">rb_cBinding</a>);</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#a491d77ec5480e1530e447dbb42481f5b">GetBindingPtr</a>(bindval, bind);</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>  bind-><a class="code" href="../../d3/d76/structrb__binding__t.html#a65f58a22eb376363f727c34b7fde7400">env</a> = envval;</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>  bind-><a class="code" href="../../d3/d76/structrb__binding__t.html#afe9c8ed31f3c48fe77c28155a6947aa7">path</a> = ruby_level_cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">iseq</a>-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#acf13c2a9990e88276a7223a4881302d6">location</a>.<a class="code" href="../../dd/dc8/structrb__iseq__location__struct.html#a7021da5c8b09129a4212e76cff24db02">path</a>;</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>  bind-><a class="code" href="../../d3/d76/structrb__binding__t.html#a9204294e8542e2b0d46b3350cfc4908d">blockprocval</a> = blockprocval;</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>  bind-><a class="code" href="../../d3/d76/structrb__binding__t.html#a1d0942609b57ba0e681f344e5757a450">first_lineno</a> = <a class="code" href="../../d8/d73/vm__backtrace_8c.html#a70289cbb34babceed6243d9471e70e5f">rb_vm_get_sourceline</a>(ruby_level_cfp);</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span> </div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>  <span class="keywordflow">return</span> bindval;</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span> }</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> <span class="comment">/* C -> Ruby: block */</span></div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span> </div><div class="line"><a name="l00679"></a><span class="lineno"> 679</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="l00680"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a048227fd9ad77e666ba905ae3315027c"> 680</a></span> <a class="code" href="../../de/de9/vm_8c.html#a048227fd9ad77e666ba905ae3315027c">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="l00681"></a><span class="lineno"> 681</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="l00682"></a><span class="lineno"> 682</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="l00683"></a><span class="lineno"> 683</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> defined_class)</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span> {</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</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="l00686"></a><span class="lineno"> 686</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="l00687"></a><span class="lineno"> 687</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="l00688"></a><span class="lineno"> 688</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="l00689"></a><span class="lineno"> 689</span>  <span class="keyword">const</span> <a class="code" href="../../de/dc6/structrb__control__frame__struct.html">rb_control_frame_t</a> *cfp;</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</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="l00691"></a><span class="lineno"> 691</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="l00692"></a><span class="lineno"> 692</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="l00693"></a><span class="lineno"> 693</span> </div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>  cfp = th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>;</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#aa05b3d2e0f35045c65f2dbba67c5b5b2">CHECK_VM_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="l00696"></a><span class="lineno"> 696</span> </div><div class="line"><a name="l00697"></a><span class="lineno"> 697</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="l00698"></a><span class="lineno"> 698</span>  cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a0e900de65ec08ba64df1125350b4071b">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="l00699"></a><span class="lineno"> 699</span>  }</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span> </div><div class="line"><a name="l00701"></a><span class="lineno"> 701</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="../../de/dc6/structrb__control__frame__struct.html#a0e900de65ec08ba64df1125350b4071b">sp</a>, blockptr,</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</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="l00703"></a><span class="lineno"> 703</span> </div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>  <a class="code" href="../../d0/db2/vm__insnhelper_8c.html#ae6e62348f86c254a636fba4f6a21bb94">vm_push_frame</a>(th, iseq, <a class="code" href="../../d5/d9d/tcltklib_8c.html#ac765329451135abec74c45e1897abf26">type</a> | <a class="code" href="../../d8/d32/vm__core_8h.html#abd23406d55d05ea192a6cdf93ae2ea32">VM_FRAME_FLAG_FINISH</a>,</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>  <span class="keyword">self</span>, defined_class,</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#a9405c55bec05419bc0ed7ae4d631e091">VM_ENVVAL_PREV_EP_PTR</a>(block-><a class="code" href="../../da/dc0/structrb__block__struct.html#a4b6a1d10dd8dc1167703ec7999b0fbf0">ep</a>),</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>  iseq-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#aa70f3e195a4350acbbc130f8a95c9958">iseq_encoded</a> + opt_pc,</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>  cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a0e900de65ec08ba64df1125350b4071b">sp</a> + arg_size, iseq-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#afbae994355f91f3ea547570debb757c0">local_size</a> - arg_size,</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a42b995c9fe5e654442129c060c1a8219">passed_me</a>);</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a42b995c9fe5e654442129c060c1a8219">passed_me</a> = 0;</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span> </div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>  <span class="keywordflow">if</span> (cref) {</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a98749000ef85777099b645d7d755275d">ep</a>[-1] = (<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a>)cref;</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>  }</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span> </div><div class="line"><a name="l00716"></a><span class="lineno"> 716</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="l00717"></a><span class="lineno"> 717</span>  }</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</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="l00720"></a><span class="lineno"> 720</span>  }</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span> }</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span> </div><div class="line"><a name="l00723"></a><span class="lineno"> 723</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="l00724"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#ad3546781259eb3e30b64580b1f35e6fb"> 724</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="l00725"></a><span class="lineno"> 725</span> {</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</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#a936d0f75f6bf996cd8845be07c6d08d8">VM_CF_BLOCK_PTR</a>(th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>);</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="keywordflow">if</span> (blockptr == 0) {</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</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="l00730"></a><span class="lineno"> 730</span>  }</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span> </div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>  <span class="keywordflow">return</span> blockptr;</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="keyword">inline</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l00736"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a2525811685e5b25a1d89a966f862fbea"> 736</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="l00737"></a><span class="lineno"> 737</span> {</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</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="l00739"></a><span class="lineno"> 739</span>  <span class="keywordflow">return</span> <a class="code" href="../../de/de9/vm_8c.html#a048227fd9ad77e666ba905ae3315027c">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="l00740"></a><span class="lineno"> 740</span>  blockptr-><a class="code" href="../../da/dc0/structrb__block__struct.html#a0ee5a28e75794bb397dbbd95baa7cdc0">klass</a>);</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> </div><div class="line"><a name="l00743"></a><span class="lineno"> 743</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="l00744"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a60a89de76b17391f34b5905586c9651f"> 744</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="l00745"></a><span class="lineno"> 745</span> {</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</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="l00747"></a><span class="lineno"> 747</span>  <span class="keywordflow">return</span> <a class="code" href="../../de/de9/vm_8c.html#a048227fd9ad77e666ba905ae3315027c">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="l00748"></a><span class="lineno"> 748</span>  blockptr-><a class="code" href="../../da/dc0/structrb__block__struct.html#a0ee5a28e75794bb397dbbd95baa7cdc0">klass</a>);</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span> }</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> <span class="keyword">static</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l00752"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#aaf7bb4b661a43db4aeefc8b1520b3374"> 752</a></span> <a class="code" href="../../de/de9/vm_8c.html#aaf7bb4b661a43db4aeefc8b1520b3374">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>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> defined_class,</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</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="l00754"></a><span class="lineno"> 754</span> {</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../df/d38/vm__exec_8c.html">val</a> = <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a2edf6990280eb2637623ccd421dee4f0">Qundef</a>;</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>  <span class="keywordtype">int</span> state;</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</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="l00758"></a><span class="lineno"> 758</span> </div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>  <a class="code" href="../../dd/dd0/eval__intern_8h.html#a4410e4208d7ae0de8dae7c5b61f9d55c">TH_PUSH_TAG</a>(th);</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>  <span class="keywordflow">if</span> ((state = <a class="code" href="../../dd/dd0/eval__intern_8h.html#a3441e3967c633da99c3dcd025494053e">EXEC_TAG</a>()) == 0) {</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</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="l00762"></a><span class="lineno"> 762</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="l00763"></a><span class="lineno"> 763</span>  }</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>  <a class="code" href="../../df/d38/vm__exec_8c.html">val</a> = <a class="code" href="../../de/de9/vm_8c.html#a048227fd9ad77e666ba905ae3315027c">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="l00765"></a><span class="lineno"> 765</span>  defined_class);</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>  }</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>  <a class="code" href="../../dd/dd0/eval__intern_8h.html#a4d06135dea1a72a3ab73b20cc1a9fc55">TH_POP_TAG</a>();</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span> </div><div class="line"><a name="l00769"></a><span class="lineno"> 769</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="l00770"></a><span class="lineno"> 770</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#adc5048ddde96e3ea2e6b22c3e58ce696">safe_level</a> = stored_safe;</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>  }</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span> </div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>  <span class="keywordflow">if</span> (state) {</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>  <a class="code" href="../../dd/dd0/eval__intern_8h.html#a24884166ae699029ade34fd36bedd688">JUMP_TAG</a>(state);</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>  }</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>  <span class="keywordflow">return</span> <a class="code" href="../../df/d38/vm__exec_8c.html">val</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> </div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l00780"></a><span class="lineno"><a class="line" href="../../d8/d32/vm__core_8h.html#a042bbbb9639b7c7db23bd5edfaf8c525"> 780</a></span> <a class="code" href="../../de/de9/vm_8c.html#a042bbbb9639b7c7db23bd5edfaf8c525">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,</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</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="l00782"></a><span class="lineno"> 782</span> {</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>  <span class="keywordflow">return</span> <a class="code" href="../../de/de9/vm_8c.html#aaf7bb4b661a43db4aeefc8b1520b3374">vm_invoke_proc</a>(th, proc, 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>, proc-><a class="code" href="../../d5/d77/structrb__proc__t.html#acf80b0e350012548c28cba1ea64a7a6e">block</a>.<a class="code" href="../../da/dc0/structrb__block__struct.html#a0ee5a28e75794bb397dbbd95baa7cdc0">klass</a>,</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</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="l00785"></a><span class="lineno"> 785</span> }</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> <span class="comment">/* special variable */</span></div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span> </div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span> <span class="keyword">static</span> <a class="code" href="../../de/dc6/structrb__control__frame__struct.html">rb_control_frame_t</a> *</div><div class="line"><a name="l00790"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#aa10e58958709037c9e4bba549b0d4755"> 790</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="../../de/dc6/structrb__control__frame__struct.html">rb_control_frame_t</a> *cfp)</div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span> {</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>  <span class="keywordflow">while</span> (cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a596de17ddc9fb186769848a9f27f3510">pc</a> == 0) {</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</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="l00794"></a><span class="lineno"> 794</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="l00795"></a><span class="lineno"> 795</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>  }</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>  }</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>  <span class="keywordflow">return</span> cfp;</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span> }</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span> </div><div class="line"><a name="l00801"></a><span class="lineno"> 801</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="l00802"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a5077c2fe5c10efbf02a0ee287b84c809"> 802</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="../../de/dc6/structrb__control__frame__struct.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="l00803"></a><span class="lineno"> 803</span> {</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>  cfp = <a class="code" href="../../de/de9/vm_8c.html#aa10e58958709037c9e4bba549b0d4755">vm_normal_frame</a>(th, cfp);</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>  <span class="keywordflow">return</span> <a class="code" href="../../d0/db2/vm__insnhelper_8c.html#ae864864dda83abc809b951bd93f117b7">lep_svar_get</a>(th, cfp ? <a class="code" href="../../de/de9/vm_8c.html#aef56dc0756735c2f5d6e5cb594747503">VM_CF_LEP</a>(cfp) : 0, <a class="code" href="../../dc/de5/random_8c.html#a742229490b6759a90ece7ba82ba129d5">key</a>);</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span> }</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span> </div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00809"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#aa873ebca03e88966c9fd8710cff0a429"> 809</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="../../de/dc6/structrb__control__frame__struct.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> <a class="code" href="../../df/d38/vm__exec_8c.html">val</a>)</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span> {</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>  cfp = <a class="code" href="../../de/de9/vm_8c.html#aa10e58958709037c9e4bba549b0d4755">vm_normal_frame</a>(th, cfp);</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>  <a class="code" href="../../d0/db2/vm__insnhelper_8c.html#a347337a315c575eb14dad973cc802743">lep_svar_set</a>(th, cfp ? <a class="code" href="../../de/de9/vm_8c.html#aef56dc0756735c2f5d6e5cb594747503">VM_CF_LEP</a>(cfp) : 0, <a class="code" href="../../dc/de5/random_8c.html#a742229490b6759a90ece7ba82ba129d5">key</a>, <a class="code" href="../../df/d38/vm__exec_8c.html">val</a>);</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span> }</div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span> </div><div class="line"><a name="l00815"></a><span class="lineno"> 815</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="l00816"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a9ae786ebda2b26b25d2fc8212420e665"> 816</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="l00817"></a><span class="lineno"> 817</span> {</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</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#aec678927729c3dcca12b2fae241158b0">GET_THREAD</a>();</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</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="l00820"></a><span class="lineno"> 820</span> }</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="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00823"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#ab3cf4160fd472c04e48e7569c2ed34fe"> 823</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> <a class="code" href="../../df/d38/vm__exec_8c.html">val</a>)</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span> {</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</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#aec678927729c3dcca12b2fae241158b0">GET_THREAD</a>();</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</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>, <a class="code" href="../../df/d38/vm__exec_8c.html">val</a>);</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span> }</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span> </div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l00830"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a2590f9272c0599ff0d1922bd0fb6efce"> 830</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="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="../../de/de9/vm_8c.html#a9ae786ebda2b26b25d2fc8212420e665">vm_svar_get</a>(1);</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="keywordtype">void</span></div><div class="line"><a name="l00836"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a96a10fbdd9c8c5718f51516c714da0b1"> 836</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> <a class="code" href="../../df/d38/vm__exec_8c.html">val</a>)</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/de9/vm_8c.html#ab3cf4160fd472c04e48e7569c2ed34fe">vm_svar_set</a>(1, <a class="code" href="../../df/d38/vm__exec_8c.html">val</a>);</div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span> }</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> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l00842"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#ac185acdaeb1aadf3f4297609e05fd083"> 842</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="l00843"></a><span class="lineno"> 843</span> {</div><div class="line"><a name="l00844"></a><span class="lineno"> 844</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="l00845"></a><span class="lineno"> 845</span> }</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span> </div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00848"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a1afa8b88ecd32dd5f8fecdc8c31568e7"> 848</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> <a class="code" href="../../df/d38/vm__exec_8c.html">val</a>)</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span> {</div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>  <a class="code" href="../../de/de9/vm_8c.html#ab3cf4160fd472c04e48e7569c2ed34fe">vm_svar_set</a>(0, <a class="code" href="../../df/d38/vm__exec_8c.html">val</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> </div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span> <span class="comment">/* misc */</span></div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span> </div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l00856"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#ae7cdc17bd0350835a8661083c4032ea8"> 856</a></span> <a class="code" href="../../de/de9/vm_8c.html#ae7cdc17bd0350835a8661083c4032ea8">rb_sourcefilename</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span> {</div><div class="line"><a name="l00858"></a><span class="lineno"> 858</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#aec678927729c3dcca12b2fae241158b0">GET_THREAD</a>();</div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>  <a class="code" href="../../de/dc6/structrb__control__frame__struct.html">rb_control_frame_t</a> *cfp = <a class="code" href="../../de/de9/vm_8c.html#abe55ec96693d3caf875342934a7fe1f1">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="l00860"></a><span class="lineno"> 860</span> </div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span>  <span class="keywordflow">if</span> (cfp) {</div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span>  <span class="keywordflow">return</span> cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">iseq</a>-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#acf13c2a9990e88276a7223a4881302d6">location</a>.<a class="code" href="../../dd/dc8/structrb__iseq__location__struct.html#a7021da5c8b09129a4212e76cff24db02">path</a>;</div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>  }</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00865"></a><span class="lineno"> 865</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="l00866"></a><span class="lineno"> 866</span>  }</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> </div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *</div><div class="line"><a name="l00870"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a452b5b1b1a54238cd749112eb9e9d688"> 870</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="l00871"></a><span class="lineno"> 871</span> {</div><div class="line"><a name="l00872"></a><span class="lineno"> 872</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#aec678927729c3dcca12b2fae241158b0">GET_THREAD</a>();</div><div class="line"><a name="l00873"></a><span class="lineno"> 873</span>  <a class="code" href="../../de/dc6/structrb__control__frame__struct.html">rb_control_frame_t</a> *cfp = <a class="code" href="../../de/de9/vm_8c.html#abe55ec96693d3caf875342934a7fe1f1">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="l00874"></a><span class="lineno"> 874</span> </div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>  <span class="keywordflow">if</span> (cfp) {</div><div class="line"><a name="l00876"></a><span class="lineno"> 876</span>  <span class="keywordflow">return</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3f0e4e2b6d073369cc1c2ddde00b13bb">RSTRING_PTR</a>(cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">iseq</a>-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#acf13c2a9990e88276a7223a4881302d6">location</a>.<a class="code" href="../../dd/dc8/structrb__iseq__location__struct.html#a7021da5c8b09129a4212e76cff24db02">path</a>);</div><div class="line"><a name="l00877"></a><span class="lineno"> 877</span>  }</div><div class="line"><a name="l00878"></a><span class="lineno"> 878</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span>  }</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> </div><div class="line"><a name="l00883"></a><span class="lineno"> 883</span> <span class="keywordtype">int</span></div><div class="line"><a name="l00884"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#af5f87f9d39ea7433dc0de2f655bd6359"> 884</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="l00885"></a><span class="lineno"> 885</span> {</div><div class="line"><a name="l00886"></a><span class="lineno"> 886</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#aec678927729c3dcca12b2fae241158b0">GET_THREAD</a>();</div><div class="line"><a name="l00887"></a><span class="lineno"> 887</span>  <a class="code" href="../../de/dc6/structrb__control__frame__struct.html">rb_control_frame_t</a> *cfp = <a class="code" href="../../de/de9/vm_8c.html#abe55ec96693d3caf875342934a7fe1f1">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="l00888"></a><span class="lineno"> 888</span> </div><div class="line"><a name="l00889"></a><span class="lineno"> 889</span>  <span class="keywordflow">if</span> (cfp) {</div><div class="line"><a name="l00890"></a><span class="lineno"> 890</span>  <span class="keywordflow">return</span> <a class="code" href="../../d8/d73/vm__backtrace_8c.html#a70289cbb34babceed6243d9471e70e5f">rb_vm_get_sourceline</a>(cfp);</div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span>  }</div><div class="line"><a name="l00892"></a><span class="lineno"> 892</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00894"></a><span class="lineno"> 894</span>  }</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> </div><div class="line"><a name="l00897"></a><span class="lineno"> 897</span> <a class="code" href="../../dd/de6/struct_r_node.html">NODE</a> *</div><div class="line"><a name="l00898"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a148afe59d50d9a0f3bde4d9968d8a2f5"> 898</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="l00899"></a><span class="lineno"> 899</span> {</div><div class="line"><a name="l00900"></a><span class="lineno"> 900</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#aec678927729c3dcca12b2fae241158b0">GET_THREAD</a>();</div><div class="line"><a name="l00901"></a><span class="lineno"> 901</span>  <a class="code" href="../../de/dc6/structrb__control__frame__struct.html">rb_control_frame_t</a> *cfp = <a class="code" href="../../de/de9/vm_8c.html#abe55ec96693d3caf875342934a7fe1f1">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="l00902"></a><span class="lineno"> 902</span> </div><div class="line"><a name="l00903"></a><span class="lineno"> 903</span>  <span class="keywordflow">if</span> (cfp == 0) {</div><div class="line"><a name="l00904"></a><span class="lineno"> 904</span>  <span class="keywordflow">return</span> <a class="code" href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div><div class="line"><a name="l00905"></a><span class="lineno"> 905</span>  }</div><div class="line"><a name="l00906"></a><span class="lineno"> 906</span>  <span class="keywordflow">return</span> <a class="code" href="../../d3/d57/eval_8c.html#a37deca77ace9f3694ee952f50dbab698">rb_vm_get_cref</a>(cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">iseq</a>, cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a98749000ef85777099b645d7d755275d">ep</a>);</div><div class="line"><a name="l00907"></a><span class="lineno"> 907</span> }</div><div class="line"><a name="l00908"></a><span class="lineno"> 908</span> </div><div class="line"><a name="l00909"></a><span class="lineno"> 909</span> <span class="preprocessor">#if 0</span></div><div class="line"><a name="l00910"></a><span class="lineno"> 910</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00911"></a><span class="lineno"> 911</span> debug_cref(<a class="code" href="../../dd/de6/struct_r_node.html">NODE</a> *cref)</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="keywordflow">while</span> (cref) {</div><div class="line"><a name="l00914"></a><span class="lineno"> 914</span>  <a class="code" href="../../d5/d8c/vm__debug_8h.html#a08a47aff6867e5ae146382e66d2cc26b">dp</a>(cref->nd_clss);</div><div class="line"><a name="l00915"></a><span class="lineno"> 915</span>  printf(<span class="stringliteral">"%ld\n"</span>, cref->nd_visi);</div><div class="line"><a name="l00916"></a><span class="lineno"> 916</span>  cref = cref->nd_next;</div><div class="line"><a name="l00917"></a><span class="lineno"> 917</span>  }</div><div class="line"><a name="l00918"></a><span class="lineno"> 918</span> }</div><div class="line"><a name="l00919"></a><span class="lineno"> 919</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00920"></a><span class="lineno"> 920</span> </div><div class="line"><a name="l00921"></a><span class="lineno"> 921</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l00922"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#ab942ba41eb7429c6a2059edcf7403233"> 922</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="l00923"></a><span class="lineno"> 923</span> {</div><div class="line"><a name="l00924"></a><span class="lineno"> 924</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#aec678927729c3dcca12b2fae241158b0">GET_THREAD</a>();</div><div class="line"><a name="l00925"></a><span class="lineno"> 925</span>  <a class="code" href="../../de/dc6/structrb__control__frame__struct.html">rb_control_frame_t</a> *cfp = <a class="code" href="../../de/de9/vm_8c.html#abe55ec96693d3caf875342934a7fe1f1">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="l00926"></a><span class="lineno"> 926</span> </div><div class="line"><a name="l00927"></a><span class="lineno"> 927</span>  <span class="keywordflow">if</span> (cfp == 0) {</div><div class="line"><a name="l00928"></a><span class="lineno"> 928</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="l00929"></a><span class="lineno"> 929</span>  }</div><div class="line"><a name="l00930"></a><span class="lineno"> 930</span>  <span class="keywordflow">return</span> <a class="code" href="../../d0/db2/vm__insnhelper_8c.html#a3a0dcb779dc1bb29867e8da3f65e23a6">vm_get_cbase</a>(cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">iseq</a>, cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a98749000ef85777099b645d7d755275d">ep</a>);</div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span> }</div><div class="line"><a name="l00932"></a><span class="lineno"> 932</span> </div><div class="line"><a name="l00933"></a><span class="lineno"> 933</span> <span class="comment">/* jump */</span></div><div class="line"><a name="l00934"></a><span class="lineno"> 934</span> </div><div class="line"><a name="l00935"></a><span class="lineno"> 935</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="l00936"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#aee005debbaae740dafe23261682f80d2"> 936</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="l00937"></a><span class="lineno"> 937</span> {</div><div class="line"><a name="l00938"></a><span class="lineno"> 938</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="l00939"></a><span class="lineno"> 939</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="l00940"></a><span class="lineno"> 940</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="l00941"></a><span class="lineno"> 941</span> </div><div class="line"><a name="l00942"></a><span class="lineno"> 942</span>  <span class="keywordflow">switch</span> (reason) {</div><div class="line"><a name="l00943"></a><span class="lineno"> 943</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="l00944"></a><span class="lineno"> 944</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="l00945"></a><span class="lineno"> 945</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00946"></a><span class="lineno"> 946</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="l00947"></a><span class="lineno"> 947</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="l00948"></a><span class="lineno"> 948</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00949"></a><span class="lineno"> 949</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="l00950"></a><span class="lineno"> 950</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="l00951"></a><span class="lineno"> 951</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00952"></a><span class="lineno"> 952</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="l00953"></a><span class="lineno"> 953</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="l00954"></a><span class="lineno"> 954</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00955"></a><span class="lineno"> 955</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="l00956"></a><span class="lineno"> 956</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="l00957"></a><span class="lineno"> 957</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span>  <span class="keywordflow">default</span>:</div><div class="line"><a name="l00959"></a><span class="lineno"> 959</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="l00960"></a><span class="lineno"> 960</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00961"></a><span class="lineno"> 961</span>  }</div><div class="line"><a name="l00962"></a><span class="lineno"> 962</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="l00963"></a><span class="lineno"> 963</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="../../de/de6/ruby_2ruby_8h.html#a4ef7b7ff907d043bd989a7e73e1da420">ID2SYM</a>(<span class="keywordtype">id</span>));</div><div class="line"><a name="l00964"></a><span class="lineno"> 964</span>  <span class="keywordflow">return</span> exc;</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> </div><div class="line"><a name="l00967"></a><span class="lineno"> 967</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00968"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a0402672d92f48e0018ab5f8aeda270e6"> 968</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="l00969"></a><span class="lineno"> 969</span> {</div><div class="line"><a name="l00970"></a><span class="lineno"> 970</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="l00971"></a><span class="lineno"> 971</span>  <a class="code" href="../../d3/d57/eval_8c.html#a237939d28c83950b84fb6a45ccca53a0">rb_exc_raise</a>(exc);</div><div class="line"><a name="l00972"></a><span class="lineno"> 972</span> }</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></div><div class="line"><a name="l00975"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#aa81384e9111765fdcf967b201efb2e6b"> 975</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> state, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../df/d38/vm__exec_8c.html">val</a>)</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>  <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="l00978"></a><span class="lineno"> 978</span> </div><div class="line"><a name="l00979"></a><span class="lineno"> 979</span>  <span class="keywordflow">if</span> (<a class="code" href="../../df/d38/vm__exec_8c.html">val</a> == <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a2edf6990280eb2637623ccd421dee4f0">Qundef</a>) {</div><div class="line"><a name="l00980"></a><span class="lineno"> 980</span>  <a class="code" href="../../df/d38/vm__exec_8c.html">val</a> = <a class="code" href="../../d8/d32/vm__core_8h.html#aec678927729c3dcca12b2fae241158b0">GET_THREAD</a>()-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a5125f0aae753728da5c0a02d84fd7f23">tag</a>-><a class="code" href="../../d5/d80/structrb__vm__tag.html#a013887e887e9c7a2a9b0a64b76fc8141">retval</a>;</div><div class="line"><a name="l00981"></a><span class="lineno"> 981</span>  }</div><div class="line"><a name="l00982"></a><span class="lineno"> 982</span>  <span class="keywordflow">switch</span> (state) {</div><div class="line"><a name="l00983"></a><span class="lineno"> 983</span>  <span class="keywordflow">case</span> 0:</div><div class="line"><a name="l00984"></a><span class="lineno"> 984</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00985"></a><span class="lineno"> 985</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="l00986"></a><span class="lineno"> 986</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>, <a class="code" href="../../df/d38/vm__exec_8c.html">val</a>, state);</div><div class="line"><a name="l00987"></a><span class="lineno"> 987</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00988"></a><span class="lineno"> 988</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="l00989"></a><span class="lineno"> 989</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>, <a class="code" href="../../df/d38/vm__exec_8c.html">val</a>, state);</div><div class="line"><a name="l00990"></a><span class="lineno"> 990</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00991"></a><span class="lineno"> 991</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="l00992"></a><span class="lineno"> 992</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>, <a class="code" href="../../df/d38/vm__exec_8c.html">val</a>, state);</div><div class="line"><a name="l00993"></a><span class="lineno"> 993</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00994"></a><span class="lineno"> 994</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="l00995"></a><span class="lineno"> 995</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>, state);</div><div class="line"><a name="l00996"></a><span class="lineno"> 996</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00997"></a><span class="lineno"> 997</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="l00998"></a><span class="lineno"> 998</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>, state);</div><div class="line"><a name="l00999"></a><span class="lineno"> 999</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>  <span class="keywordflow">default</span>:</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>  }</div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>  <span class="keywordflow">return</span> <a class="code" href="../../d8/d90/nkf_8c.html#a5ea5ac7abf5cce39283e422add1067d5">result</a>;</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span> }</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span> </div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span> <span class="keywordtype">void</span></div><div class="line"><a name="l01007"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a483f42b6e6037068287e53dc62b90985"> 1007</a></span> <a class="code" href="../../de/de9/vm_8c.html#a483f42b6e6037068287e53dc62b90985">rb_vm_jump_tag_but_local_jump</a>(<span class="keywordtype">int</span> state)</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>  <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>(state, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a2edf6990280eb2637623ccd421dee4f0">Qundef</a>);</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</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="l01011"></a><span class="lineno"> 1011</span>  <a class="code" href="../../dd/dd0/eval__intern_8h.html#a24884166ae699029ade34fd36bedd688">JUMP_TAG</a>(state);</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> </div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span> <a class="code" href="../../de/de9/vm_8c.html#a39f52c4dbd1b5125bdfed18ed002e21f">NORETURN</a>(<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="../../de/de9/vm_8c.html#a5923856d61a69b123a219cbd558061c3">vm_iter_break</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> <a class="code" href="../../df/d38/vm__exec_8c.html">val</a>));</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span> </div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l01017"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a5923856d61a69b123a219cbd558061c3"> 1017</a></span> <a class="code" href="../../de/de9/vm_8c.html#a5923856d61a69b123a219cbd558061c3">vm_iter_break</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> <a class="code" href="../../df/d38/vm__exec_8c.html">val</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>  <a class="code" href="../../de/dc6/structrb__control__frame__struct.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="l01020"></a><span class="lineno"> 1020</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *ep = <a class="code" href="../../de/de9/vm_8c.html#a3c036fe8ef4e1a83cc704014ee4cabf6">VM_CF_PREV_EP</a>(cfp);</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>  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="l01023"></a><span class="lineno"> 1023</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="../../df/d38/vm__exec_8c.html">val</a>, (<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a>)ep, <a class="code" href="../../dd/dd0/eval__intern_8h.html#aa69d9fa25afdc01237612a6047b96189">TAG_BREAK</a>);</div><div class="line"><a name="l01024"></a><span class="lineno"> 1024</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="l01025"></a><span class="lineno"> 1025</span> }</div><div class="line"><a name="l01026"></a><span class="lineno"> 1026</span> </div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span> <span class="keywordtype">void</span></div><div class="line"><a name="l01028"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a2d68db6481cad1995cbdb77a8ddd5291"> 1028</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="l01029"></a><span class="lineno"> 1029</span> {</div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>  <a class="code" href="../../de/de9/vm_8c.html#a5923856d61a69b123a219cbd558061c3">vm_iter_break</a>(<a class="code" href="../../d8/d32/vm__core_8h.html#aec678927729c3dcca12b2fae241158b0">GET_THREAD</a>(), <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</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#a76fa4686dcd2ba89c50d00dd700b6316"> 1034</a></span> <a class="code" href="../../de/de9/vm_8c.html#a76fa4686dcd2ba89c50d00dd700b6316">rb_iter_break_value</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../df/d38/vm__exec_8c.html">val</a>)</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#a5923856d61a69b123a219cbd558061c3">vm_iter_break</a>(<a class="code" href="../../d8/d32/vm__core_8h.html#aec678927729c3dcca12b2fae241158b0">GET_THREAD</a>(), <a class="code" href="../../df/d38/vm__exec_8c.html">val</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">int</span></div><div class="line"><a name="l01044"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#ab8e03b0e02136a5b06a1b2bb8f4f5860"> 1044</a></span> <a class="code" href="../../de/de9/vm_8c.html#ab8e03b0e02136a5b06a1b2bb8f4f5860">vm_redefinition_check_flag</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> klass)</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>  <span class="keywordflow">if</span> (klass == <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aea65905581e27d40bb8cb7d329fbca29">rb_cFixnum</a>) <span class="keywordflow">return</span> <a class="code" href="../../d2/d5f/vm__insnhelper_8h.html#a6e7e7982d85ec033efe8f9929c5ce67a">FIXNUM_REDEFINED_OP_FLAG</a>;</div><div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>  <span class="keywordflow">if</span> (klass == <a class="code" href="../../de/de6/ruby_2ruby_8h.html#addbfbe89560ccd54c06ec409e9f445b6">rb_cFloat</a>) <span class="keywordflow">return</span> <a class="code" href="../../d2/d5f/vm__insnhelper_8h.html#af968b58a40031c1299287b5245f020ac">FLOAT_REDEFINED_OP_FLAG</a>;</div><div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>  <span class="keywordflow">if</span> (klass == <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a7d36c9c3e9faa34c27eb7f2eb9c874a8">rb_cString</a>) <span class="keywordflow">return</span> <a class="code" href="../../d2/d5f/vm__insnhelper_8h.html#a15b52577f01f3305579b1553cbf1f218">STRING_REDEFINED_OP_FLAG</a>;</div><div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>  <span class="keywordflow">if</span> (klass == <a class="code" href="../../dc/dcc/array_8c.html#a2ae422f2c99d019bdfe5b12008c82b90">rb_cArray</a>) <span class="keywordflow">return</span> <a class="code" href="../../d2/d5f/vm__insnhelper_8h.html#a5f8e7be5793576774dcd1d6571dcb10d">ARRAY_REDEFINED_OP_FLAG</a>;</div><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>  <span class="keywordflow">if</span> (klass == <a class="code" href="../../d1/d04/hash_8c.html#a78f041cb2cf763a6eba5be64e2ee6870">rb_cHash</a>) <span class="keywordflow">return</span> <a class="code" href="../../d2/d5f/vm__insnhelper_8h.html#a3c31885aa6e36c6f67be77596ba5e8a0">HASH_REDEFINED_OP_FLAG</a>;</div><div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>  <span class="keywordflow">if</span> (klass == <a class="code" href="../../d1/dcc/bignum_8c.html#a453e764af9175d3c44ee471f921f7049">rb_cBignum</a>) <span class="keywordflow">return</span> <a class="code" href="../../d2/d5f/vm__insnhelper_8h.html#a6b1d268dea905b35b1e0577b4c6f9af4">BIGNUM_REDEFINED_OP_FLAG</a>;</div><div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>  <span class="keywordflow">if</span> (klass == <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a9bb99c1fc98bd5e0da36ac70200081b6">rb_cSymbol</a>) <span class="keywordflow">return</span> <a class="code" href="../../d2/d5f/vm__insnhelper_8h.html#aa23a5771f30dff1c952c855f08d2a7bc">SYMBOL_REDEFINED_OP_FLAG</a>;</div><div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>  <span class="keywordflow">if</span> (klass == <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a66f2d68e8b195fed5d03f60cb42ba31b">rb_cTime</a>) <span class="keywordflow">return</span> <a class="code" href="../../d2/d5f/vm__insnhelper_8h.html#a516b15c1ae923a154c9e721928eed6c9">TIME_REDEFINED_OP_FLAG</a>;</div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span> }</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> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l01058"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a9b24de6a9c1a3bd8a852afa2f75fe60b"> 1058</a></span> <a class="code" href="../../de/de9/vm_8c.html#a9b24de6a9c1a3bd8a852afa2f75fe60b">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, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> klass)</div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span> {</div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>  <a class="code" href="../../dd/d24/st_8h.html#a1c527e6d80aae369aeda64b1080e5feb">st_data_t</a> bop;</div><div class="line"><a name="l01061"></a><span class="lineno"> 1061</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="l01062"></a><span class="lineno"> 1062</span>  <span class="keywordflow">if</span> (<a class="code" href="../../dd/d24/st_8h.html#a2d85287fbdaf7dcbc22d45e925c29fea">st_lookup</a>(<a class="code" href="../../de/de9/vm_8c.html#ac6493695633068f17f9c245d529698d9">vm_opt_method_table</a>, (<a class="code" href="../../dd/d24/st_8h.html#a1c527e6d80aae369aeda64b1080e5feb">st_data_t</a>)me, &bop)) {</div><div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>  <span class="keywordtype">int</span> flag = <a class="code" href="../../de/de9/vm_8c.html#ab8e03b0e02136a5b06a1b2bb8f4f5860">vm_redefinition_check_flag</a>(klass);</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>  <a class="code" href="../../de/de9/vm_8c.html#ae7ebc888013290c4c514a63794167a87">ruby_vm_redefined_flag</a>[bop] |= flag;</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>  }</div><div class="line"><a name="l01068"></a><span class="lineno"> 1068</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> <span class="keyword">static</span> <span class="keywordtype">int</span></div><div class="line"><a name="l01071"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a23a288909555f1b5dabc17d89ec5b4f4"> 1071</a></span> <a class="code" href="../../de/de9/vm_8c.html#a23a288909555f1b5dabc17d89ec5b4f4">check_redefined_method</a>(<a class="code" href="../../dd/d24/st_8h.html#a1c527e6d80aae369aeda64b1080e5feb">st_data_t</a> <a class="code" href="../../dc/de5/random_8c.html#a742229490b6759a90ece7ba82ba129d5">key</a>, <a class="code" href="../../dd/d24/st_8h.html#a1c527e6d80aae369aeda64b1080e5feb">st_data_t</a> value, <a class="code" href="../../dd/d24/st_8h.html#a1c527e6d80aae369aeda64b1080e5feb">st_data_t</a> data)</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/de6/ruby_2ruby_8h.html#afa5b9137f051ac26d7ccc8824f178233">ID</a> mid = (<a class="code" href="../../de/de6/ruby_2ruby_8h.html#afa5b9137f051ac26d7ccc8824f178233">ID</a>)<a class="code" href="../../dc/de5/random_8c.html#a742229490b6759a90ece7ba82ba129d5">key</a>;</div><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>  <a class="code" href="../../d7/db7/structrb__method__entry__struct.html">rb_method_entry_t</a> *me = (<a class="code" href="../../d7/db7/structrb__method__entry__struct.html">rb_method_entry_t</a> *)value;</div><div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> klass = (<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a>)data;</div><div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>  <a class="code" href="../../d7/db7/structrb__method__entry__struct.html">rb_method_entry_t</a> *newme = <a class="code" href="../../db/d0a/method_8h.html#ada2b4368066fe3e00cffe2e6b657de16">rb_method_entry</a>(klass, mid, <a class="code" href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>);</div><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span> </div><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>  <span class="keywordflow">if</span> (newme != me)</div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>  <a class="code" href="../../de/de9/vm_8c.html#a9b24de6a9c1a3bd8a852afa2f75fe60b">rb_vm_check_redefinition_opt_method</a>(me, me-><a class="code" href="../../d7/db7/structrb__method__entry__struct.html#a9ce0871480ac405b00673b25234738de">klass</a>);</div><div class="line"><a name="l01080"></a><span class="lineno"> 1080</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="l01081"></a><span class="lineno"> 1081</span> }</div><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span> </div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span> <span class="keywordtype">void</span></div><div class="line"><a name="l01084"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a8c23b7c0fe49c0aa180cab5e227da443"> 1084</a></span> <a class="code" href="../../de/de9/vm_8c.html#a8c23b7c0fe49c0aa180cab5e227da443">rb_vm_check_redefinition_by_prepend</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> klass)</div><div class="line"><a name="l01085"></a><span class="lineno"> 1085</span> {</div><div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>  <span class="keywordflow">if</span> (!<a class="code" href="../../de/de9/vm_8c.html#ab8e03b0e02136a5b06a1b2bb8f4f5860">vm_redefinition_check_flag</a>(klass)) <span class="keywordflow">return</span>;</div><div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>  <a class="code" href="../../dd/d24/st_8h.html#ace5a79870d2800659a653fceeca55262">st_foreach</a>(<a class="code" href="../../db/dde/internal_8h.html#ab59ea80cdf15f3f19bbae0346314c9ad">RCLASS_M_TBL</a>(<a class="code" href="../../db/dde/internal_8h.html#a90a07890f91ca39d3b83ffa8e4e53836">RCLASS_ORIGIN</a>(klass)), <a class="code" href="../../de/de9/vm_8c.html#a23a288909555f1b5dabc17d89ec5b4f4">check_redefined_method</a>,</div><div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>  (<a class="code" href="../../dd/d24/st_8h.html#a1c527e6d80aae369aeda64b1080e5feb">st_data_t</a>)klass);</div><div class="line"><a name="l01089"></a><span class="lineno"> 1089</span> }</div><div class="line"><a name="l01090"></a><span class="lineno"> 1090</span> </div><div class="line"><a name="l01091"></a><span class="lineno"> 1091</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l01092"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a19074acfc80b03239ef6b07b13a4b460"> 1092</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="l01093"></a><span class="lineno"> 1093</span> {</div><div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>  <a class="code" href="../../d7/db7/structrb__method__entry__struct.html">rb_method_entry_t</a> *me;</div><div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>  <span class="keywordflow">if</span> (<a class="code" href="../../dd/d24/st_8h.html#a2d85287fbdaf7dcbc22d45e925c29fea">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="l01096"></a><span class="lineno"> 1096</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="l01097"></a><span class="lineno"> 1097</span>  <a class="code" href="../../dd/d24/st_8h.html#acdc42c01229b7537ea5a4c6965c7e47a">st_insert</a>(<a class="code" href="../../de/de9/vm_8c.html#ac6493695633068f17f9c245d529698d9">vm_opt_method_table</a>, (<a class="code" href="../../dd/d24/st_8h.html#a1c527e6d80aae369aeda64b1080e5feb">st_data_t</a>)me, (<a class="code" href="../../dd/d24/st_8h.html#a1c527e6d80aae369aeda64b1080e5feb">st_data_t</a>)bop);</div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>  }</div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l01100"></a><span class="lineno"> 1100</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="l01101"></a><span class="lineno"> 1101</span>  }</div><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span> }</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="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l01105"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a891ada54116b1442538ca6fc0e2861b1"> 1105</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="l01106"></a><span class="lineno"> 1106</span> {</div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#afa5b9137f051ac26d7ccc8824f178233">ID</a> mid;</div><div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> bop;</div><div class="line"><a name="l01109"></a><span class="lineno"> 1109</span> </div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>  <a class="code" href="../../de/de9/vm_8c.html#ac6493695633068f17f9c245d529698d9">vm_opt_method_table</a> = <a class="code" href="../../dd/d24/st_8h.html#a955c6e936b9681649ab9ffa4aa741949">st_init_numtable</a>();</div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span> </div><div class="line"><a name="l01112"></a><span class="lineno"> 1112</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="l01113"></a><span class="lineno"> 1113</span> <span class="preprocessor">#define C(k) add_opt_method(rb_c##k, mid, bop)</span></div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</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="l01115"></a><span class="lineno"> 1115</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), <a class="code" href="../../de/de9/vm_8c.html#abd5a67cb02cf079c0674935966148915">C</a>(Float));</div><div class="line"><a name="l01116"></a><span class="lineno"> 1116</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="l01117"></a><span class="lineno"> 1117</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="l01118"></a><span class="lineno"> 1118</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="l01119"></a><span class="lineno"> 1119</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="l01120"></a><span class="lineno"> 1120</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="l01121"></a><span class="lineno"> 1121</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), <a class="code" href="../../de/de9/vm_8c.html#abd5a67cb02cf079c0674935966148915">C</a>(Float));</div><div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>  <a class="code" href="../../de/de9/vm_8c.html#a73a24c093ebc1906a9831819833fc1f7">OP</a>(LE, LE), (<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="l01123"></a><span class="lineno"> 1123</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), <a class="code" href="../../de/de9/vm_8c.html#abd5a67cb02cf079c0674935966148915">C</a>(Float));</div><div class="line"><a name="l01124"></a><span class="lineno"> 1124</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), <a class="code" href="../../de/de9/vm_8c.html#abd5a67cb02cf079c0674935966148915">C</a>(Float));</div><div class="line"><a name="l01125"></a><span class="lineno"> 1125</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="l01126"></a><span class="lineno"> 1126</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="l01127"></a><span class="lineno"> 1127</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="l01128"></a><span class="lineno"> 1128</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="l01129"></a><span class="lineno"> 1129</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="l01130"></a><span class="lineno"> 1130</span>  <a class="code" href="../../de/de9/vm_8c.html#a73a24c093ebc1906a9831819833fc1f7">OP</a>(EmptyP, EMPTY_P), (<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="l01131"></a><span class="lineno"> 1131</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="l01132"></a><span class="lineno"> 1132</span> <span class="preprocessor">#undef C</span></div><div class="line"><a name="l01133"></a><span class="lineno"> 1133</span> <span class="preprocessor">#undef OP</span></div><div class="line"><a name="l01134"></a><span class="lineno"> 1134</span> }</div><div class="line"><a name="l01135"></a><span class="lineno"> 1135</span> </div><div class="line"><a name="l01136"></a><span class="lineno"> 1136</span> <span class="comment">/* for vm development */</span></div><div class="line"><a name="l01137"></a><span class="lineno"> 1137</span> </div><div class="line"><a name="l01138"></a><span class="lineno"> 1138</span> <span class="preprocessor">#if VMDEBUG</span></div><div class="line"><a name="l01139"></a><span class="lineno"> 1139</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *</div><div class="line"><a name="l01140"></a><span class="lineno"> 1140</span> vm_frametype_name(<span class="keyword">const</span> <a class="code" href="../../de/dc6/structrb__control__frame__struct.html">rb_control_frame_t</a> *cfp)</div><div class="line"><a name="l01141"></a><span class="lineno"> 1141</span> {</div><div class="line"><a name="l01142"></a><span class="lineno"> 1142</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="l01143"></a><span class="lineno"> 1143</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="l01144"></a><span class="lineno"> 1144</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="l01145"></a><span class="lineno"> 1145</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="l01146"></a><span class="lineno"> 1146</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="l01147"></a><span class="lineno"> 1147</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="l01148"></a><span class="lineno"> 1148</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="l01149"></a><span class="lineno"> 1149</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="l01150"></a><span class="lineno"> 1150</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="l01151"></a><span class="lineno"> 1151</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="l01152"></a><span class="lineno"> 1152</span>  <span class="keywordflow">case</span> <a class="code" href="../../d8/d32/vm__core_8h.html#a9759f4581d8755c37d9a88a1da185566">VM_FRAME_MAGIC_RESCUE</a>: <span class="keywordflow">return</span> <span class="stringliteral">"rescue"</span>;</div><div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>  <span class="keywordflow">default</span>:</div><div class="line"><a name="l01154"></a><span class="lineno"> 1154</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="l01155"></a><span class="lineno"> 1155</span>  }</div><div class="line"><a name="l01156"></a><span class="lineno"> 1156</span> }</div><div class="line"><a name="l01157"></a><span class="lineno"> 1157</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l01158"></a><span class="lineno"> 1158</span> </div><div class="line"><a name="l01159"></a><span class="lineno"> 1159</span> <span class="comment">/* evaluator body */</span></div><div class="line"><a name="l01160"></a><span class="lineno"> 1160</span> </div><div class="line"><a name="l01161"></a><span class="lineno"> 1161</span> <span class="comment">/* finish</span></div><div class="line"><a name="l01162"></a><span class="lineno"> 1162</span> <span class="comment"> VMe (h1) finish</span></div><div class="line"><a name="l01163"></a><span class="lineno"> 1163</span> <span class="comment"> VM finish F1 F2</span></div><div class="line"><a name="l01164"></a><span class="lineno"> 1164</span> <span class="comment"> cfunc finish F1 F2 C1</span></div><div class="line"><a name="l01165"></a><span class="lineno"> 1165</span> <span class="comment"> rb_funcall finish F1 F2 C1</span></div><div class="line"><a name="l01166"></a><span class="lineno"> 1166</span> <span class="comment"> VMe finish F1 F2 C1</span></div><div class="line"><a name="l01167"></a><span class="lineno"> 1167</span> <span class="comment"> VM finish F1 F2 C1 F3</span></div><div class="line"><a name="l01168"></a><span class="lineno"> 1168</span> <span class="comment"></span></div><div class="line"><a name="l01169"></a><span class="lineno"> 1169</span> <span class="comment"> F1 - F3 : pushed by VM</span></div><div class="line"><a name="l01170"></a><span class="lineno"> 1170</span> <span class="comment"> C1 : pushed by send insn (CFUNC)</span></div><div class="line"><a name="l01171"></a><span class="lineno"> 1171</span> <span class="comment"></span></div><div class="line"><a name="l01172"></a><span class="lineno"> 1172</span> <span class="comment"> struct CONTROL_FRAME {</span></div><div class="line"><a name="l01173"></a><span class="lineno"> 1173</span> <span class="comment"> VALUE *pc; // cfp[0], program counter</span></div><div class="line"><a name="l01174"></a><span class="lineno"> 1174</span> <span class="comment"> VALUE *sp; // cfp[1], stack pointer</span></div><div class="line"><a name="l01175"></a><span class="lineno"> 1175</span> <span class="comment"> VALUE *bp; // cfp[2], base pointer</span></div><div class="line"><a name="l01176"></a><span class="lineno"> 1176</span> <span class="comment"> rb_iseq_t *iseq; // cfp[3], iseq</span></div><div class="line"><a name="l01177"></a><span class="lineno"> 1177</span> <span class="comment"> VALUE flag; // cfp[4], magic</span></div><div class="line"><a name="l01178"></a><span class="lineno"> 1178</span> <span class="comment"> VALUE self; // cfp[5], self</span></div><div class="line"><a name="l01179"></a><span class="lineno"> 1179</span> <span class="comment"> VALUE *ep; // cfp[6], env pointer</span></div><div class="line"><a name="l01180"></a><span class="lineno"> 1180</span> <span class="comment"> rb_iseq_t * block_iseq; // cfp[7], block iseq</span></div><div class="line"><a name="l01181"></a><span class="lineno"> 1181</span> <span class="comment"> VALUE proc; // cfp[8], always 0</span></div><div class="line"><a name="l01182"></a><span class="lineno"> 1182</span> <span class="comment"> };</span></div><div class="line"><a name="l01183"></a><span class="lineno"> 1183</span> <span class="comment"></span></div><div class="line"><a name="l01184"></a><span class="lineno"> 1184</span> <span class="comment"> struct BLOCK {</span></div><div class="line"><a name="l01185"></a><span class="lineno"> 1185</span> <span class="comment"> VALUE self;</span></div><div class="line"><a name="l01186"></a><span class="lineno"> 1186</span> <span class="comment"> VALUE *ep;</span></div><div class="line"><a name="l01187"></a><span class="lineno"> 1187</span> <span class="comment"> rb_iseq_t *block_iseq;</span></div><div class="line"><a name="l01188"></a><span class="lineno"> 1188</span> <span class="comment"> VALUE proc;</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"></span></div><div class="line"><a name="l01191"></a><span class="lineno"> 1191</span> <span class="comment"> struct METHOD_CONTROL_FRAME {</span></div><div class="line"><a name="l01192"></a><span class="lineno"> 1192</span> <span class="comment"> rb_control_frame_t frame;</span></div><div class="line"><a name="l01193"></a><span class="lineno"> 1193</span> <span class="comment"> };</span></div><div class="line"><a name="l01194"></a><span class="lineno"> 1194</span> <span class="comment"></span></div><div class="line"><a name="l01195"></a><span class="lineno"> 1195</span> <span class="comment"> struct METHOD_FRAME {</span></div><div class="line"><a name="l01196"></a><span class="lineno"> 1196</span> <span class="comment"> VALUE arg0;</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"> VALUE argM;</span></div><div class="line"><a name="l01199"></a><span class="lineno"> 1199</span> <span class="comment"> VALUE param0;</span></div><div class="line"><a name="l01200"></a><span class="lineno"> 1200</span> <span class="comment"> ...</span></div><div class="line"><a name="l01201"></a><span class="lineno"> 1201</span> <span class="comment"> VALUE paramN;</span></div><div class="line"><a name="l01202"></a><span class="lineno"> 1202</span> <span class="comment"> VALUE cref;</span></div><div class="line"><a name="l01203"></a><span class="lineno"> 1203</span> <span class="comment"> VALUE special; // lep [1]</span></div><div class="line"><a name="l01204"></a><span class="lineno"> 1204</span> <span class="comment"> struct block_object *block_ptr | 0x01; // lep [0]</span></div><div class="line"><a name="l01205"></a><span class="lineno"> 1205</span> <span class="comment"> };</span></div><div class="line"><a name="l01206"></a><span class="lineno"> 1206</span> <span class="comment"></span></div><div class="line"><a name="l01207"></a><span class="lineno"> 1207</span> <span class="comment"> struct BLOCK_CONTROL_FRAME {</span></div><div class="line"><a name="l01208"></a><span class="lineno"> 1208</span> <span class="comment"> rb_control_frame_t frame;</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 BLOCK_FRAME {</span></div><div class="line"><a name="l01212"></a><span class="lineno"> 1212</span> <span class="comment"> VALUE arg0;</span></div><div class="line"><a name="l01213"></a><span class="lineno"> 1213</span> <span class="comment"> ...</span></div><div class="line"><a name="l01214"></a><span class="lineno"> 1214</span> <span class="comment"> VALUE argM;</span></div><div class="line"><a name="l01215"></a><span class="lineno"> 1215</span> <span class="comment"> VALUE param0;</span></div><div class="line"><a name="l01216"></a><span class="lineno"> 1216</span> <span class="comment"> ...</span></div><div class="line"><a name="l01217"></a><span class="lineno"> 1217</span> <span class="comment"> VALUE paramN;</span></div><div class="line"><a name="l01218"></a><span class="lineno"> 1218</span> <span class="comment"> VALUE cref;</span></div><div class="line"><a name="l01219"></a><span class="lineno"> 1219</span> <span class="comment"> VALUE *(prev_ptr | 0x01); // ep[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> <span class="comment"> struct CLASS_CONTROL_FRAME {</span></div><div class="line"><a name="l01223"></a><span class="lineno"> 1223</span> <span class="comment"> rb_control_frame_t frame;</span></div><div class="line"><a name="l01224"></a><span class="lineno"> 1224</span> <span class="comment"> };</span></div><div class="line"><a name="l01225"></a><span class="lineno"> 1225</span> <span class="comment"></span></div><div class="line"><a name="l01226"></a><span class="lineno"> 1226</span> <span class="comment"> struct CLASS_FRAME {</span></div><div class="line"><a name="l01227"></a><span class="lineno"> 1227</span> <span class="comment"> VALUE param0;</span></div><div class="line"><a name="l01228"></a><span class="lineno"> 1228</span> <span class="comment"> ...</span></div><div class="line"><a name="l01229"></a><span class="lineno"> 1229</span> <span class="comment"> VALUE paramN;</span></div><div class="line"><a name="l01230"></a><span class="lineno"> 1230</span> <span class="comment"> VALUE cref;</span></div><div class="line"><a name="l01231"></a><span class="lineno"> 1231</span> <span class="comment"> VALUE prev_ep; // for frame jump</span></div><div class="line"><a name="l01232"></a><span class="lineno"> 1232</span> <span class="comment"> };</span></div><div class="line"><a name="l01233"></a><span class="lineno"> 1233</span> <span class="comment"></span></div><div class="line"><a name="l01234"></a><span class="lineno"> 1234</span> <span class="comment"> struct C_METHOD_CONTROL_FRAME {</span></div><div class="line"><a name="l01235"></a><span class="lineno"> 1235</span> <span class="comment"> VALUE *pc; // 0</span></div><div class="line"><a name="l01236"></a><span class="lineno"> 1236</span> <span class="comment"> VALUE *sp; // stack pointer</span></div><div class="line"><a name="l01237"></a><span class="lineno"> 1237</span> <span class="comment"> VALUE *bp; // base pointer (used in exception)</span></div><div class="line"><a name="l01238"></a><span class="lineno"> 1238</span> <span class="comment"> rb_iseq_t *iseq; // cmi</span></div><div class="line"><a name="l01239"></a><span class="lineno"> 1239</span> <span class="comment"> VALUE magic; // C_METHOD_FRAME</span></div><div class="line"><a name="l01240"></a><span class="lineno"> 1240</span> <span class="comment"> VALUE self; // ?</span></div><div class="line"><a name="l01241"></a><span class="lineno"> 1241</span> <span class="comment"> VALUE *ep; // ep == lep</span></div><div class="line"><a name="l01242"></a><span class="lineno"> 1242</span> <span class="comment"> rb_iseq_t * block_iseq; //</span></div><div class="line"><a name="l01243"></a><span class="lineno"> 1243</span> <span class="comment"> VALUE proc; // always 0</span></div><div class="line"><a name="l01244"></a><span class="lineno"> 1244</span> <span class="comment"> };</span></div><div class="line"><a name="l01245"></a><span class="lineno"> 1245</span> <span class="comment"></span></div><div class="line"><a name="l01246"></a><span class="lineno"> 1246</span> <span class="comment"> struct C_BLOCK_CONTROL_FRAME {</span></div><div class="line"><a name="l01247"></a><span class="lineno"> 1247</span> <span class="comment"> VALUE *pc; // point only "finish" insn</span></div><div class="line"><a name="l01248"></a><span class="lineno"> 1248</span> <span class="comment"> VALUE *sp; // sp</span></div><div class="line"><a name="l01249"></a><span class="lineno"> 1249</span> <span class="comment"> rb_iseq_t *iseq; // ?</span></div><div class="line"><a name="l01250"></a><span class="lineno"> 1250</span> <span class="comment"> VALUE magic; // C_METHOD_FRAME</span></div><div class="line"><a name="l01251"></a><span class="lineno"> 1251</span> <span class="comment"> VALUE self; // needed?</span></div><div class="line"><a name="l01252"></a><span class="lineno"> 1252</span> <span class="comment"> VALUE *ep; // ep</span></div><div class="line"><a name="l01253"></a><span class="lineno"> 1253</span> <span class="comment"> rb_iseq_t * block_iseq; // 0</span></div><div class="line"><a name="l01254"></a><span class="lineno"> 1254</span> <span class="comment"> };</span></div><div class="line"><a name="l01255"></a><span class="lineno"> 1255</span> <span class="comment"> */</span></div><div class="line"><a name="l01256"></a><span class="lineno"> 1256</span> </div><div class="line"><a name="l01257"></a><span class="lineno"> 1257</span> </div><div class="line"><a name="l01258"></a><span class="lineno"> 1258</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="l01259"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a6fca4e13002f037d2e15bc1c77ab18ed"> 1259</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="l01260"></a><span class="lineno"> 1260</span> {</div><div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>  <span class="keywordtype">int</span> state;</div><div class="line"><a name="l01262"></a><span class="lineno"> 1262</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="l01263"></a><span class="lineno"> 1263</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> initial = 0;</div><div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *escape_ep = <a class="code" href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div><div class="line"><a name="l01265"></a><span class="lineno"> 1265</span> </div><div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>  <a class="code" href="../../dd/dd0/eval__intern_8h.html#a4410e4208d7ae0de8dae7c5b61f9d55c">TH_PUSH_TAG</a>(th);</div><div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>  _tag.retval = <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>;</div><div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>  <span class="keywordflow">if</span> ((state = <a class="code" href="../../dd/dd0/eval__intern_8h.html#a3441e3967c633da99c3dcd025494053e">EXEC_TAG</a>()) == 0) {</div><div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>  vm_loop_start:</div><div class="line"><a name="l01270"></a><span class="lineno"> 1270</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="l01271"></a><span class="lineno"> 1271</span>  <span class="keywordflow">if</span> ((state = th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a25bbafcd0a1e0f6f79b42cc29baf3eb8">state</a>) != 0) {</div><div class="line"><a name="l01272"></a><span class="lineno"> 1272</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="l01273"></a><span class="lineno"> 1273</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a25bbafcd0a1e0f6f79b42cc29baf3eb8">state</a> = 0;</div><div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>  <span class="keywordflow">goto</span> exception_handler;</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>  }</div><div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>  <span class="keywordtype">int</span> <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="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="l01280"></a><span class="lineno"> 1280</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> epc, cont_pc, cont_sp;</div><div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> catch_iseqval;</div><div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>  <a class="code" href="../../de/dc6/structrb__control__frame__struct.html">rb_control_frame_t</a> *cfp;</div><div class="line"><a name="l01283"></a><span class="lineno"> 1283</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="l01284"></a><span class="lineno"> 1284</span> </div><div class="line"><a name="l01285"></a><span class="lineno"> 1285</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="l01286"></a><span class="lineno"> 1286</span> </div><div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>  exception_handler:</div><div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>  cont_pc = cont_sp = catch_iseqval = 0;</div><div class="line"><a name="l01289"></a><span class="lineno"> 1289</span> </div><div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>  <span class="keywordflow">while</span> (th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a596de17ddc9fb186769848a9f27f3510">pc</a> == 0 || th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">iseq</a> == 0) {</div><div class="line"><a name="l01291"></a><span class="lineno"> 1291</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="l01292"></a><span class="lineno"> 1292</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="../../de/dc6/structrb__control__frame__struct.html#ab8ddfbe44ad9a3582069c9fcf5211afc">me</a>;</div><div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#aaf6f79a9848eb27bfb82ac0d3ea8e0d9">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="../../de/dc6/structrb__control__frame__struct.html#aba6bb1166e207f96d81c4fcac16b3119">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>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>);</div><div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>  <a class="code" href="../../d6/d27/probes__helper_8h.html#ae7c6117146574ce9742d8fa3b16e8863">RUBY_DTRACE_METHOD_RETURN_HOOK</a>(th, me-><a class="code" href="../../d7/db7/structrb__method__entry__struct.html#a9ce0871480ac405b00673b25234738de">klass</a>, me-><a class="code" href="../../d7/db7/structrb__method__entry__struct.html#a31439bd620e98940410ba59244a85eae">called_id</a>);</div><div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>  }</div><div class="line"><a name="l01296"></a><span class="lineno"> 1296</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="l01297"></a><span class="lineno"> 1297</span>  }</div><div class="line"><a name="l01298"></a><span class="lineno"> 1298</span> </div><div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>  cfp = th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>;</div><div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>  epc = cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a596de17ddc9fb186769848a9f27f3510">pc</a> - cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">iseq</a>-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#aa70f3e195a4350acbbc130f8a95c9958">iseq_encoded</a>;</div><div class="line"><a name="l01301"></a><span class="lineno"> 1301</span> </div><div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>  <span class="keywordflow">if</span> (state == <a class="code" href="../../dd/dd0/eval__intern_8h.html#aa69d9fa25afdc01237612a6047b96189">TAG_BREAK</a> || state == <a class="code" href="../../dd/dd0/eval__intern_8h.html#abfe39758eac9658dbce9750e4bfddbc6">TAG_RETURN</a>) {</div><div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>  escape_ep = <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="l01304"></a><span class="lineno"> 1304</span> </div><div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>  <span class="keywordflow">if</span> (cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a98749000ef85777099b645d7d755275d">ep</a> == escape_ep) {</div><div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>  <span class="keywordflow">if</span> (state == <a class="code" href="../../dd/dd0/eval__intern_8h.html#abfe39758eac9658dbce9750e4bfddbc6">TAG_RETURN</a>) {</div><div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>  <span class="keywordflow">if</span> (!<a class="code" href="../../d8/d32/vm__core_8h.html#af2a793a1c756c8b552d8d1f897e63800">VM_FRAME_TYPE_FINISH_P</a>(cfp)) {</div><div class="line"><a name="l01308"></a><span class="lineno"> 1308</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)->ep);</div><div class="line"><a name="l01309"></a><span class="lineno"> 1309</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>, state = <a class="code" href="../../dd/dd0/eval__intern_8h.html#aa69d9fa25afdc01237612a6047b96189">TAG_BREAK</a>);</div><div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>  }</div><div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l01312"></a><span class="lineno"> 1312</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="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">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="l01313"></a><span class="lineno"> 1313</span>  entry = &cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">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="l01314"></a><span class="lineno"> 1314</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="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#a1c2635a230708dfba8857a6d6509b6a1af40d37f8dee0a7d299cf107101dd588b">CATCH_TYPE_ENSURE</a>) {</div><div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>  catch_iseqval = entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a919aa1dbe534777ff38a07a17b956524">iseq</a>;</div><div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>  cont_pc = entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a948846a98f14e75301964e17a95afcea">cont</a>;</div><div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>  cont_sp = entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a0b7ff23536c8be69a62188be1a84c1d5">sp</a>;</div><div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l01320"></a><span class="lineno"> 1320</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>  <span class="keywordflow">if</span> (!catch_iseqval) {</div><div class="line"><a name="l01324"></a><span class="lineno"> 1324</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="l01325"></a><span class="lineno"> 1325</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="l01326"></a><span class="lineno"> 1326</span>  <a class="code" href="../../d0/db2/vm__insnhelper_8c.html#a0aeeee637bf9706f9d240bac4ae359c3">vm_pop_frame</a>(th);</div><div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>  <span class="keywordflow">goto</span> finish_vme;</div><div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>  }</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="comment">/* through */</span></div><div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>  }</div><div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>  <span class="comment">/* TAG_BREAK */</span></div><div class="line"><a name="l01334"></a><span class="lineno"> 1334</span> <span class="preprocessor">#if OPT_STACK_CACHING</span></div><div class="line"><a name="l01335"></a><span class="lineno"> 1335</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="l01336"></a><span class="lineno"> 1336</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>  *th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a0e900de65ec08ba64df1125350b4071b">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="l01338"></a><span class="lineno"> 1338</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l01339"></a><span class="lineno"> 1339</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="l01340"></a><span class="lineno"> 1340</span>  <span class="keywordflow">goto</span> vm_loop_start;</div><div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>  }</div><div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>  }</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>  <span class="keywordflow">if</span> (state == <a class="code" href="../../dd/dd0/eval__intern_8h.html#a0b034bce069147e233776bc1dcc74c01">TAG_RAISE</a>) {</div><div class="line"><a name="l01346"></a><span class="lineno"> 1346</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="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">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="l01347"></a><span class="lineno"> 1347</span>  entry = &cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">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="l01348"></a><span class="lineno"> 1348</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="l01349"></a><span class="lineno"> 1349</span> </div><div class="line"><a name="l01350"></a><span class="lineno"> 1350</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="l01351"></a><span class="lineno"> 1351</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="l01352"></a><span class="lineno"> 1352</span>  catch_iseqval = entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a919aa1dbe534777ff38a07a17b956524">iseq</a>;</div><div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>  cont_pc = entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a948846a98f14e75301964e17a95afcea">cont</a>;</div><div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>  cont_sp = entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a0b7ff23536c8be69a62188be1a84c1d5">sp</a>;</div><div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>  }</div><div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>  }</div><div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>  }</div><div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>  }</div><div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (state == <a class="code" href="../../dd/dd0/eval__intern_8h.html#a277f73abdf66e83f4fc75b93d6e87b72">TAG_RETRY</a>) {</div><div class="line"><a name="l01361"></a><span class="lineno"> 1361</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="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">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="l01362"></a><span class="lineno"> 1362</span>  entry = &cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">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="l01363"></a><span class="lineno"> 1363</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="l01364"></a><span class="lineno"> 1364</span> </div><div class="line"><a name="l01365"></a><span class="lineno"> 1365</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="l01366"></a><span class="lineno"> 1366</span>  catch_iseqval = entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a919aa1dbe534777ff38a07a17b956524">iseq</a>;</div><div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>  cont_pc = entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a948846a98f14e75301964e17a95afcea">cont</a>;</div><div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>  cont_sp = entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a0b7ff23536c8be69a62188be1a84c1d5">sp</a>;</div><div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>  }</div><div class="line"><a name="l01371"></a><span class="lineno"> 1371</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="l01372"></a><span class="lineno"> 1372</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *escape_ep;</div><div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>  escape_ep = <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="l01374"></a><span class="lineno"> 1374</span>  <span class="keywordflow">if</span> (cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a98749000ef85777099b645d7d755275d">ep</a> == escape_ep) {</div><div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>  cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a596de17ddc9fb186769848a9f27f3510">pc</a> = cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">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="l01376"></a><span class="lineno"> 1376</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="l01377"></a><span class="lineno"> 1377</span>  <span class="keywordflow">goto</span> vm_loop_start;</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>  }</div><div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>  }</div><div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>  }</div><div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (state == <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_ep & ~0x03) == 0) {</div><div class="line"><a name="l01384"></a><span class="lineno"> 1384</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="l01385"></a><span class="lineno"> 1385</span> </div><div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>  search_restart_point:</div><div class="line"><a name="l01387"></a><span class="lineno"> 1387</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="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">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="l01388"></a><span class="lineno"> 1388</span>  entry = &cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">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="l01389"></a><span class="lineno"> 1389</span> </div><div class="line"><a name="l01390"></a><span class="lineno"> 1390</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="l01391"></a><span class="lineno"> 1391</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="l01392"></a><span class="lineno"> 1392</span>  catch_iseqval = entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a919aa1dbe534777ff38a07a17b956524">iseq</a>;</div><div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>  cont_pc = entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a948846a98f14e75301964e17a95afcea">cont</a>;</div><div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>  cont_sp = entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a0b7ff23536c8be69a62188be1a84c1d5">sp</a>;</div><div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>  }</div><div class="line"><a name="l01397"></a><span class="lineno"> 1397</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="l01398"></a><span class="lineno"> 1398</span>  cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a596de17ddc9fb186769848a9f27f3510">pc</a> = cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">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="l01399"></a><span class="lineno"> 1399</span>  cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a0e900de65ec08ba64df1125350b4071b">sp</a> = <a class="code" href="../../d0/db2/vm__insnhelper_8c.html#ad8c4d3e68920abf7fe2a84cffde3be1b">vm_base_ptr</a>(cfp) + entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a0b7ff23536c8be69a62188be1a84c1d5">sp</a>;</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>  <span class="keywordflow">if</span> (state != <a class="code" href="../../dd/dd0/eval__intern_8h.html#a82e8bb282a1d35fcc453335b090bd4a7">TAG_REDO</a>) {</div><div class="line"><a name="l01402"></a><span class="lineno"> 1402</span> <span class="preprocessor">#if OPT_STACK_CACHING</span></div><div class="line"><a name="l01403"></a><span class="lineno"> 1403</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="l01404"></a><span class="lineno"> 1404</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>  *th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a0e900de65ec08ba64df1125350b4071b">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="l01406"></a><span class="lineno"> 1406</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>  }</div><div class="line"><a name="l01408"></a><span class="lineno"> 1408</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="l01409"></a><span class="lineno"> 1409</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a25bbafcd0a1e0f6f79b42cc29baf3eb8">state</a> = 0;</div><div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>  <span class="keywordflow">goto</span> vm_loop_start;</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>  }</div><div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>  }</div><div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>  }</div><div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (state == <a class="code" href="../../dd/dd0/eval__intern_8h.html#a82e8bb282a1d35fcc453335b090bd4a7">TAG_REDO</a>) {</div><div class="line"><a name="l01416"></a><span class="lineno"> 1416</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="l01417"></a><span class="lineno"> 1417</span>  <span class="keywordflow">goto</span> search_restart_point;</div><div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>  }</div><div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (state == <a class="code" href="../../dd/dd0/eval__intern_8h.html#ac5d3e11622cde853addb87cfae24021e">TAG_NEXT</a>) {</div><div class="line"><a name="l01420"></a><span class="lineno"> 1420</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="l01421"></a><span class="lineno"> 1421</span>  <span class="keywordflow">goto</span> search_restart_point;</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="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="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">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="l01425"></a><span class="lineno"> 1425</span>  entry = &cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">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="l01426"></a><span class="lineno"> 1426</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="l01427"></a><span class="lineno"> 1427</span> </div><div class="line"><a name="l01428"></a><span class="lineno"> 1428</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="l01429"></a><span class="lineno"> 1429</span>  catch_iseqval = entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a919aa1dbe534777ff38a07a17b956524">iseq</a>;</div><div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>  cont_pc = entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a948846a98f14e75301964e17a95afcea">cont</a>;</div><div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>  cont_sp = entry-><a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a0b7ff23536c8be69a62188be1a84c1d5">sp</a>;</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>  }</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> </div><div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>  <span class="keywordflow">if</span> (catch_iseqval != 0) {</div><div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>  <span class="comment">/* found catch table */</span></div><div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>  <a class="code" href="../../d6/de3/structrb__iseq__struct.html">rb_iseq_t</a> *catch_iseq;</div><div class="line"><a name="l01441"></a><span class="lineno"> 1441</span> </div><div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>  <span class="comment">/* enter catch scope */</span></div><div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#a5e6a3515e0ad9b9d6a4c0ab577dc50b6">GetISeqPtr</a>(catch_iseqval, catch_iseq);</div><div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>  cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a0e900de65ec08ba64df1125350b4071b">sp</a> = <a class="code" href="../../d0/db2/vm__insnhelper_8c.html#ad8c4d3e68920abf7fe2a84cffde3be1b">vm_base_ptr</a>(cfp) + cont_sp;</div><div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>  cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a596de17ddc9fb186769848a9f27f3510">pc</a> = cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">iseq</a>-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#aa70f3e195a4350acbbc130f8a95c9958">iseq_encoded</a> + cont_pc;</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>  <span class="comment">/* push block frame */</span></div><div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>  cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a0e900de65ec08ba64df1125350b4071b">sp</a>[0] = <a class="code" href="../../d5/df2/win32_8c.html#a6ce68847c12434f60d1b2654a3dc3409">err</a>;</div><div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>  <a class="code" href="../../d0/db2/vm__insnhelper_8c.html#ae6e62348f86c254a636fba4f6a21bb94">vm_push_frame</a>(th, catch_iseq, <a class="code" href="../../d8/d32/vm__core_8h.html#a9759f4581d8755c37d9a88a1da185566">VM_FRAME_MAGIC_RESCUE</a>,</div><div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>  cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#aba6bb1166e207f96d81c4fcac16b3119">self</a>, cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#acbc4e3a67849cb96ff2b6e4cdc1f7457">klass</a>,</div><div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#a9405c55bec05419bc0ed7ae4d631e091">VM_ENVVAL_PREV_EP_PTR</a>(cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a98749000ef85777099b645d7d755275d">ep</a>),</div><div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>  catch_iseq-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#aa70f3e195a4350acbbc130f8a95c9958">iseq_encoded</a>,</div><div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>  cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a0e900de65ec08ba64df1125350b4071b">sp</a> + 1 <span class="comment">/* push value */</span>,</div><div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>  catch_iseq-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#afbae994355f91f3ea547570debb757c0">local_size</a> - 1,</div><div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>  cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#ab8ddfbe44ad9a3582069c9fcf5211afc">me</a>);</div><div class="line"><a name="l01456"></a><span class="lineno"> 1456</span> </div><div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>  state = 0;</div><div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a25bbafcd0a1e0f6f79b42cc29baf3eb8">state</a> = 0;</div><div class="line"><a name="l01459"></a><span class="lineno"> 1459</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="l01460"></a><span class="lineno"> 1460</span>  <span class="keywordflow">goto</span> vm_loop_start;</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>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>  <span class="comment">/* skip frame */</span></div><div class="line"><a name="l01464"></a><span class="lineno"> 1464</span> </div><div class="line"><a name="l01465"></a><span class="lineno"> 1465</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="l01466"></a><span class="lineno"> 1466</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="l01467"></a><span class="lineno"> 1467</span>  <a class="code" href="../../d6/d27/probes__helper_8h.html#ae7c6117146574ce9742d8fa3b16e8863">RUBY_DTRACE_METHOD_RETURN_HOOK</a>(th, 0, 0);</div><div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#a0f06f3e387d32f67b38a70d2a0da2ecc">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="../../de/dc6/structrb__control__frame__struct.html#aba6bb1166e207f96d81c4fcac16b3119">self</a>, 0, 0, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>);</div><div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>  <span class="keywordflow">case</span> <a class="code" href="../../d8/d32/vm__core_8h.html#a83eeedff3dde6d2d1ffce5d84c2ba2f1">VM_FRAME_MAGIC_BLOCK</a>:</div><div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#a0f06f3e387d32f67b38a70d2a0da2ecc">EXEC_EVENT_HOOK_AND_POP_FRAME</a>(th, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a1fbb05e2595a3d4da7e3ca84bc6de965">RUBY_EVENT_B_RETURN</a>, th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#aba6bb1166e207f96d81c4fcac16b3119">self</a>, 0, 0, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>);</div><div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l01473"></a><span class="lineno"> 1473</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="l01474"></a><span class="lineno"> 1474</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#a0f06f3e387d32f67b38a70d2a0da2ecc">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="../../de/dc6/structrb__control__frame__struct.html#aba6bb1166e207f96d81c4fcac16b3119">self</a>, 0, 0, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>);</div><div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>  }</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>  <span class="keywordflow">if</span> (<a class="code" href="../../d8/d32/vm__core_8h.html#af2a793a1c756c8b552d8d1f897e63800">VM_FRAME_TYPE_FINISH_P</a>(th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>)) {</div><div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>  <a class="code" href="../../d0/db2/vm__insnhelper_8c.html#a0aeeee637bf9706f9d240bac4ae359c3">vm_pop_frame</a>(th);</div><div class="line"><a name="l01480"></a><span class="lineno"> 1480</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="l01481"></a><span class="lineno"> 1481</span>  <a class="code" href="../../dd/dd0/eval__intern_8h.html#a4bb909636fd43ab591291ffb47b83d3f">TH_POP_TAG2</a>();</div><div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>  <a class="code" href="../../dd/dd0/eval__intern_8h.html#a24884166ae699029ade34fd36bedd688">JUMP_TAG</a>(state);</div><div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>  }</div><div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l01485"></a><span class="lineno"> 1485</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="l01486"></a><span class="lineno"> 1486</span>  <span class="keywordflow">goto</span> exception_handler;</div><div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>  }</div><div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>  }</div><div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>  }</div><div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>  finish_vme:</div><div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>  <a class="code" href="../../dd/dd0/eval__intern_8h.html#a4d06135dea1a72a3ab73b20cc1a9fc55">TH_POP_TAG</a>();</div><div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>  <span class="keywordflow">return</span> <a class="code" href="../../d8/d90/nkf_8c.html#a5ea5ac7abf5cce39283e422add1067d5">result</a>;</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> </div><div class="line"><a name="l01495"></a><span class="lineno"> 1495</span> <span class="comment">/* misc */</span></div><div class="line"><a name="l01496"></a><span class="lineno"> 1496</span> </div><div class="line"><a name="l01497"></a><span class="lineno"> 1497</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l01498"></a><span class="lineno"><a class="line" href="../../d8/d32/vm__core_8h.html#a6e6ce66eb03fe0ce260cc4556b62e129"> 1498</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="l01499"></a><span class="lineno"> 1499</span> {</div><div class="line"><a name="l01500"></a><span class="lineno"> 1500</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#aec678927729c3dcca12b2fae241158b0">GET_THREAD</a>();</div><div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../df/d38/vm__exec_8c.html">val</a>;</div><div class="line"><a name="l01502"></a><span class="lineno"> 1502</span> </div><div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>  <a class="code" href="../../de/de9/vm_8c.html#a835b4cd0571894b624a302e8d2b736de">vm_set_top_stack</a>(th, iseqval);</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>  <a class="code" href="../../df/d38/vm__exec_8c.html">val</a> = <a class="code" href="../../de/de9/vm_8c.html#a6fca4e13002f037d2e15bc1c77ab18ed">vm_exec</a>(th);</div><div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a8aa2ce26d266baf56c9068a693d6073e">RB_GC_GUARD</a>(iseqval); <span class="comment">/* prohibit tail call optimization */</span></div><div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>  <span class="keywordflow">return</span> <a class="code" href="../../df/d38/vm__exec_8c.html">val</a>;</div><div class="line"><a name="l01508"></a><span class="lineno"> 1508</span> }</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> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l01511"></a><span class="lineno"><a class="line" href="../../d8/d32/vm__core_8h.html#a1561358bc5896c1fd390837e6faeb45f"> 1511</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="l01512"></a><span class="lineno"> 1512</span> {</div><div class="line"><a name="l01513"></a><span class="lineno"> 1513</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#aec678927729c3dcca12b2fae241158b0">GET_THREAD</a>();</div><div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../df/d38/vm__exec_8c.html">val</a>;</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>  <a class="code" href="../../de/de9/vm_8c.html#aa938e139dcf9509037140019da6f4a47">vm_set_main_stack</a>(th, iseqval);</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>  <a class="code" href="../../df/d38/vm__exec_8c.html">val</a> = <a class="code" href="../../de/de9/vm_8c.html#a6fca4e13002f037d2e15bc1c77ab18ed">vm_exec</a>(th);</div><div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a8aa2ce26d266baf56c9068a693d6073e">RB_GC_GUARD</a>(iseqval); <span class="comment">/* prohibit tail call optimization */</span></div><div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>  <span class="keywordflow">return</span> <a class="code" href="../../df/d38/vm__exec_8c.html">val</a>;</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> </div><div class="line"><a name="l01523"></a><span class="lineno"> 1523</span> <span class="keywordtype">int</span></div><div class="line"><a name="l01524"></a><span class="lineno"><a class="line" href="../../d8/d32/vm__core_8h.html#afe2c325d1f5a1e018c98f65044003752"> 1524</a></span> <a class="code" href="../../de/de9/vm_8c.html#afe2c325d1f5a1e018c98f65044003752">rb_vm_control_frame_id_and_class</a>(<span class="keyword">const</span> <a class="code" href="../../de/dc6/structrb__control__frame__struct.html">rb_control_frame_t</a> *cfp, <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="l01525"></a><span class="lineno"> 1525</span> {</div><div class="line"><a name="l01526"></a><span class="lineno"> 1526</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="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">iseq</a>;</div><div class="line"><a name="l01527"></a><span class="lineno"> 1527</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="../../de/dc6/structrb__control__frame__struct.html#ab8ddfbe44ad9a3582069c9fcf5211afc">me</a>) {</div><div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>  <span class="keywordflow">if</span> (idp) *idp = cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#ab8ddfbe44ad9a3582069c9fcf5211afc">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="l01529"></a><span class="lineno"> 1529</span>  <span class="keywordflow">if</span> (klassp) *klassp = cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#ab8ddfbe44ad9a3582069c9fcf5211afc">me</a>-><a class="code" href="../../d7/db7/structrb__method__entry__struct.html#a9ce0871480ac405b00673b25234738de">klass</a>;</div><div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>  <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>  }</div><div class="line"><a name="l01532"></a><span class="lineno"> 1532</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="l01533"></a><span class="lineno"> 1533</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="l01534"></a><span class="lineno"> 1534</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="l01535"></a><span class="lineno"> 1535</span>  <span class="keywordflow">if</span> (klassp) *klassp = 0;</div><div class="line"><a name="l01536"></a><span class="lineno"> 1536</span>  <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l01537"></a><span class="lineno"> 1537</span>  }</div><div class="line"><a name="l01538"></a><span class="lineno"> 1538</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="l01539"></a><span class="lineno"> 1539</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="l01540"></a><span class="lineno"> 1540</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="l01541"></a><span class="lineno"> 1541</span>  <span class="keywordflow">return</span> 1;</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>  <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="l01544"></a><span class="lineno"> 1544</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l01545"></a><span class="lineno"> 1545</span>  }</div><div class="line"><a name="l01546"></a><span class="lineno"> 1546</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="l01547"></a><span class="lineno"> 1547</span>  }</div><div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l01549"></a><span class="lineno"> 1549</span> }</div><div class="line"><a name="l01550"></a><span class="lineno"> 1550</span> </div><div class="line"><a name="l01551"></a><span class="lineno"> 1551</span> <span class="keywordtype">int</span></div><div class="line"><a name="l01552"></a><span class="lineno"><a class="line" href="../../d8/d32/vm__core_8h.html#a7417e683ea286195e2514eca8cfbf601"> 1552</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, <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="l01553"></a><span class="lineno"> 1553</span> {</div><div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>  <span class="keywordflow">return</span> <a class="code" href="../../de/de9/vm_8c.html#afe2c325d1f5a1e018c98f65044003752">rb_vm_control_frame_id_and_class</a>(th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>, idp, klassp);</div><div class="line"><a name="l01555"></a><span class="lineno"> 1555</span> }</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> <span class="keywordtype">int</span></div><div class="line"><a name="l01558"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a6570f238bce65b6594917b796b285edc"> 1558</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="l01559"></a><span class="lineno"> 1559</span> {</div><div class="line"><a name="l01560"></a><span class="lineno"> 1560</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#aec678927729c3dcca12b2fae241158b0">GET_THREAD</a>(), idp, klassp);</div><div class="line"><a name="l01561"></a><span class="lineno"> 1561</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> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l01564"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#af3ce515dfb6ce5b335b9e2074c7572d2"> 1564</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="l01565"></a><span class="lineno"> 1565</span> {</div><div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>  <span class="keyword">const</span> <a class="code" href="../../de/dc6/structrb__control__frame__struct.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="l01567"></a><span class="lineno"> 1567</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="l01568"></a><span class="lineno"> 1568</span> </div><div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>  <span class="keywordflow">if</span> (cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">iseq</a> != 0) {</div><div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>  <span class="keywordflow">if</span> (cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a596de17ddc9fb186769848a9f27f3510">pc</a> != 0) {</div><div class="line"><a name="l01571"></a><span class="lineno"> 1571</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="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">iseq</a>;</div><div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>  <span class="keywordtype">int</span> line_no = <a class="code" href="../../d8/d73/vm__backtrace_8c.html#a70289cbb34babceed6243d9471e70e5f">rb_vm_get_sourceline</a>(cfp);</div><div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>  <span class="keywordtype">char</span> *file = <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3f0e4e2b6d073369cc1c2ddde00b13bb">RSTRING_PTR</a>(<a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a919aa1dbe534777ff38a07a17b956524">iseq</a>->location.path);</div><div class="line"><a name="l01574"></a><span class="lineno"> 1574</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="l01575"></a><span class="lineno"> 1575</span>  file, line_no, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3f0e4e2b6d073369cc1c2ddde00b13bb">RSTRING_PTR</a>(<a class="code" href="../../dc/d07/structiseq__catch__table__entry.html#a919aa1dbe534777ff38a07a17b956524">iseq</a>->location.label));</div><div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>  }</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>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#ab8ddfbe44ad9a3582069c9fcf5211afc">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="l01579"></a><span class="lineno"> 1579</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="l01580"></a><span class="lineno"> 1580</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#afd98e957d0d96017f7a07dd83772fadc">rb_class2name</a>(cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#ab8ddfbe44ad9a3582069c9fcf5211afc">me</a>-><a class="code" href="../../d7/db7/structrb__method__entry__struct.html#a9ce0871480ac405b00673b25234738de">klass</a>),</div><div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>  <a class="code" href="../../d5/d11/ripper_8c.html#a877bc58c495643fcf49dc64c44631e72">rb_id2name</a>(cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#ab8ddfbe44ad9a3582069c9fcf5211afc">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="l01582"></a><span class="lineno"> 1582</span>  }</div><div class="line"><a name="l01583"></a><span class="lineno"> 1583</span> </div><div class="line"><a name="l01584"></a><span class="lineno"> 1584</span>  <span class="keywordflow">return</span> str;</div><div class="line"><a name="l01585"></a><span class="lineno"> 1585</span> }</div><div class="line"><a name="l01586"></a><span class="lineno"> 1586</span> </div><div class="line"><a name="l01587"></a><span class="lineno"> 1587</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l01588"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#aff1db7f3bad76fa89acbb4097e1ff12f"> 1588</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="l01589"></a><span class="lineno"> 1589</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="l01590"></a><span class="lineno"> 1590</span> {</div><div class="line"><a name="l01591"></a><span class="lineno"> 1591</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#aec678927729c3dcca12b2fae241158b0">GET_THREAD</a>();</div><div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>  <span class="keyword">const</span> <a class="code" href="../../de/dc6/structrb__control__frame__struct.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="l01593"></a><span class="lineno"> 1593</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#a01cc67dd00d7e8d4e02a4b0d7fe818f0">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="l01594"></a><span class="lineno"> 1594</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../df/d38/vm__exec_8c.html">val</a>;</div><div class="line"><a name="l01595"></a><span class="lineno"> 1595</span> </div><div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>  <a class="code" href="../../d0/db2/vm__insnhelper_8c.html#ae6e62348f86c254a636fba4f6a21bb94">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> | <a class="code" href="../../d8/d32/vm__core_8h.html#abd23406d55d05ea192a6cdf93ae2ea32">VM_FRAME_FLAG_FINISH</a>,</div><div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>  recv, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#ad07df58de9895cbc33c10f02540d2d4d">CLASS_OF</a>(recv), <a class="code" href="../../d8/d32/vm__core_8h.html#a64ed5818722f4cd9c207333766951ef8">VM_ENVVAL_BLOCK_PTR</a>(blockptr), 0, reg_cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a0e900de65ec08ba64df1125350b4071b">sp</a>, 1, 0);</div><div class="line"><a name="l01598"></a><span class="lineno"> 1598</span> </div><div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>  <a class="code" href="../../df/d38/vm__exec_8c.html">val</a> = (*func)(arg);</div><div class="line"><a name="l01600"></a><span class="lineno"> 1600</span> </div><div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>  <a class="code" href="../../d0/db2/vm__insnhelper_8c.html#a0aeeee637bf9706f9d240bac4ae359c3">vm_pop_frame</a>(th);</div><div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>  <span class="keywordflow">return</span> <a class="code" href="../../df/d38/vm__exec_8c.html">val</a>;</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> </div><div class="line"><a name="l01605"></a><span class="lineno"> 1605</span> <span class="comment">/* vm */</span></div><div class="line"><a name="l01606"></a><span class="lineno"> 1606</span> </div><div class="line"><a name="l01607"></a><span class="lineno"> 1607</span> <span class="keyword">static</span> <span class="keywordtype">int</span></div><div class="line"><a name="l01608"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a89c3d926a61cd7ceb032a9cc999bdb5e"> 1608</a></span> <a class="code" href="../../de/de9/vm_8c.html#a89c3d926a61cd7ceb032a9cc999bdb5e">vm_mark_each_thread_func</a>(<a class="code" href="../../dd/d24/st_8h.html#a1c527e6d80aae369aeda64b1080e5feb">st_data_t</a> <a class="code" href="../../dc/de5/random_8c.html#a742229490b6759a90ece7ba82ba129d5">key</a>, <a class="code" href="../../dd/d24/st_8h.html#a1c527e6d80aae369aeda64b1080e5feb">st_data_t</a> value, <a class="code" href="../../dd/d24/st_8h.html#a1c527e6d80aae369aeda64b1080e5feb">st_data_t</a> dummy)</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>  <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="l01611"></a><span class="lineno"> 1611</span>  <a class="code" href="../../d8/d16/gc_8c.html#a98250264e6adf4924cf2becf80122325">rb_gc_mark</a>(thval);</div><div class="line"><a name="l01612"></a><span class="lineno"> 1612</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="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"> 1615</span> <span class="keywordtype">void</span> <a class="code" href="../../de/de9/vm_8c.html#abd7fe99e380f04791f8a1c49655f3e92">vm_trace_mark_event_hooks</a>(<a class="code" href="../../dd/dcf/structrb__hook__list__struct.html">rb_hook_list_t</a> *hooks);</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">void</span></div><div class="line"><a name="l01618"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a8002db40fa68e94f40fec02f6d7d6ea6"> 1618</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="l01619"></a><span class="lineno"> 1619</span> {</div><div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>  <span class="keywordtype">int</span> <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>;</div><div class="line"><a name="l01621"></a><span class="lineno"> 1621</span> </div><div class="line"><a name="l01622"></a><span class="lineno"> 1622</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="l01623"></a><span class="lineno"> 1623</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="l01624"></a><span class="lineno"> 1624</span>  <span class="keywordflow">if</span> (ptr) {</div><div class="line"><a name="l01625"></a><span class="lineno"> 1625</span>  <a class="code" href="../../db/d74/structrb__vm__struct.html">rb_vm_t</a> *vm = ptr;</div><div class="line"><a name="l01626"></a><span class="lineno"> 1626</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="l01627"></a><span class="lineno"> 1627</span>  <a class="code" href="../../dd/d24/st_8h.html#ace5a79870d2800659a653fceeca55262">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="l01628"></a><span class="lineno"> 1628</span>  }</div><div class="line"><a name="l01629"></a><span class="lineno"> 1629</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="l01630"></a><span class="lineno"> 1630</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="l01631"></a><span class="lineno"> 1631</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="l01632"></a><span class="lineno"> 1632</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#a4a07bbc04dbd52ecec833ab6438a376c">load_path_snapshot</a>);</div><div class="line"><a name="l01633"></a><span class="lineno"> 1633</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#a00631da898a46a2de3e8d3773484f861">load_path_check_cache</a>);</div><div class="line"><a name="l01634"></a><span class="lineno"> 1634</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#a747b2d6311d14f34855a54d031006d61">expanded_load_path</a>);</div><div class="line"><a name="l01635"></a><span class="lineno"> 1635</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="l01636"></a><span class="lineno"> 1636</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#ab493c2b5acaef0bf6e74dae029e79392">loaded_features_snapshot</a>);</div><div class="line"><a name="l01637"></a><span class="lineno"> 1637</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="l01638"></a><span class="lineno"> 1638</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="l01639"></a><span class="lineno"> 1639</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="l01640"></a><span class="lineno"> 1640</span> </div><div class="line"><a name="l01641"></a><span class="lineno"> 1641</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="l01642"></a><span class="lineno"> 1642</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="l01643"></a><span class="lineno"> 1643</span>  }</div><div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>  <span class="keywordflow">if</span> (vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#acde63e5b7aa770d8e02b2318400dd7d1">loaded_features_index</a>) {</div><div class="line"><a name="l01645"></a><span class="lineno"> 1645</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#acde63e5b7aa770d8e02b2318400dd7d1">loaded_features_index</a>);</div><div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>  }</div><div class="line"><a name="l01647"></a><span class="lineno"> 1647</span> </div><div class="line"><a name="l01648"></a><span class="lineno"> 1648</span>  <a class="code" href="../../de/de9/vm_8c.html#abd7fe99e380f04791f8a1c49655f3e92">vm_trace_mark_event_hooks</a>(&vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#a0170895d7b34734362108255ac58988f">event_hooks</a>);</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="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="l01651"></a><span class="lineno"> 1651</span>  <span class="keywordflow">if</span> (vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#a803c8b90c48ff8fd797810add2e31ee9">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="l01652"></a><span class="lineno"> 1652</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#a803c8b90c48ff8fd797810add2e31ee9">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="l01653"></a><span class="lineno"> 1653</span>  }</div><div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>  <span class="keywordflow">if</span> (vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#a55ace7137cacee88d6675b5dbf57bf9a">defined_strings</a>) {</div><div class="line"><a name="l01655"></a><span class="lineno"> 1655</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#a55ace7137cacee88d6675b5dbf57bf9a">defined_strings</a>, vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#a55ace7137cacee88d6675b5dbf57bf9a">defined_strings</a> + <a class="code" href="../../d7/dc8/iseq_8h.html#a92be74fce09c828c57a7007d1b4a406ead5ec7bf2fd90d490a6c657d8c155fc36">DEFINED_EXPR</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>  }</div><div class="line"><a name="l01658"></a><span class="lineno"> 1658</span> </div><div class="line"><a name="l01659"></a><span class="lineno"> 1659</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="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#ae4b1c6a8b7a127fbd91c24d4198c9964"> 1662</a></span> <span class="preprocessor">#define vm_free 0</span></div><div class="line"><a name="l01663"></a><span class="lineno"> 1663</span> </div><div class="line"><a name="l01664"></a><span class="lineno"> 1664</span> <span class="keywordtype">int</span></div><div class="line"><a name="l01665"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a3a1a8ed8ecbbf3bd74854ef802cb910d"> 1665</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="l01666"></a><span class="lineno"> 1666</span> {</div><div class="line"><a name="l01667"></a><span class="lineno"> 1667</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="l01668"></a><span class="lineno"> 1668</span>  <span class="keywordflow">if</span> (vm) {</div><div class="line"><a name="l01669"></a><span class="lineno"> 1669</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="l01670"></a><span class="lineno"> 1670</span> <span class="preprocessor">#if defined(ENABLE_VM_OBJSPACE) && ENABLE_VM_OBJSPACE</span></div><div class="line"><a name="l01671"></a><span class="lineno"> 1671</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="l01672"></a><span class="lineno"> 1672</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l01673"></a><span class="lineno"> 1673</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="l01674"></a><span class="lineno"> 1674</span>  vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#a55af19560794b67c09c608a8464e47c9">main_thread</a> = 0;</div><div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>  <span class="keywordflow">if</span> (th) {</div><div class="line"><a name="l01676"></a><span class="lineno"> 1676</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="l01677"></a><span class="lineno"> 1677</span>  <a class="code" href="../../de/de9/vm_8c.html#afa313ee08837bb9545102cd3f28d91a7">thread_free</a>(th);</div><div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>  }</div><div class="line"><a name="l01679"></a><span class="lineno"> 1679</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="l01680"></a><span class="lineno"> 1680</span>  <a class="code" href="../../dd/d24/st_8h.html#acb004847ef312373d65bfb0d1a21c5b3">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="l01681"></a><span class="lineno"> 1681</span>  vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#a09bd6675a9fe3f1b19e36284e91a0e31">living_threads</a> = 0;</div><div class="line"><a name="l01682"></a><span class="lineno"> 1682</span>  }</div><div class="line"><a name="l01683"></a><span class="lineno"> 1683</span> <span class="preprocessor">#if defined(ENABLE_VM_OBJSPACE) && ENABLE_VM_OBJSPACE</span></div><div class="line"><a name="l01684"></a><span class="lineno"> 1684</span>  <span class="keywordflow">if</span> (objspace) {</div><div class="line"><a name="l01685"></a><span class="lineno"> 1685</span>  <a class="code" href="../../d8/d16/gc_8c.html#ad23af6ceadee644fb03120dbd2afabeb">rb_objspace_free</a>(objspace);</div><div class="line"><a name="l01686"></a><span class="lineno"> 1686</span>  }</div><div class="line"><a name="l01687"></a><span class="lineno"> 1687</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l01688"></a><span class="lineno"> 1688</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="l01689"></a><span class="lineno"> 1689</span>  <a class="code" href="../../d3/de7/thread_8c.html#a152e345de139a53b412409fe441067a0">rb_vm_gvl_destroy</a>(vm);</div><div class="line"><a name="l01690"></a><span class="lineno"> 1690</span>  <a class="code" href="../../d8/d16/gc_8c.html#a0bffec5b2cc004adcebb6802e7620387">ruby_xfree</a>(vm);</div><div class="line"><a name="l01691"></a><span class="lineno"> 1691</span>  <a class="code" href="../../de/de9/vm_8c.html#a9be24d2deecfd3c43942e8c7cc4770a1">ruby_current_vm</a> = 0;</div><div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>  }</div><div class="line"><a name="l01693"></a><span class="lineno"> 1693</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="l01694"></a><span class="lineno"> 1694</span>  <span class="keywordflow">return</span> 0;</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> </div><div class="line"><a name="l01697"></a><span class="lineno"> 1697</span> <span class="keyword">static</span> <span class="keywordtype">size_t</span></div><div class="line"><a name="l01698"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#adae7bcf1d59e017fabade78224b55f4e"> 1698</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="l01699"></a><span class="lineno"> 1699</span> {</div><div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d7/dc0/structrb__objspace.html#a450c55a247ef7b5948507a181a5c43d1">ptr</a>) {</div><div class="line"><a name="l01701"></a><span class="lineno"> 1701</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="l01702"></a><span class="lineno"> 1702</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#ab6a8242588889813903cd5d577ed906e">rb_vm_t</a>);</div><div class="line"><a name="l01703"></a><span class="lineno"> 1703</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>(vmobj-><a class="code" href="../../db/d74/structrb__vm__struct.html#a09bd6675a9fe3f1b19e36284e91a0e31">living_threads</a>);</div><div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>  <span class="keywordflow">if</span> (vmobj-><a class="code" href="../../db/d74/structrb__vm__struct.html#a55ace7137cacee88d6675b5dbf57bf9a">defined_strings</a>) {</div><div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>  <a class="code" href="../../d5/db5/encoding_8c.html#a439227feff9d7f55384e8780cfc2eb82">size</a> += <a class="code" href="../../d7/dc8/iseq_8h.html#a92be74fce09c828c57a7007d1b4a406ead5ec7bf2fd90d490a6c657d8c155fc36">DEFINED_EXPR</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="l01706"></a><span class="lineno"> 1706</span>  }</div><div class="line"><a name="l01707"></a><span class="lineno"> 1707</span>  <span class="keywordflow">return</span> <a class="code" href="../../d5/db5/encoding_8c.html#a439227feff9d7f55384e8780cfc2eb82">size</a>;</div><div class="line"><a name="l01708"></a><span class="lineno"> 1708</span>  }</div><div class="line"><a name="l01709"></a><span class="lineno"> 1709</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l01710"></a><span class="lineno"> 1710</span>  <span class="keywordflow">return</span> 0;</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> }</div><div class="line"><a name="l01713"></a><span class="lineno"> 1713</span> </div><div class="line"><a name="l01714"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a118ab0087779e3d649f8db8fac1dfc4d"> 1714</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="l01715"></a><span class="lineno"> 1715</span>  <span class="stringliteral">"VM"</span>,</div><div class="line"><a name="l01716"></a><span class="lineno"> 1716</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="l01717"></a><span class="lineno"> 1717</span> };</div><div class="line"><a name="l01718"></a><span class="lineno"> 1718</span> </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="keyword">static</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l01721"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a430a05b48293f2fb8b5cd99e0a156df3"> 1721</a></span> <a class="code" href="../../de/de9/vm_8c.html#a430a05b48293f2fb8b5cd99e0a156df3">vm_default_params</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l01722"></a><span class="lineno"> 1722</span> {</div><div class="line"><a name="l01723"></a><span class="lineno"> 1723</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="l01724"></a><span class="lineno"> 1724</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="../../d1/d04/hash_8c.html#af1da586524a3a1739fd5b91272037815">rb_hash_new</a>();</div><div class="line"><a name="l01725"></a><span class="lineno"> 1725</span> <span class="preprocessor">#define SET(name) rb_hash_aset(result, ID2SYM(rb_intern(#name)), SIZET2NUM(vm->default_params.name));</span></div><div class="line"><a name="l01726"></a><span class="lineno"> 1726</span>  <a class="code" href="../../de/de9/vm_8c.html#a1d0ab74624a0f4c5770aee9110171a48">SET</a>(thread_vm_stack_size);</div><div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>  <a class="code" href="../../de/de9/vm_8c.html#a1d0ab74624a0f4c5770aee9110171a48">SET</a>(thread_machine_stack_size);</div><div class="line"><a name="l01728"></a><span class="lineno"> 1728</span>  <a class="code" href="../../de/de9/vm_8c.html#a1d0ab74624a0f4c5770aee9110171a48">SET</a>(fiber_vm_stack_size);</div><div class="line"><a name="l01729"></a><span class="lineno"> 1729</span>  <a class="code" href="../../de/de9/vm_8c.html#a1d0ab74624a0f4c5770aee9110171a48">SET</a>(fiber_machine_stack_size);</div><div class="line"><a name="l01730"></a><span class="lineno"> 1730</span> <span class="preprocessor">#undef SET</span></div><div class="line"><a name="l01731"></a><span class="lineno"> 1731</span>  <a class="code" href="../../db/d2e/intern_8h.html#a8ea3742679211f408cb5769de6cf0d46">rb_obj_freeze</a>(<a class="code" href="../../d8/d90/nkf_8c.html#a5ea5ac7abf5cce39283e422add1067d5">result</a>);</div><div class="line"><a name="l01732"></a><span class="lineno"> 1732</span>  <span class="keywordflow">return</span> <a class="code" href="../../d8/d90/nkf_8c.html#a5ea5ac7abf5cce39283e422add1067d5">result</a>;</div><div class="line"><a name="l01733"></a><span class="lineno"> 1733</span> }</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="keyword">static</span> <span class="keywordtype">size_t</span></div><div class="line"><a name="l01736"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#aedeae332dfdb12aae62b5378c20b2f8f"> 1736</a></span> <a class="code" href="../../de/de9/vm_8c.html#aedeae332dfdb12aae62b5378c20b2f8f">get_param</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a>, <span class="keywordtype">size_t</span> default_value, <span class="keywordtype">size_t</span> min_value)</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>  <span class="keyword">const</span> <span class="keywordtype">char</span> *envval;</div><div class="line"><a name="l01739"></a><span class="lineno"> 1739</span>  <span class="keywordtype">size_t</span> <a class="code" href="../../d8/d90/nkf_8c.html#a5ea5ac7abf5cce39283e422add1067d5">result</a> = default_value;</div><div class="line"><a name="l01740"></a><span class="lineno"> 1740</span>  <span class="keywordflow">if</span> ((envval = <a class="code" href="../../de/d32/dir_8c.html#aee28fd8a0e40b6d958f7d20348e45368">getenv</a>(<a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a>)) != 0) {</div><div class="line"><a name="l01741"></a><span class="lineno"> 1741</span>  <span class="keywordtype">long</span> <a class="code" href="../../df/d38/vm__exec_8c.html">val</a> = atol(envval);</div><div class="line"><a name="l01742"></a><span class="lineno"> 1742</span>  <span class="keywordflow">if</span> (<a class="code" href="../../df/d38/vm__exec_8c.html">val</a> < (<span class="keywordtype">long</span>)min_value) {</div><div class="line"><a name="l01743"></a><span class="lineno"> 1743</span>  <a class="code" href="../../df/d38/vm__exec_8c.html">val</a> = (long)min_value;</div><div class="line"><a name="l01744"></a><span class="lineno"> 1744</span>  }</div><div class="line"><a name="l01745"></a><span class="lineno"> 1745</span>  <a class="code" href="../../d8/d90/nkf_8c.html#a5ea5ac7abf5cce39283e422add1067d5">result</a> = (size_t)(((<a class="code" href="../../df/d38/vm__exec_8c.html">val</a> -1 + <a class="code" href="../../d8/d32/vm__core_8h.html#a7ed91548b5889d3bc60890748089f77e">RUBY_VM_SIZE_ALIGN</a>) / <a class="code" href="../../d8/d32/vm__core_8h.html#a7ed91548b5889d3bc60890748089f77e">RUBY_VM_SIZE_ALIGN</a>) * <a class="code" href="../../d8/d32/vm__core_8h.html#a7ed91548b5889d3bc60890748089f77e">RUBY_VM_SIZE_ALIGN</a>);</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> (0) fprintf(stderr, <span class="stringliteral">"%s: %"</span><a class="code" href="../../de/de6/ruby_2ruby_8h.html#adc5e20179bf95e62d3e01da83774c1a9">PRIdSIZE</a><span class="stringliteral">"\n"</span>, <a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a>, <a class="code" href="../../d8/d90/nkf_8c.html#a5ea5ac7abf5cce39283e422add1067d5">result</a>); <span class="comment">/* debug print */</span></div><div class="line"><a name="l01748"></a><span class="lineno"> 1748</span> </div><div class="line"><a name="l01749"></a><span class="lineno"> 1749</span>  <span class="keywordflow">return</span> <a class="code" href="../../d8/d90/nkf_8c.html#a5ea5ac7abf5cce39283e422add1067d5">result</a>;</div><div class="line"><a name="l01750"></a><span class="lineno"> 1750</span> }</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> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l01753"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a06ca74a46d2d65581ab595dc80ad6a92"> 1753</a></span> <a class="code" href="../../de/de9/vm_8c.html#a06ca74a46d2d65581ab595dc80ad6a92">check_machine_stack_size</a>(<span class="keywordtype">size_t</span> *sizep)</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> <span class="preprocessor">#ifdef PTHREAD_STACK_MIN</span></div><div class="line"><a name="l01756"></a><span class="lineno"> 1756</span>  <span class="keywordtype">size_t</span> <a class="code" href="../../d5/db5/encoding_8c.html#a439227feff9d7f55384e8780cfc2eb82">size</a> = *sizep;</div><div class="line"><a name="l01757"></a><span class="lineno"> 1757</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l01758"></a><span class="lineno"> 1758</span> </div><div class="line"><a name="l01759"></a><span class="lineno"> 1759</span> <span class="preprocessor">#ifdef __SYMBIAN32__</span></div><div class="line"><a name="l01760"></a><span class="lineno"> 1760</span>  *sizep = 64 * 1024; <span class="comment">/* 64KB: Let's be slightly more frugal on mobile platform */</span></div><div class="line"><a name="l01761"></a><span class="lineno"> 1761</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l01762"></a><span class="lineno"> 1762</span> </div><div class="line"><a name="l01763"></a><span class="lineno"> 1763</span> <span class="preprocessor">#ifdef PTHREAD_STACK_MIN</span></div><div class="line"><a name="l01764"></a><span class="lineno"> 1764</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d5/db5/encoding_8c.html#a439227feff9d7f55384e8780cfc2eb82">size</a> < PTHREAD_STACK_MIN) {</div><div class="line"><a name="l01765"></a><span class="lineno"> 1765</span>  *sizep = PTHREAD_STACK_MIN * 2;</div><div class="line"><a name="l01766"></a><span class="lineno"> 1766</span>  }</div><div class="line"><a name="l01767"></a><span class="lineno"> 1767</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l01768"></a><span class="lineno"> 1768</span> }</div><div class="line"><a name="l01769"></a><span class="lineno"> 1769</span> </div><div class="line"><a name="l01770"></a><span class="lineno"> 1770</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l01771"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a0ae707957110536968229312291ce736"> 1771</a></span> <a class="code" href="../../de/de9/vm_8c.html#a0ae707957110536968229312291ce736">vm_default_params_setup</a>(<a class="code" href="../../db/d74/structrb__vm__struct.html">rb_vm_t</a> *vm)</div><div class="line"><a name="l01772"></a><span class="lineno"> 1772</span> {</div><div class="line"><a name="l01773"></a><span class="lineno"> 1773</span>  vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#aeb796cf31496bc3c65874b05eb2e7191">default_params</a>.<a class="code" href="../../db/d74/structrb__vm__struct.html#a9cd774620dae9323f6f8e6319f44df9d">thread_vm_stack_size</a> =</div><div class="line"><a name="l01774"></a><span class="lineno"> 1774</span>  <a class="code" href="../../de/de9/vm_8c.html#aedeae332dfdb12aae62b5378c20b2f8f">get_param</a>(<span class="stringliteral">"RUBY_THREAD_VM_STACK_SIZE"</span>,</div><div class="line"><a name="l01775"></a><span class="lineno"> 1775</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#a89c968c8149401828646e37c48b74e80">RUBY_VM_THREAD_VM_STACK_SIZE</a>,</div><div class="line"><a name="l01776"></a><span class="lineno"> 1776</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#a074931868d4dfd6c2d7b307e8d547d23">RUBY_VM_THREAD_VM_STACK_SIZE_MIN</a>);</div><div class="line"><a name="l01777"></a><span class="lineno"> 1777</span> </div><div class="line"><a name="l01778"></a><span class="lineno"> 1778</span>  vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#aeb796cf31496bc3c65874b05eb2e7191">default_params</a>.<a class="code" href="../../db/d74/structrb__vm__struct.html#af657344c7c83131ff08f714629c23cf5">thread_machine_stack_size</a> =</div><div class="line"><a name="l01779"></a><span class="lineno"> 1779</span>  <a class="code" href="../../de/de9/vm_8c.html#aedeae332dfdb12aae62b5378c20b2f8f">get_param</a>(<span class="stringliteral">"RUBY_THREAD_MACHINE_STACK_SIZE"</span>,</div><div class="line"><a name="l01780"></a><span class="lineno"> 1780</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#a2fe36ef1c5e499d3485a19c363df0810">RUBY_VM_THREAD_MACHINE_STACK_SIZE</a>,</div><div class="line"><a name="l01781"></a><span class="lineno"> 1781</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#a5dad51eb740abec5dd667fb4b257789f">RUBY_VM_THREAD_MACHINE_STACK_SIZE_MIN</a>);</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>  vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#aeb796cf31496bc3c65874b05eb2e7191">default_params</a>.<a class="code" href="../../db/d74/structrb__vm__struct.html#a73ea66c25dd84c82cb299a4930dba44a">fiber_vm_stack_size</a> =</div><div class="line"><a name="l01784"></a><span class="lineno"> 1784</span>  <a class="code" href="../../de/de9/vm_8c.html#aedeae332dfdb12aae62b5378c20b2f8f">get_param</a>(<span class="stringliteral">"RUBY_FIBER_VM_STACK_SIZE"</span>,</div><div class="line"><a name="l01785"></a><span class="lineno"> 1785</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#a7f57bd2f1c1285dc0e6f03f9b72f307a">RUBY_VM_FIBER_VM_STACK_SIZE</a>,</div><div class="line"><a name="l01786"></a><span class="lineno"> 1786</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#ad2a7bb01f06d60963eb3b379a4804e86">RUBY_VM_FIBER_VM_STACK_SIZE_MIN</a>);</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>  vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#aeb796cf31496bc3c65874b05eb2e7191">default_params</a>.<a class="code" href="../../db/d74/structrb__vm__struct.html#a7be940762c98b238079fc794a680a9ae">fiber_machine_stack_size</a> =</div><div class="line"><a name="l01789"></a><span class="lineno"> 1789</span>  <a class="code" href="../../de/de9/vm_8c.html#aedeae332dfdb12aae62b5378c20b2f8f">get_param</a>(<span class="stringliteral">"RUBY_FIBER_MACHINE_STACK_SIZE"</span>,</div><div class="line"><a name="l01790"></a><span class="lineno"> 1790</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#ab1cfcff8df45b32519fdb36b07d4681f">RUBY_VM_FIBER_MACHINE_STACK_SIZE</a>,</div><div class="line"><a name="l01791"></a><span class="lineno"> 1791</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#a1a0e8ae11d1877b2d2448d5c66c65ee9">RUBY_VM_FIBER_MACHINE_STACK_SIZE_MIN</a>);</div><div class="line"><a name="l01792"></a><span class="lineno"> 1792</span> </div><div class="line"><a name="l01793"></a><span class="lineno"> 1793</span>  <span class="comment">/* environment dependent check */</span></div><div class="line"><a name="l01794"></a><span class="lineno"> 1794</span>  <a class="code" href="../../de/de9/vm_8c.html#a06ca74a46d2d65581ab595dc80ad6a92">check_machine_stack_size</a>(&vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#aeb796cf31496bc3c65874b05eb2e7191">default_params</a>.<a class="code" href="../../db/d74/structrb__vm__struct.html#af657344c7c83131ff08f714629c23cf5">thread_machine_stack_size</a>);</div><div class="line"><a name="l01795"></a><span class="lineno"> 1795</span>  <a class="code" href="../../de/de9/vm_8c.html#a06ca74a46d2d65581ab595dc80ad6a92">check_machine_stack_size</a>(&vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#aeb796cf31496bc3c65874b05eb2e7191">default_params</a>.<a class="code" href="../../db/d74/structrb__vm__struct.html#a7be940762c98b238079fc794a680a9ae">fiber_machine_stack_size</a>);</div><div class="line"><a name="l01796"></a><span class="lineno"> 1796</span> }</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="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l01799"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a08ccea748ec0076636c2b4abada44ff0"> 1799</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="l01800"></a><span class="lineno"> 1800</span> {</div><div class="line"><a name="l01801"></a><span class="lineno"> 1801</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="l01802"></a><span class="lineno"> 1802</span>  vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#a3ee23d493b793fc91dd61376593e8f17">src_encoding_index</a> = -1;</div><div class="line"><a name="l01803"></a><span class="lineno"> 1803</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="l01804"></a><span class="lineno"> 1804</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="l01805"></a><span class="lineno"> 1805</span> </div><div class="line"><a name="l01806"></a><span class="lineno"> 1806</span>  <a class="code" href="../../de/de9/vm_8c.html#a0ae707957110536968229312291ce736">vm_default_params_setup</a>(vm);</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="comment">/* Thread */</span></div><div class="line"><a name="l01810"></a><span class="lineno"> 1810</span> </div><div class="line"><a name="l01811"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a585ef3f19d4b31a72834f87218c91ec7"> 1811</a></span> <span class="preprocessor">#define USE_THREAD_DATA_RECYCLE 1</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="preprocessor">#if USE_THREAD_DATA_RECYCLE</span></div><div class="line"><a name="l01814"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#ac482343a3f810e935739993994e26b22"> 1814</a></span> <span class="preprocessor">#define RECYCLE_MAX 64</span></div><div class="line"><a name="l01815"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#aebec1af86784db52769846dfc3b4cfaa"> 1815</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="l01816"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a088895c356d92de8dff1afee377c58c4"> 1816</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="l01817"></a><span class="lineno"> 1817</span> </div><div class="line"><a name="l01818"></a><span class="lineno"> 1818</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="l01819"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a2abade868818c379135d2eb27c104f85"> 1819</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="l01820"></a><span class="lineno"> 1820</span> {</div><div class="line"><a name="l01821"></a><span class="lineno"> 1821</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="l01822"></a><span class="lineno"> 1822</span>  <span class="comment">/* TODO: check stack size if stack sizes are variable */</span></div><div class="line"><a name="l01823"></a><span class="lineno"> 1823</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="l01824"></a><span class="lineno"> 1824</span>  }</div><div class="line"><a name="l01825"></a><span class="lineno"> 1825</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l01826"></a><span class="lineno"> 1826</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="l01827"></a><span class="lineno"> 1827</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="preprocessor">#else</span></div><div class="line"><a name="l01831"></a><span class="lineno"> 1831</span> <span class="preprocessor">#define thread_recycle_stack(size) ALLOC_N(VALUE, (size))</span></div><div class="line"><a name="l01832"></a><span class="lineno"> 1832</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l01833"></a><span class="lineno"> 1833</span> </div><div class="line"><a name="l01834"></a><span class="lineno"> 1834</span> <span class="keywordtype">void</span></div><div class="line"><a name="l01835"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a76e16c1e36ad91c284cc727c3b3eccf1"> 1835</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="l01836"></a><span class="lineno"> 1836</span> {</div><div class="line"><a name="l01837"></a><span class="lineno"> 1837</span> <span class="preprocessor">#if USE_THREAD_DATA_RECYCLE</span></div><div class="line"><a name="l01838"></a><span class="lineno"> 1838</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="l01839"></a><span class="lineno"> 1839</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="l01840"></a><span class="lineno"> 1840</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l01841"></a><span class="lineno"> 1841</span>  }</div><div class="line"><a name="l01842"></a><span class="lineno"> 1842</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l01843"></a><span class="lineno"> 1843</span>  <a class="code" href="../../d8/d16/gc_8c.html#a0bffec5b2cc004adcebb6802e7620387">ruby_xfree</a>(stack);</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> </div><div class="line"><a name="l01846"></a><span class="lineno"> 1846</span> <span class="preprocessor">#ifdef USE_THREAD_RECYCLE</span></div><div class="line"><a name="l01847"></a><span class="lineno"> 1847</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="l01848"></a><span class="lineno"> 1848</span> thread_recycle_struct(<span class="keywordtype">void</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"> 1850</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="l01851"></a><span class="lineno"> 1851</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="l01852"></a><span class="lineno"> 1852</span>  <span class="keywordflow">return</span> <a class="code" href="../../d2/d99/win32ole_8c.html#a4b5a598a4f53b3724549c48dcfbf7c48">p</a>;</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> <span class="preprocessor">#endif</span></div><div class="line"><a name="l01855"></a><span class="lineno"> 1855</span> </div><div class="line"><a name="l01856"></a><span class="lineno"> 1856</span> <span class="keywordtype">void</span></div><div class="line"><a name="l01857"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a7c957fc69c5c69c03b72c2723d973c3c"> 1857</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="l01858"></a><span class="lineno"> 1858</span> {</div><div class="line"><a name="l01859"></a><span class="lineno"> 1859</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="l01860"></a><span class="lineno"> 1860</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="l01861"></a><span class="lineno"> 1861</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d7/dc0/structrb__objspace.html#a450c55a247ef7b5948507a181a5c43d1">ptr</a>) {</div><div class="line"><a name="l01862"></a><span class="lineno"> 1862</span>  th = <a class="code" href="../../d7/dc0/structrb__objspace.html#a450c55a247ef7b5948507a181a5c43d1">ptr</a>;</div><div class="line"><a name="l01863"></a><span class="lineno"> 1863</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="l01864"></a><span class="lineno"> 1864</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="l01865"></a><span class="lineno"> 1865</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="../../de/dc6/structrb__control__frame__struct.html#a0e900de65ec08ba64df1125350b4071b">sp</a>;</div><div class="line"><a name="l01866"></a><span class="lineno"> 1866</span>  <a class="code" href="../../de/dc6/structrb__control__frame__struct.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="l01867"></a><span class="lineno"> 1867</span>  <a class="code" href="../../de/dc6/structrb__control__frame__struct.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#a1f263d7b7ee19fc82ea14d83ed1dc7bd">stack_size</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>  <span class="keywordflow">while</span> (<a class="code" href="../../d2/d99/win32ole_8c.html#a4b5a598a4f53b3724549c48dcfbf7c48">p</a> < sp) {</div><div class="line"><a name="l01870"></a><span class="lineno"> 1870</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="l01871"></a><span class="lineno"> 1871</span>  }</div><div class="line"><a name="l01872"></a><span class="lineno"> 1872</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="l01873"></a><span class="lineno"> 1873</span> </div><div class="line"><a name="l01874"></a><span class="lineno"> 1874</span>  <span class="keywordflow">while</span> (cfp != limit_cfp) {</div><div class="line"><a name="l01875"></a><span class="lineno"> 1875</span>  <a class="code" href="../../d6/de3/structrb__iseq__struct.html">rb_iseq_t</a> *iseq = cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">iseq</a>;</div><div class="line"><a name="l01876"></a><span class="lineno"> 1876</span>  <a class="code" href="../../d8/d16/gc_8c.html#a98250264e6adf4924cf2becf80122325">rb_gc_mark</a>(cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#acf3b5255fd4cd1ad58aadc0f7fa69fb8">proc</a>);</div><div class="line"><a name="l01877"></a><span class="lineno"> 1877</span>  <a class="code" href="../../d8/d16/gc_8c.html#a98250264e6adf4924cf2becf80122325">rb_gc_mark</a>(cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#aba6bb1166e207f96d81c4fcac16b3119">self</a>);</div><div class="line"><a name="l01878"></a><span class="lineno"> 1878</span>  <a class="code" href="../../d8/d16/gc_8c.html#a98250264e6adf4924cf2becf80122325">rb_gc_mark</a>(cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#acbc4e3a67849cb96ff2b6e4cdc1f7457">klass</a>);</div><div class="line"><a name="l01879"></a><span class="lineno"> 1879</span>  <span class="keywordflow">if</span> (iseq) {</div><div class="line"><a name="l01880"></a><span class="lineno"> 1880</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="l01881"></a><span class="lineno"> 1881</span>  }</div><div class="line"><a name="l01882"></a><span class="lineno"> 1882</span>  <span class="keywordflow">if</span> (cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#ab8ddfbe44ad9a3582069c9fcf5211afc">me</a>) {</div><div class="line"><a name="l01883"></a><span class="lineno"> 1883</span>  <span class="comment">/* TODO: marking `me' can be more sophisticated way */</span></div><div class="line"><a name="l01884"></a><span class="lineno"> 1884</span>  ((<a class="code" href="../../d7/db7/structrb__method__entry__struct.html">rb_method_entry_t</a> *)cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#ab8ddfbe44ad9a3582069c9fcf5211afc">me</a>)->mark = 1;</div><div class="line"><a name="l01885"></a><span class="lineno"> 1885</span>  <a class="code" href="../../d8/d16/gc_8c.html#aac91fd74442afdfbafcdaf2c54f92240">rb_mark_method_entry</a>(cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#ab8ddfbe44ad9a3582069c9fcf5211afc">me</a>);</div><div class="line"><a name="l01886"></a><span class="lineno"> 1886</span>  }</div><div class="line"><a name="l01887"></a><span class="lineno"> 1887</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="l01888"></a><span class="lineno"> 1888</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> </div><div class="line"><a name="l01891"></a><span class="lineno"> 1891</span>  <span class="comment">/* mark ruby objects */</span></div><div class="line"><a name="l01892"></a><span class="lineno"> 1892</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="l01893"></a><span class="lineno"> 1893</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="l01894"></a><span class="lineno"> 1894</span> </div><div class="line"><a name="l01895"></a><span class="lineno"> 1895</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="l01896"></a><span class="lineno"> 1896</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="l01897"></a><span class="lineno"> 1897</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="l01898"></a><span class="lineno"> 1898</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#aafba3f4f103c0c0d4bf0ff37d278c856">pending_interrupt_queue</a>);</div><div class="line"><a name="l01899"></a><span class="lineno"> 1899</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#a979a16137dbb149acf7a8fd194946a24">pending_interrupt_mask_stack</a>);</div><div class="line"><a name="l01900"></a><span class="lineno"> 1900</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#a7f9d18a3b68b34238986fa27564ee498">root_svar</a>);</div><div class="line"><a name="l01901"></a><span class="lineno"> 1901</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="l01902"></a><span class="lineno"> 1902</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="l01903"></a><span class="lineno"> 1903</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="l01904"></a><span class="lineno"> 1904</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="l01905"></a><span class="lineno"> 1905</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="l01906"></a><span class="lineno"> 1906</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="l01907"></a><span class="lineno"> 1907</span> </div><div class="line"><a name="l01908"></a><span class="lineno"> 1908</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="l01909"></a><span class="lineno"> 1909</span> </div><div class="line"><a name="l01910"></a><span class="lineno"> 1910</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="l01911"></a><span class="lineno"> 1911</span> </div><div class="line"><a name="l01912"></a><span class="lineno"> 1912</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d8/d32/vm__core_8h.html#aec678927729c3dcca12b2fae241158b0">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="l01913"></a><span class="lineno"> 1913</span>  <a class="code" href="../../d8/d16/gc_8c.html#a4c2152009e465bf40a157fa23dfcc92e">rb_gc_mark_machine_stack</a>(th);</div><div class="line"><a name="l01914"></a><span class="lineno"> 1914</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="l01915"></a><span class="lineno"> 1915</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="l01916"></a><span class="lineno"> 1916</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="l01917"></a><span class="lineno"> 1917</span>  }</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>  <a class="code" href="../../de/de9/vm_8c.html#abd7fe99e380f04791f8a1c49655f3e92">vm_trace_mark_event_hooks</a>(&th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#ae57e4067fa1528caf7c84ca2e5ef2bd6">event_hooks</a>);</div><div class="line"><a name="l01920"></a><span class="lineno"> 1920</span>  }</div><div class="line"><a name="l01921"></a><span class="lineno"> 1921</span> </div><div class="line"><a name="l01922"></a><span class="lineno"> 1922</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="l01923"></a><span class="lineno"> 1923</span> }</div><div class="line"><a name="l01924"></a><span class="lineno"> 1924</span> </div><div class="line"><a name="l01925"></a><span class="lineno"> 1925</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l01926"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#afa313ee08837bb9545102cd3f28d91a7"> 1926</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="l01927"></a><span class="lineno"> 1927</span> {</div><div class="line"><a name="l01928"></a><span class="lineno"> 1928</span>  <a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th;</div><div class="line"><a name="l01929"></a><span class="lineno"> 1929</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="l01930"></a><span class="lineno"> 1930</span> </div><div class="line"><a name="l01931"></a><span class="lineno"> 1931</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d7/dc0/structrb__objspace.html#a450c55a247ef7b5948507a181a5c43d1">ptr</a>) {</div><div class="line"><a name="l01932"></a><span class="lineno"> 1932</span>  th = <a class="code" href="../../d7/dc0/structrb__objspace.html#a450c55a247ef7b5948507a181a5c43d1">ptr</a>;</div><div class="line"><a name="l01933"></a><span class="lineno"> 1933</span> </div><div class="line"><a name="l01934"></a><span class="lineno"> 1934</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="l01935"></a><span class="lineno"> 1935</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="l01936"></a><span class="lineno"> 1936</span>  }</div><div class="line"><a name="l01937"></a><span class="lineno"> 1937</span> </div><div class="line"><a name="l01938"></a><span class="lineno"> 1938</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="l01939"></a><span class="lineno"> 1939</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="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> (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="l01942"></a><span class="lineno"> 1942</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="l01943"></a><span class="lineno"> 1943</span>  }</div><div class="line"><a name="l01944"></a><span class="lineno"> 1944</span> </div><div class="line"><a name="l01945"></a><span class="lineno"> 1945</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="l01946"></a><span class="lineno"> 1946</span>  <a class="code" href="../../dd/d24/st_8h.html#acb004847ef312373d65bfb0d1a21c5b3">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="l01947"></a><span class="lineno"> 1947</span>  }</div><div class="line"><a name="l01948"></a><span class="lineno"> 1948</span> </div><div class="line"><a name="l01949"></a><span class="lineno"> 1949</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="l01950"></a><span class="lineno"> 1950</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="l01951"></a><span class="lineno"> 1951</span>  }</div><div class="line"><a name="l01952"></a><span class="lineno"> 1952</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l01953"></a><span class="lineno"> 1953</span> <span class="preprocessor">#ifdef USE_SIGALTSTACK</span></div><div class="line"><a name="l01954"></a><span class="lineno"> 1954</span>  <span class="keywordflow">if</span> (th->altstack) {</div><div class="line"><a name="l01955"></a><span class="lineno"> 1955</span>  <a class="code" href="../../d2/d99/win32ole_8c.html#a18100522f0b19b5e9b9875f5737a9386">free</a>(th->altstack);</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> <span class="preprocessor">#endif</span></div><div class="line"><a name="l01958"></a><span class="lineno"> 1958</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="l01959"></a><span class="lineno"> 1959</span>  }</div><div class="line"><a name="l01960"></a><span class="lineno"> 1960</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="l01961"></a><span class="lineno"> 1961</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="l01962"></a><span class="lineno"> 1962</span>  }</div><div class="line"><a name="l01963"></a><span class="lineno"> 1963</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="l01964"></a><span class="lineno"> 1964</span> }</div><div class="line"><a name="l01965"></a><span class="lineno"> 1965</span> </div><div class="line"><a name="l01966"></a><span class="lineno"> 1966</span> <span class="keyword">static</span> <span class="keywordtype">size_t</span></div><div class="line"><a name="l01967"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#ae13ac094cd9fdca07b8abed66a9fd5c1"> 1967</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="l01968"></a><span class="lineno"> 1968</span> {</div><div class="line"><a name="l01969"></a><span class="lineno"> 1969</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d7/dc0/structrb__objspace.html#a450c55a247ef7b5948507a181a5c43d1">ptr</a>) {</div><div class="line"><a name="l01970"></a><span class="lineno"> 1970</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="l01971"></a><span class="lineno"> 1971</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="l01972"></a><span class="lineno"> 1972</span> </div><div class="line"><a name="l01973"></a><span class="lineno"> 1973</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="l01974"></a><span class="lineno"> 1974</span>  <a class="code" href="../../d5/db5/encoding_8c.html#a439227feff9d7f55384e8780cfc2eb82">size</a> += th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a1f263d7b7ee19fc82ea14d83ed1dc7bd">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="l01975"></a><span class="lineno"> 1975</span>  }</div><div class="line"><a name="l01976"></a><span class="lineno"> 1976</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="l01977"></a><span class="lineno"> 1977</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="l01978"></a><span class="lineno"> 1978</span>  }</div><div class="line"><a name="l01979"></a><span class="lineno"> 1979</span>  <span class="keywordflow">return</span> <a class="code" href="../../d5/db5/encoding_8c.html#a439227feff9d7f55384e8780cfc2eb82">size</a>;</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="keywordflow">else</span> {</div><div class="line"><a name="l01982"></a><span class="lineno"> 1982</span>  <span class="keywordflow">return</span> 0;</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> }</div><div class="line"><a name="l01985"></a><span class="lineno"> 1985</span> </div><div class="line"><a name="l01986"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a27ed80c29d1a854ccaa4ae2aa3ef6769"> 1986</a></span> <span class="preprocessor">#define thread_data_type ruby_threadptr_data_type</span></div><div class="line"><a name="l01987"></a><span class="lineno"><a class="line" href="../../d8/d32/vm__core_8h.html#a0310d690f45eb1cba3a726e36c65385b"> 1987</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="l01988"></a><span class="lineno"> 1988</span>  <span class="stringliteral">"VM/thread"</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>  <a class="code" href="../../de/de9/vm_8c.html#a7c957fc69c5c69c03b72c2723d973c3c">rb_thread_mark</a>,</div><div class="line"><a name="l01991"></a><span class="lineno"> 1991</span>  <a class="code" href="../../de/de9/vm_8c.html#afa313ee08837bb9545102cd3f28d91a7">thread_free</a>,</div><div class="line"><a name="l01992"></a><span class="lineno"> 1992</span>  <a class="code" href="../../de/de9/vm_8c.html#ae13ac094cd9fdca07b8abed66a9fd5c1">thread_memsize</a>,</div><div class="line"><a name="l01993"></a><span class="lineno"> 1993</span>  },</div><div class="line"><a name="l01994"></a><span class="lineno"> 1994</span> };</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> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l01997"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a7eda924b79844f890f5ba44800c1c520"> 1997</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="l01998"></a><span class="lineno"> 1998</span> {</div><div class="line"><a name="l01999"></a><span class="lineno"> 1999</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="l02000"></a><span class="lineno"> 2000</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="l02001"></a><span class="lineno"> 2001</span>  }</div><div class="line"><a name="l02002"></a><span class="lineno"> 2002</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l02003"></a><span class="lineno"> 2003</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="l02004"></a><span class="lineno"> 2004</span>  }</div><div class="line"><a name="l02005"></a><span class="lineno"> 2005</span> }</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> <span class="keyword">static</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l02008"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#ab4e70e1584b736c0698101beabd2a2bd"> 2008</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="l02009"></a><span class="lineno"> 2009</span> {</div><div class="line"><a name="l02010"></a><span class="lineno"> 2010</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="l02011"></a><span class="lineno"> 2011</span> <span class="preprocessor">#ifdef USE_THREAD_RECYCLE</span></div><div class="line"><a name="l02012"></a><span class="lineno"> 2012</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="l02013"></a><span class="lineno"> 2013</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="l02014"></a><span class="lineno"> 2014</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l02015"></a><span class="lineno"> 2015</span>  <a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th;</div><div class="line"><a name="l02016"></a><span class="lineno"> 2016</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="l02017"></a><span class="lineno"> 2017</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l02018"></a><span class="lineno"> 2018</span>  <span class="keywordflow">return</span> obj;</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> </div><div class="line"><a name="l02021"></a><span class="lineno"> 2021</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l02022"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a8254b2c9550e30be25c3115308865c28"> 2022</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="l02023"></a><span class="lineno"> 2023</span> {</div><div class="line"><a name="l02024"></a><span class="lineno"> 2024</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="l02025"></a><span class="lineno"> 2025</span> </div><div class="line"><a name="l02026"></a><span class="lineno"> 2026</span>  <span class="comment">/* allocate thread stack */</span></div><div class="line"><a name="l02027"></a><span class="lineno"> 2027</span> <span class="preprocessor">#ifdef USE_SIGALTSTACK</span></div><div class="line"><a name="l02028"></a><span class="lineno"> 2028</span>  <span class="comment">/* altstack of main thread is reallocated in another place */</span></div><div class="line"><a name="l02029"></a><span class="lineno"> 2029</span>  th->altstack = <a class="code" href="../../d5/d11/ripper_8c.html#acf143577800376dd931c059ecc61ba06">malloc</a>(<a class="code" href="../../db/dde/internal_8h.html#a7d5e662cb2626b7822c9f1f37c419959">rb_sigaltstack_size</a>());</div><div class="line"><a name="l02030"></a><span class="lineno"> 2030</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l02031"></a><span class="lineno"> 2031</span>  <span class="comment">/* th->stack_size is word number.</span></div><div class="line"><a name="l02032"></a><span class="lineno"> 2032</span> <span class="comment"> * th->vm->default_params.thread_vm_stack_size is byte size.</span></div><div class="line"><a name="l02033"></a><span class="lineno"> 2033</span> <span class="comment"> */</span></div><div class="line"><a name="l02034"></a><span class="lineno"> 2034</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a1f263d7b7ee19fc82ea14d83ed1dc7bd">stack_size</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#aeb796cf31496bc3c65874b05eb2e7191">default_params</a>.<a class="code" href="../../db/d74/structrb__vm__struct.html#a9cd774620dae9323f6f8e6319f44df9d">thread_vm_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="l02035"></a><span class="lineno"> 2035</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#a1f263d7b7ee19fc82ea14d83ed1dc7bd">stack_size</a>);</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>  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#a1f263d7b7ee19fc82ea14d83ed1dc7bd">stack_size</a>);</div><div class="line"><a name="l02038"></a><span class="lineno"> 2038</span> </div><div class="line"><a name="l02039"></a><span class="lineno"> 2039</span>  <a class="code" href="../../d0/db2/vm__insnhelper_8c.html#ae6e62348f86c254a636fba4f6a21bb94">vm_push_frame</a>(th, 0 <span class="comment">/* dummy iseq */</span>, <a class="code" href="../../d8/d32/vm__core_8h.html#ac9390ef02c17a0bc7e3bd359264562c7">VM_FRAME_MAGIC_TOP</a> | <a class="code" href="../../d8/d32/vm__core_8h.html#abd23406d55d05ea192a6cdf93ae2ea32">VM_FRAME_FLAG_FINISH</a>,</div><div class="line"><a name="l02040"></a><span class="lineno"> 2040</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a> <span class="comment">/* dummy self */</span>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a> <span class="comment">/* dummy klass */</span>, <a class="code" href="../../d8/d32/vm__core_8h.html#a64ed5818722f4cd9c207333766951ef8">VM_ENVVAL_BLOCK_PTR</a>(0), 0 <span class="comment">/* dummy pc */</span>, th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a3fd7aab45a1c539bc9ca022acfc1ad51">stack</a>, 1, 0);</div><div class="line"><a name="l02041"></a><span class="lineno"> 2041</span> </div><div class="line"><a name="l02042"></a><span class="lineno"> 2042</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="l02043"></a><span class="lineno"> 2043</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="l02044"></a><span class="lineno"> 2044</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="l02045"></a><span class="lineno"> 2045</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a8ddade0070cf5af8034e1549e30839fb">waiting_fd</a> = -1;</div><div class="line"><a name="l02046"></a><span class="lineno"> 2046</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a7f9d18a3b68b34238986fa27564ee498">root_svar</a> = <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>;</div><div class="line"><a name="l02047"></a><span class="lineno"> 2047</span> </div><div class="line"><a name="l02048"></a><span class="lineno"> 2048</span> <span class="preprocessor">#if OPT_CALL_THREADED_CODE</span></div><div class="line"><a name="l02049"></a><span class="lineno"> 2049</span>  th->retval = <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a2edf6990280eb2637623ccd421dee4f0">Qundef</a>;</div><div class="line"><a name="l02050"></a><span class="lineno"> 2050</span> <span class="preprocessor">#endif</span></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">static</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l02054"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#aaa1408f30b8f6129882c3f99355e63cf"> 2054</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="l02055"></a><span class="lineno"> 2055</span> {</div><div class="line"><a name="l02056"></a><span class="lineno"> 2056</span>  <a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th;</div><div class="line"><a name="l02057"></a><span class="lineno"> 2057</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#aec678927729c3dcca12b2fae241158b0">GET_THREAD</a>()-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a3e7d0b05e2d73f324e70c735ba50739e">vm</a>;</div><div class="line"><a name="l02058"></a><span class="lineno"> 2058</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="l02059"></a><span class="lineno"> 2059</span> </div><div class="line"><a name="l02060"></a><span class="lineno"> 2060</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a3e7d0b05e2d73f324e70c735ba50739e">vm</a> = vm;</div><div class="line"><a name="l02061"></a><span class="lineno"> 2061</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="l02062"></a><span class="lineno"> 2062</span>  <a class="code" href="../../db/d2e/intern_8h.html#a7e5b0d4c40fecb26c1ac946f674a690e">rb_iv_set</a>(<span class="keyword">self</span>, <span class="stringliteral">"locals"</span>, <a class="code" href="../../d1/d04/hash_8c.html#af1da586524a3a1739fd5b91272037815">rb_hash_new</a>());</div><div class="line"><a name="l02063"></a><span class="lineno"> 2063</span> </div><div class="line"><a name="l02064"></a><span class="lineno"> 2064</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a63addaa5b39a83e287f7b8747398ab57">top_wrapper</a> = 0;</div><div class="line"><a name="l02065"></a><span class="lineno"> 2065</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="l02066"></a><span class="lineno"> 2066</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a7f9d18a3b68b34238986fa27564ee498">root_svar</a> = <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>  <span class="keywordflow">return</span> <span class="keyword">self</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> </div><div class="line"><a name="l02070"></a><span class="lineno"> 2070</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="../../d8/d32/vm__core_8h.html#a914b7151a013f7fc163b7024cb00ac87"> 2071</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="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> <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="l02074"></a><span class="lineno"> 2074</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="l02075"></a><span class="lineno"> 2075</span>  <span class="keywordflow">return</span> <span class="keyword">self</span>;</div><div class="line"><a name="l02076"></a><span class="lineno"> 2076</span> }</div><div class="line"><a name="l02077"></a><span class="lineno"> 2077</span> </div><div class="line"><a name="l02078"></a><span class="lineno"> 2078</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l02079"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a469ecc9b7152b6bb8e3589ca48141f5e"> 2079</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="l02080"></a><span class="lineno"> 2080</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="l02081"></a><span class="lineno"> 2081</span> {</div><div class="line"><a name="l02082"></a><span class="lineno"> 2082</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> klass = cref->nd_clss;</div><div class="line"><a name="l02083"></a><span class="lineno"> 2083</span>  <span class="keywordtype">int</span> noex = (int)cref->nd_visi;</div><div class="line"><a name="l02084"></a><span class="lineno"> 2084</span>  <a class="code" href="../../d6/de3/structrb__iseq__struct.html">rb_iseq_t</a> *miseq;</div><div class="line"><a name="l02085"></a><span class="lineno"> 2085</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#a5e6a3515e0ad9b9d6a4c0ab577dc50b6">GetISeqPtr</a>(iseqval, miseq);</div><div class="line"><a name="l02086"></a><span class="lineno"> 2086</span> </div><div class="line"><a name="l02087"></a><span class="lineno"> 2087</span>  <span class="keywordflow">if</span> (miseq->klass) {</div><div class="line"><a name="l02088"></a><span class="lineno"> 2088</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a8aa2ce26d266baf56c9068a693d6073e">RB_GC_GUARD</a>(iseqval) = <a class="code" href="../../db/dde/internal_8h.html#ad44e50d3f03c58fa8d5e4e50558df898">rb_iseq_clone</a>(iseqval, 0);</div><div class="line"><a name="l02089"></a><span class="lineno"> 2089</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#a5e6a3515e0ad9b9d6a4c0ab577dc50b6">GetISeqPtr</a>(iseqval, miseq);</div><div class="line"><a name="l02090"></a><span class="lineno"> 2090</span>  }</div><div class="line"><a name="l02091"></a><span class="lineno"> 2091</span> </div><div class="line"><a name="l02092"></a><span class="lineno"> 2092</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="l02093"></a><span class="lineno"> 2093</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="l02094"></a><span class="lineno"> 2094</span>  }</div><div class="line"><a name="l02095"></a><span class="lineno"> 2095</span> </div><div class="line"><a name="l02096"></a><span class="lineno"> 2096</span>  <span class="keywordflow">if</span> (is_singleton) {</div><div class="line"><a name="l02097"></a><span class="lineno"> 2097</span>  klass = <a class="code" href="../../de/ddf/group__class.html#ga3778543a2798adab7bc12ed325c0b5d0">rb_singleton_class</a>(obj); <span class="comment">/* class and frozen checked in this API */</span></div><div class="line"><a name="l02098"></a><span class="lineno"> 2098</span>  noex = <a class="code" href="../../db/d0a/method_8h.html#a1e54ff32a6191e40451e1523c61ca439acbaffd02a49dab8af6ca3bcde9336f30">NOEX_PUBLIC</a>;</div><div class="line"><a name="l02099"></a><span class="lineno"> 2099</span>  }</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">/* dup */</span></div><div class="line"><a name="l02102"></a><span class="lineno"> 2102</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="l02103"></a><span class="lineno"> 2103</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="l02104"></a><span class="lineno"> 2104</span>  miseq->klass = klass;</div><div class="line"><a name="l02105"></a><span class="lineno"> 2105</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="l02106"></a><span class="lineno"> 2106</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="l02107"></a><span class="lineno"> 2107</span> </div><div class="line"><a name="l02108"></a><span class="lineno"> 2108</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="l02109"></a><span class="lineno"> 2109</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="l02110"></a><span class="lineno"> 2110</span>  }</div><div class="line"><a name="l02111"></a><span class="lineno"> 2111</span>  <a class="code" href="../../d2/d5f/vm__insnhelper_8h.html#a8e91da0eaddd34a78c8f9c5207df8979">INC_VM_STATE_VERSION</a>();</div><div class="line"><a name="l02112"></a><span class="lineno"> 2112</span> }</div><div class="line"><a name="l02113"></a><span class="lineno"> 2113</span> </div><div class="line"><a name="l02114"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#aa41b42017c8091c664dea5ed30fe9c5c"> 2114</a></span> <span class="preprocessor">#define REWIND_CFP(expr) do { \</span></div><div class="line"><a name="l02115"></a><span class="lineno"> 2115</span> <span class="preprocessor"> rb_thread_t *th__ = GET_THREAD(); \</span></div><div class="line"><a name="l02116"></a><span class="lineno"> 2116</span> <span class="preprocessor"> th__->cfp++; expr; th__->cfp--; \</span></div><div class="line"><a name="l02117"></a><span class="lineno"> 2117</span> <span class="preprocessor">} while (0)</span></div><div class="line"><a name="l02118"></a><span class="lineno"> 2118</span> </div><div class="line"><a name="l02119"></a><span class="lineno"> 2119</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="l02120"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a31455d8d3483e811bf2dfe55220e0a2d"> 2120</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="l02121"></a><span class="lineno"> 2121</span> {</div><div class="line"><a name="l02122"></a><span class="lineno"> 2122</span>  <a class="code" href="../../de/de9/vm_8c.html#aa41b42017c8091c664dea5ed30fe9c5c">REWIND_CFP</a>({</div><div class="line"><a name="l02123"></a><span class="lineno"> 2123</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#aec678927729c3dcca12b2fae241158b0">GET_THREAD</a>(), cbase, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a5a8a0a36dbacb1ec73a860b8fd6a61a1">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="l02124"></a><span class="lineno"> 2124</span>  });</div><div class="line"><a name="l02125"></a><span class="lineno"> 2125</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="l02126"></a><span class="lineno"> 2126</span> }</div><div class="line"><a name="l02127"></a><span class="lineno"> 2127</span> </div><div class="line"><a name="l02128"></a><span class="lineno"> 2128</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="l02129"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#af6daaa3b312cda0a07c1c06b2608d4dc"> 2129</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="l02130"></a><span class="lineno"> 2130</span> {</div><div class="line"><a name="l02131"></a><span class="lineno"> 2131</span>  <a class="code" href="../../de/de9/vm_8c.html#aa41b42017c8091c664dea5ed30fe9c5c">REWIND_CFP</a>({</div><div class="line"><a name="l02132"></a><span class="lineno"> 2132</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#aec678927729c3dcca12b2fae241158b0">GET_THREAD</a>(), cbase, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a5a8a0a36dbacb1ec73a860b8fd6a61a1">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="l02133"></a><span class="lineno"> 2133</span>  });</div><div class="line"><a name="l02134"></a><span class="lineno"> 2134</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="l02135"></a><span class="lineno"> 2135</span> }</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="keyword">static</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l02138"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#ab5b731afdd8e86459bd5ddbc587c8a1c"> 2138</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="l02139"></a><span class="lineno"> 2139</span> {</div><div class="line"><a name="l02140"></a><span class="lineno"> 2140</span>  <a class="code" href="../../de/de9/vm_8c.html#aa41b42017c8091c664dea5ed30fe9c5c">REWIND_CFP</a>({</div><div class="line"><a name="l02141"></a><span class="lineno"> 2141</span>  <a class="code" href="../../db/d2e/intern_8h.html#a875565385e4542e217883aa78ede3a67">rb_alias</a>(cbase, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a5a8a0a36dbacb1ec73a860b8fd6a61a1">SYM2ID</a>(sym1), <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a5a8a0a36dbacb1ec73a860b8fd6a61a1">SYM2ID</a>(sym2));</div><div class="line"><a name="l02142"></a><span class="lineno"> 2142</span>  });</div><div class="line"><a name="l02143"></a><span class="lineno"> 2143</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="l02144"></a><span class="lineno"> 2144</span> }</div><div class="line"><a name="l02145"></a><span class="lineno"> 2145</span> </div><div class="line"><a name="l02146"></a><span class="lineno"> 2146</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="l02147"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#aa775eb74347f7cde2375d8c694ff47aa"> 2147</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="l02148"></a><span class="lineno"> 2148</span> {</div><div class="line"><a name="l02149"></a><span class="lineno"> 2149</span>  <a class="code" href="../../de/de9/vm_8c.html#aa41b42017c8091c664dea5ed30fe9c5c">REWIND_CFP</a>({</div><div class="line"><a name="l02150"></a><span class="lineno"> 2150</span>  <a class="code" href="../../db/d2e/intern_8h.html#ab8ed493136ffbe39cfc3fca62eced570">rb_alias_variable</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a5a8a0a36dbacb1ec73a860b8fd6a61a1">SYM2ID</a>(sym1), <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a5a8a0a36dbacb1ec73a860b8fd6a61a1">SYM2ID</a>(sym2));</div><div class="line"><a name="l02151"></a><span class="lineno"> 2151</span>  });</div><div class="line"><a name="l02152"></a><span class="lineno"> 2152</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="l02153"></a><span class="lineno"> 2153</span> }</div><div class="line"><a name="l02154"></a><span class="lineno"> 2154</span> </div><div class="line"><a name="l02155"></a><span class="lineno"> 2155</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="l02156"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a8a84999770916c4cc41113421fee2233"> 2156</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="l02157"></a><span class="lineno"> 2157</span> {</div><div class="line"><a name="l02158"></a><span class="lineno"> 2158</span>  <a class="code" href="../../de/de9/vm_8c.html#aa41b42017c8091c664dea5ed30fe9c5c">REWIND_CFP</a>({</div><div class="line"><a name="l02159"></a><span class="lineno"> 2159</span>  <a class="code" href="../../db/d2e/intern_8h.html#a05cac3059504774696c1a748ba6085d3">rb_undef</a>(cbase, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a5a8a0a36dbacb1ec73a860b8fd6a61a1">SYM2ID</a>(<a class="code" href="../../dd/dc0/date__core_8c.html#a8157485e687f56a6ae2f3ee0a8cb1580">sym</a>));</div><div class="line"><a name="l02160"></a><span class="lineno"> 2160</span>  <a class="code" href="../../d2/d5f/vm__insnhelper_8h.html#a8e91da0eaddd34a78c8f9c5207df8979">INC_VM_STATE_VERSION</a>();</div><div class="line"><a name="l02161"></a><span class="lineno"> 2161</span>  });</div><div class="line"><a name="l02162"></a><span class="lineno"> 2162</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="l02163"></a><span class="lineno"> 2163</span> }</div><div class="line"><a name="l02164"></a><span class="lineno"> 2164</span> </div><div class="line"><a name="l02165"></a><span class="lineno"> 2165</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="l02166"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#aba01cea003dce480ff70e17597990208"> 2166</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="l02167"></a><span class="lineno"> 2167</span> {</div><div class="line"><a name="l02168"></a><span class="lineno"> 2168</span>  <a class="code" href="../../de/de9/vm_8c.html#aa41b42017c8091c664dea5ed30fe9c5c">REWIND_CFP</a>({</div><div class="line"><a name="l02169"></a><span class="lineno"> 2169</span>  <a class="code" href="../../d6/de3/structrb__iseq__struct.html">rb_iseq_t</a> *blockiseq;</div><div class="line"><a name="l02170"></a><span class="lineno"> 2170</span>  <a class="code" href="../../da/dc0/structrb__block__struct.html">rb_block_t</a> *blockptr;</div><div class="line"><a name="l02171"></a><span class="lineno"> 2171</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#aec678927729c3dcca12b2fae241158b0">GET_THREAD</a>();</div><div class="line"><a name="l02172"></a><span class="lineno"> 2172</span>  <a class="code" href="../../de/dc6/structrb__control__frame__struct.html">rb_control_frame_t</a> *cfp = <a class="code" href="../../de/de9/vm_8c.html#abe55ec96693d3caf875342934a7fe1f1">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="l02173"></a><span class="lineno"> 2173</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> proc;</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>  <span class="keywordflow">if</span> (cfp == 0) {</div><div class="line"><a name="l02176"></a><span class="lineno"> 2176</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="l02177"></a><span class="lineno"> 2177</span>  }</div><div class="line"><a name="l02178"></a><span class="lineno"> 2178</span> </div><div class="line"><a name="l02179"></a><span class="lineno"> 2179</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#a5e6a3515e0ad9b9d6a4c0ab577dc50b6">GetISeqPtr</a>(iseqval, blockiseq);</div><div class="line"><a name="l02180"></a><span class="lineno"> 2180</span> </div><div class="line"><a name="l02181"></a><span class="lineno"> 2181</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="l02182"></a><span class="lineno"> 2182</span>  blockptr-><a class="code" href="../../da/dc0/structrb__block__struct.html#a8e2b3b9218b4a184f198872404e81605">iseq</a> = blockiseq;</div><div class="line"><a name="l02183"></a><span class="lineno"> 2183</span>  blockptr-><a class="code" href="../../da/dc0/structrb__block__struct.html#a305ea0fcc6d1233de416bd8e7edab218">proc</a> = 0;</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>  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="l02186"></a><span class="lineno"> 2186</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="l02187"></a><span class="lineno"> 2187</span>  });</div><div class="line"><a name="l02188"></a><span class="lineno"> 2188</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="l02189"></a><span class="lineno"> 2189</span> }</div><div class="line"><a name="l02190"></a><span class="lineno"> 2190</span> </div><div class="line"><a name="l02191"></a><span class="lineno"> 2191</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#a35fc60c8886c35d06adbe4d7c89e2085">m_core_hash_merge_ary</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> <a class="code" href="../../d3/deb/lex_8c.html#a5541f85ce416df233cce93949f0eeeca">hash</a>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> ary);</div><div class="line"><a name="l02192"></a><span class="lineno"> 2192</span> </div><div class="line"><a name="l02193"></a><span class="lineno"> 2193</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="l02194"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a6fa1a9214c7c203be7bf2d80bbfd9ba3"> 2194</a></span> <a class="code" href="../../de/de9/vm_8c.html#a6fa1a9214c7c203be7bf2d80bbfd9ba3">core_hash_merge</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../d3/deb/lex_8c.html#a5541f85ce416df233cce93949f0eeeca">hash</a>, <span class="keywordtype">long</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="l02195"></a><span class="lineno"> 2195</span> {</div><div class="line"><a name="l02196"></a><span class="lineno"> 2196</span>  <span class="keywordtype">long</span> <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>;</div><div class="line"><a name="l02197"></a><span class="lineno"> 2197</span>  <a class="code" href="../../d5/dac/ossl_8h.html#acdcc5aaebf3f273c1762f24a6ece2e5e">assert</a>(<a class="code" href="../../df/d77/ruby_8c.html#ad1447518f4372828b8435ae82e48499e">argc</a> % 2 == 0);</div><div class="line"><a name="l02198"></a><span class="lineno"> 2198</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>+=2) {</div><div class="line"><a name="l02199"></a><span class="lineno"> 2199</span>  <a class="code" href="../../db/d2e/intern_8h.html#ad5e50a405c25d3df6ce1efc754478529">rb_hash_aset</a>(<a class="code" href="../../d3/deb/lex_8c.html#a5541f85ce416df233cce93949f0eeeca">hash</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>], <a class="code" href="../../df/d77/ruby_8c.html#af2efa898e9eed6fe6715279cb1ec35b0">argv</a>[<a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>+1]);</div><div class="line"><a name="l02200"></a><span class="lineno"> 2200</span>  }</div><div class="line"><a name="l02201"></a><span class="lineno"> 2201</span>  <span class="keywordflow">return</span> <a class="code" href="../../d3/deb/lex_8c.html#a5541f85ce416df233cce93949f0eeeca">hash</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> </div><div class="line"><a name="l02204"></a><span class="lineno"> 2204</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="l02205"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#acc61d5d9ca7420b731db3b37feca72cf"> 2205</a></span> <a class="code" href="../../de/de9/vm_8c.html#acc61d5d9ca7420b731db3b37feca72cf">m_core_hash_from_ary</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> ary)</div><div class="line"><a name="l02206"></a><span class="lineno"> 2206</span> {</div><div class="line"><a name="l02207"></a><span class="lineno"> 2207</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../d3/deb/lex_8c.html#a5541f85ce416df233cce93949f0eeeca">hash</a> = <a class="code" href="../../d1/d04/hash_8c.html#af1da586524a3a1739fd5b91272037815">rb_hash_new</a>();</div><div class="line"><a name="l02208"></a><span class="lineno"> 2208</span> </div><div class="line"><a name="l02209"></a><span class="lineno"> 2209</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d8/dc4/probes_8h.html#a1af093b83750132af601561797612c96">RUBY_DTRACE_HASH_CREATE_ENABLED</a>()) {</div><div class="line"><a name="l02210"></a><span class="lineno"> 2210</span>  <a class="code" href="../../d8/dc4/probes_8h.html#a67378d2fffa1615e3adff32d7a8d840d">RUBY_DTRACE_HASH_CREATE</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a0068ed01a16efbb8740e1b0c295b672e">RARRAY_LEN</a>(ary), <a class="code" href="../../de/de9/vm_8c.html#a452b5b1b1a54238cd749112eb9e9d688">rb_sourcefile</a>(), <a class="code" href="../../de/de9/vm_8c.html#af5f87f9d39ea7433dc0de2f655bd6359">rb_sourceline</a>());</div><div class="line"><a name="l02211"></a><span class="lineno"> 2211</span>  }</div><div class="line"><a name="l02212"></a><span class="lineno"> 2212</span> </div><div class="line"><a name="l02213"></a><span class="lineno"> 2213</span>  <span class="keywordflow">return</span> <a class="code" href="../../de/de9/vm_8c.html#a35fc60c8886c35d06adbe4d7c89e2085">m_core_hash_merge_ary</a>(<span class="keyword">self</span>, <a class="code" href="../../d3/deb/lex_8c.html#a5541f85ce416df233cce93949f0eeeca">hash</a>, ary);</div><div class="line"><a name="l02214"></a><span class="lineno"> 2214</span> }</div><div class="line"><a name="l02215"></a><span class="lineno"> 2215</span> </div><div class="line"><a name="l02216"></a><span class="lineno"> 2216</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="l02217"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a35fc60c8886c35d06adbe4d7c89e2085"> 2217</a></span> <a class="code" href="../../de/de9/vm_8c.html#a35fc60c8886c35d06adbe4d7c89e2085">m_core_hash_merge_ary</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> <a class="code" href="../../d3/deb/lex_8c.html#a5541f85ce416df233cce93949f0eeeca">hash</a>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> ary)</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>  <a class="code" href="../../de/de9/vm_8c.html#a6fa1a9214c7c203be7bf2d80bbfd9ba3">core_hash_merge</a>(<a class="code" href="../../d3/deb/lex_8c.html#a5541f85ce416df233cce93949f0eeeca">hash</a>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a0068ed01a16efbb8740e1b0c295b672e">RARRAY_LEN</a>(ary), <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a4e8fe9b7653d67be2401a8b85049e525">RARRAY_PTR</a>(ary));</div><div class="line"><a name="l02220"></a><span class="lineno"> 2220</span>  <span class="keywordflow">return</span> <a class="code" href="../../d3/deb/lex_8c.html#a5541f85ce416df233cce93949f0eeeca">hash</a>;</div><div class="line"><a name="l02221"></a><span class="lineno"> 2221</span> }</div><div class="line"><a name="l02222"></a><span class="lineno"> 2222</span> </div><div class="line"><a name="l02223"></a><span class="lineno"> 2223</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="l02224"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a00c112f0e84b5f3c78cba1e5fb1969fa"> 2224</a></span> <a class="code" href="../../de/de9/vm_8c.html#a00c112f0e84b5f3c78cba1e5fb1969fa">m_core_hash_merge_ptr</a>(<span class="keywordtype">int</span> <a class="code" href="../../df/d77/ruby_8c.html#ad1447518f4372828b8435ae82e48499e">argc</a>, <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>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> recv)</div><div class="line"><a name="l02225"></a><span class="lineno"> 2225</span> {</div><div class="line"><a name="l02226"></a><span class="lineno"> 2226</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../d3/deb/lex_8c.html#a5541f85ce416df233cce93949f0eeeca">hash</a> = <a class="code" href="../../df/d77/ruby_8c.html#af2efa898e9eed6fe6715279cb1ec35b0">argv</a>[0];</div><div class="line"><a name="l02227"></a><span class="lineno"> 2227</span> </div><div class="line"><a name="l02228"></a><span class="lineno"> 2228</span>  <a class="code" href="../../de/de9/vm_8c.html#a6fa1a9214c7c203be7bf2d80bbfd9ba3">core_hash_merge</a>(<a class="code" href="../../d3/deb/lex_8c.html#a5541f85ce416df233cce93949f0eeeca">hash</a>, <a class="code" href="../../df/d77/ruby_8c.html#ad1447518f4372828b8435ae82e48499e">argc</a>-1, <a class="code" href="../../df/d77/ruby_8c.html#af2efa898e9eed6fe6715279cb1ec35b0">argv</a>+1);</div><div class="line"><a name="l02229"></a><span class="lineno"> 2229</span> </div><div class="line"><a name="l02230"></a><span class="lineno"> 2230</span>  <span class="keywordflow">return</span> <a class="code" href="../../d3/deb/lex_8c.html#a5541f85ce416df233cce93949f0eeeca">hash</a>;</div><div class="line"><a name="l02231"></a><span class="lineno"> 2231</span> }</div><div class="line"><a name="l02232"></a><span class="lineno"> 2232</span> </div><div class="line"><a name="l02233"></a><span class="lineno"> 2233</span> <span class="keyword">static</span> <span class="keywordtype">int</span></div><div class="line"><a name="l02234"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a36a6b458397f7b8822692fb0fa04ac02"> 2234</a></span> <a class="code" href="../../de/de9/vm_8c.html#a36a6b458397f7b8822692fb0fa04ac02">kwmerge_ii</a>(<a class="code" href="../../dd/d24/st_8h.html#a1c527e6d80aae369aeda64b1080e5feb">st_data_t</a> *<a class="code" href="../../dc/de5/random_8c.html#a742229490b6759a90ece7ba82ba129d5">key</a>, <a class="code" href="../../dd/d24/st_8h.html#a1c527e6d80aae369aeda64b1080e5feb">st_data_t</a> *value, <a class="code" href="../../dd/d24/st_8h.html#a1c527e6d80aae369aeda64b1080e5feb">st_data_t</a> arg, <span class="keywordtype">int</span> existing)</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>  <span class="keywordflow">if</span> (existing) <span class="keywordflow">return</span> <a class="code" href="../../dd/d24/st_8h.html#a0c6a172fd99de7928916e65034ed8b1fa04b939c166d4baa471909eb224d5fed3">ST_STOP</a>;</div><div class="line"><a name="l02237"></a><span class="lineno"> 2237</span>  *value = arg;</div><div class="line"><a name="l02238"></a><span class="lineno"> 2238</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="l02239"></a><span class="lineno"> 2239</span> }</div><div class="line"><a name="l02240"></a><span class="lineno"> 2240</span> </div><div class="line"><a name="l02241"></a><span class="lineno"> 2241</span> <span class="keyword">static</span> <span class="keywordtype">int</span></div><div class="line"><a name="l02242"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#ac1494d5dfca9833bc967eddd1c194448"> 2242</a></span> <a class="code" href="../../de/de9/vm_8c.html#ac1494d5dfca9833bc967eddd1c194448">kwmerge_i</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> value, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../d3/deb/lex_8c.html#a5541f85ce416df233cce93949f0eeeca">hash</a>)</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>  <span class="keywordflow">if</span> (!<a class="code" href="../../de/de6/ruby_2ruby_8h.html#acc70817286a1286e1d8dea44a00f19c7">SYMBOL_P</a>(<a class="code" href="../../dc/de5/random_8c.html#a742229490b6759a90ece7ba82ba129d5">key</a>)) <a class="code" href="../../de/de6/ruby_2ruby_8h.html#ad5a1e03b0a66824f95f6aaf07b4a4052">Check_Type</a>(<a class="code" href="../../dc/de5/random_8c.html#a742229490b6759a90ece7ba82ba129d5">key</a>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac9aadbc1e9c456506a4d7eef5cdc787e">T_SYMBOL</a>);</div><div class="line"><a name="l02245"></a><span class="lineno"> 2245</span>  <a class="code" href="../../dd/d24/st_8h.html#a5a026e0f0fbb0375b83056f0124889ee">st_update</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#ad8dd7fb0cbee1955c393251e8bb97233">RHASH_TBL</a>(<a class="code" href="../../d3/deb/lex_8c.html#a5541f85ce416df233cce93949f0eeeca">hash</a>), <a class="code" href="../../dc/de5/random_8c.html#a742229490b6759a90ece7ba82ba129d5">key</a>, <a class="code" href="../../de/de9/vm_8c.html#a36a6b458397f7b8822692fb0fa04ac02">kwmerge_ii</a>, (<a class="code" href="../../dd/d24/st_8h.html#a1c527e6d80aae369aeda64b1080e5feb">st_data_t</a>)value);</div><div class="line"><a name="l02246"></a><span class="lineno"> 2246</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="l02247"></a><span class="lineno"> 2247</span> }</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> <span class="keyword">static</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l02250"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#ac557e4980ff675519aa68af1b70c09e3"> 2250</a></span> <a class="code" href="../../de/de9/vm_8c.html#ac557e4980ff675519aa68af1b70c09e3">m_core_hash_merge_kwd</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="../../d3/deb/lex_8c.html#a5541f85ce416df233cce93949f0eeeca">hash</a>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> kw)</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>  kw = <a class="code" href="../../db/d2e/intern_8h.html#a692c7c3caf5cdcf40d3812136f757fb5">rb_convert_type</a>(kw, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a8357e81bbb60cb41b0a292a90653a5e5">T_HASH</a>, <span class="stringliteral">"Hash"</span>, <span class="stringliteral">"to_hash"</span>);</div><div class="line"><a name="l02253"></a><span class="lineno"> 2253</span>  <a class="code" href="../../d1/d04/hash_8c.html#acc47d862ca823ed29cfd7e64300e38f9">rb_hash_foreach</a>(kw, <a class="code" href="../../de/de9/vm_8c.html#ac1494d5dfca9833bc967eddd1c194448">kwmerge_i</a>, <a class="code" href="../../d3/deb/lex_8c.html#a5541f85ce416df233cce93949f0eeeca">hash</a>);</div><div class="line"><a name="l02254"></a><span class="lineno"> 2254</span>  <span class="keywordflow">return</span> <a class="code" href="../../d3/deb/lex_8c.html#a5541f85ce416df233cce93949f0eeeca">hash</a>;</div><div class="line"><a name="l02255"></a><span class="lineno"> 2255</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> <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="l02258"></a><span class="lineno"> 2258</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="l02259"></a><span class="lineno"> 2259</span> <span class="preprocessor">#ifdef __ia64</span></div><div class="line"><a name="l02260"></a><span class="lineno"> 2260</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="l02261"></a><span class="lineno"> 2261</span> <span class="preprocessor">#endif</span></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> <span class="comment">/* debug functions */</span></div><div class="line"><a name="l02264"></a><span class="lineno"> 2264</span> </div><div class="line"><a name="l02265"></a><span class="lineno"> 2265</span> <span class="comment">/* :nodoc: */</span></div><div class="line"><a name="l02266"></a><span class="lineno"> 2266</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="l02267"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#abd4857d42a372434a12d8a62404e4fa2"> 2267</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="l02268"></a><span class="lineno"> 2268</span> {</div><div class="line"><a name="l02269"></a><span class="lineno"> 2269</span>  <a class="code" href="../../db/dde/internal_8h.html#af1b67bbf4b72295a772178d0bd939dd0">rb_vm_bugreport</a>();</div><div class="line"><a name="l02270"></a><span class="lineno"> 2270</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="l02271"></a><span class="lineno"> 2271</span> }</div><div class="line"><a name="l02272"></a><span class="lineno"> 2272</span> </div><div class="line"><a name="l02273"></a><span class="lineno"> 2273</span> <span class="comment">/* :nodoc: */</span></div><div class="line"><a name="l02274"></a><span class="lineno"> 2274</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="l02275"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#ac35785c3423751b6c5095da2a99c61f4"> 2275</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="l02276"></a><span class="lineno"> 2276</span> {</div><div class="line"><a name="l02277"></a><span class="lineno"> 2277</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="l02278"></a><span class="lineno"> 2278</span> <span class="preprocessor">#if HAVE_BACKTRACE</span></div><div class="line"><a name="l02279"></a><span class="lineno"> 2279</span> <span class="preprocessor">#include <execinfo.h></span></div><div class="line"><a name="l02280"></a><span class="lineno"> 2280</span> <span class="preprocessor">#define MAX_NATIVE_TRACE 1024</span></div><div class="line"><a name="l02281"></a><span class="lineno"> 2281</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> *trace[MAX_NATIVE_TRACE];</div><div class="line"><a name="l02282"></a><span class="lineno"> 2282</span>  <span class="keywordtype">int</span> n = backtrace(trace, MAX_NATIVE_TRACE);</div><div class="line"><a name="l02283"></a><span class="lineno"> 2283</span>  <span class="keywordtype">char</span> **syms = backtrace_symbols(trace, n);</div><div class="line"><a name="l02284"></a><span class="lineno"> 2284</span>  <span class="keywordtype">int</span> <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>;</div><div class="line"><a name="l02285"></a><span class="lineno"> 2285</span> </div><div class="line"><a name="l02286"></a><span class="lineno"> 2286</span>  <span class="keywordflow">if</span> (syms == 0) {</div><div class="line"><a name="l02287"></a><span class="lineno"> 2287</span>  <a class="code" href="../../d8/d16/gc_8c.html#a14b9fe6e6bba3f2279b95af407c546f8">rb_memerror</a>();</div><div class="line"><a name="l02288"></a><span class="lineno"> 2288</span>  }</div><div class="line"><a name="l02289"></a><span class="lineno"> 2289</span> </div><div class="line"><a name="l02290"></a><span class="lineno"> 2290</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="l02291"></a><span class="lineno"> 2291</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="l02292"></a><span class="lineno"> 2292</span>  }</div><div class="line"><a name="l02293"></a><span class="lineno"> 2293</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="l02294"></a><span class="lineno"> 2294</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l02295"></a><span class="lineno"> 2295</span>  <span class="keywordflow">return</span> ary;</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> </div><div class="line"><a name="l02298"></a><span class="lineno"> 2298</span> <span class="preprocessor">#if VM_COLLECT_USAGE_DETAILS</span></div><div class="line"><a name="l02299"></a><span class="lineno"> 2299</span> <span class="keyword">static</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> usage_analysis_insn_stop(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <span class="keyword">self</span>);</div><div class="line"><a name="l02300"></a><span class="lineno"> 2300</span> <span class="keyword">static</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> usage_analysis_operand_stop(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <span class="keyword">self</span>);</div><div class="line"><a name="l02301"></a><span class="lineno"> 2301</span> <span class="keyword">static</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> usage_analysis_register_stop(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <span class="keyword">self</span>);</div><div class="line"><a name="l02302"></a><span class="lineno"> 2302</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l02303"></a><span class="lineno"> 2303</span> </div><div class="line"><a name="l02304"></a><span class="lineno"> 2304</span> <span class="keywordtype">void</span></div><div class="line"><a name="l02305"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#adab716402e3bca5b8c6664aa102045d8"> 2305</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="l02306"></a><span class="lineno"> 2306</span> {</div><div class="line"><a name="l02307"></a><span class="lineno"> 2307</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> opts;</div><div class="line"><a name="l02308"></a><span class="lineno"> 2308</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> klass;</div><div class="line"><a name="l02309"></a><span class="lineno"> 2309</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> fcore;</div><div class="line"><a name="l02310"></a><span class="lineno"> 2310</span> </div><div class="line"><a name="l02311"></a><span class="lineno"> 2311</span>  <span class="comment">/* ::RubyVM */</span></div><div class="line"><a name="l02312"></a><span class="lineno"> 2312</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="l02313"></a><span class="lineno"> 2313</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="l02314"></a><span class="lineno"> 2314</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="l02315"></a><span class="lineno"> 2315</span> </div><div class="line"><a name="l02316"></a><span class="lineno"> 2316</span>  <span class="comment">/* FrozenCore (hidden) */</span></div><div class="line"><a name="l02317"></a><span class="lineno"> 2317</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="l02318"></a><span class="lineno"> 2318</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="l02319"></a><span class="lineno"> 2319</span>  klass = <a class="code" href="../../de/ddf/group__class.html#ga3778543a2798adab7bc12ed325c0b5d0">rb_singleton_class</a>(fcore);</div><div class="line"><a name="l02320"></a><span class="lineno"> 2320</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="l02321"></a><span class="lineno"> 2321</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="l02322"></a><span class="lineno"> 2322</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="l02323"></a><span class="lineno"> 2323</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="l02324"></a><span class="lineno"> 2324</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="l02325"></a><span class="lineno"> 2325</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="l02326"></a><span class="lineno"> 2326</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#a08dd4fbd61c5fde369edd59783f753b3ab0357c7218258eb380cb0afbb4414447">id_core_hash_from_ary</a>, <a class="code" href="../../de/de9/vm_8c.html#acc61d5d9ca7420b731db3b37feca72cf">m_core_hash_from_ary</a>, 1);</div><div class="line"><a name="l02327"></a><span class="lineno"> 2327</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#a08dd4fbd61c5fde369edd59783f753b3a184b6b840b45f69b2f635910fc7885b6">id_core_hash_merge_ary</a>, <a class="code" href="../../de/de9/vm_8c.html#a35fc60c8886c35d06adbe4d7c89e2085">m_core_hash_merge_ary</a>, 2);</div><div class="line"><a name="l02328"></a><span class="lineno"> 2328</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#a08dd4fbd61c5fde369edd59783f753b3a7f9b82d41bfb9398bb16c47725cca916">id_core_hash_merge_ptr</a>, <a class="code" href="../../de/de9/vm_8c.html#a00c112f0e84b5f3c78cba1e5fb1969fa">m_core_hash_merge_ptr</a>, -1);</div><div class="line"><a name="l02329"></a><span class="lineno"> 2329</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#a08dd4fbd61c5fde369edd59783f753b3a4131af63fbf85962531af371fae4d62b">id_core_hash_merge_kwd</a>, <a class="code" href="../../de/de9/vm_8c.html#ac557e4980ff675519aa68af1b70c09e3">m_core_hash_merge_kwd</a>, 2);</div><div class="line"><a name="l02330"></a><span class="lineno"> 2330</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="l02331"></a><span class="lineno"> 2331</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="l02332"></a><span class="lineno"> 2332</span>  <a class="code" href="../../db/d2e/intern_8h.html#a8ea3742679211f408cb5769de6cf0d46">rb_obj_freeze</a>(fcore);</div><div class="line"><a name="l02333"></a><span class="lineno"> 2333</span>  <a class="code" href="../../d8/d16/gc_8c.html#adc7efe8997f04b5c275d7e7aed9169e3">rb_gc_register_mark_object</a>(fcore);</div><div class="line"><a name="l02334"></a><span class="lineno"> 2334</span>  <a class="code" href="../../de/de9/vm_8c.html#a15744aab342112335b9189c8911ba625">rb_mRubyVMFrozenCore</a> = fcore;</div><div class="line"><a name="l02335"></a><span class="lineno"> 2335</span> </div><div class="line"><a name="l02336"></a><span class="lineno"> 2336</span>  <span class="comment">/* ::RubyVM::Env */</span></div><div class="line"><a name="l02337"></a><span class="lineno"> 2337</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="l02338"></a><span class="lineno"> 2338</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="l02339"></a><span class="lineno"> 2339</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="l02340"></a><span class="lineno"> 2340</span> </div><div class="line"><a name="l02341"></a><span class="lineno"> 2341</span>  <span class="comment">/* ::Thread */</span></div><div class="line"><a name="l02342"></a><span class="lineno"> 2342</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="l02343"></a><span class="lineno"> 2343</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="l02344"></a><span class="lineno"> 2344</span> </div><div class="line"><a name="l02345"></a><span class="lineno"> 2345</span> <span class="preprocessor">#if VM_COLLECT_USAGE_DETAILS</span></div><div class="line"><a name="l02346"></a><span class="lineno"> 2346</span>  <span class="comment">/* ::RubyVM::USAGE_ANALYSIS_* */</span></div><div class="line"><a name="l02347"></a><span class="lineno"> 2347</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="l02348"></a><span class="lineno"> 2348</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="l02349"></a><span class="lineno"> 2349</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="l02350"></a><span class="lineno"> 2350</span> </div><div class="line"><a name="l02351"></a><span class="lineno"> 2351</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">"USAGE_ANALYSIS_INSN_STOP"</span>, usage_analysis_insn_stop, 0);</div><div class="line"><a name="l02352"></a><span class="lineno"> 2352</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">"USAGE_ANALYSIS_OPERAND_STOP"</span>, usage_analysis_operand_stop, 0);</div><div class="line"><a name="l02353"></a><span class="lineno"> 2353</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">"USAGE_ANALYSIS_REGISTER_STOP"</span>, usage_analysis_register_stop, 0);</div><div class="line"><a name="l02354"></a><span class="lineno"> 2354</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l02355"></a><span class="lineno"> 2355</span> </div><div class="line"><a name="l02356"></a><span class="lineno"> 2356</span>  <span class="comment">/* ::RubyVM::OPTS, which shows vm build options */</span></div><div class="line"><a name="l02357"></a><span class="lineno"> 2357</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="l02358"></a><span class="lineno"> 2358</span> </div><div class="line"><a name="l02359"></a><span class="lineno"> 2359</span> <span class="preprocessor">#if OPT_DIRECT_THREADED_CODE</span></div><div class="line"><a name="l02360"></a><span class="lineno"> 2360</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="l02361"></a><span class="lineno"> 2361</span> <span class="preprocessor">#elif OPT_TOKEN_THREADED_CODE</span></div><div class="line"><a name="l02362"></a><span class="lineno"> 2362</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="l02363"></a><span class="lineno"> 2363</span> <span class="preprocessor">#elif OPT_CALL_THREADED_CODE</span></div><div class="line"><a name="l02364"></a><span class="lineno"> 2364</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="l02365"></a><span class="lineno"> 2365</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l02366"></a><span class="lineno"> 2366</span> </div><div class="line"><a name="l02367"></a><span class="lineno"> 2367</span> <span class="preprocessor">#if OPT_STACK_CACHING</span></div><div class="line"><a name="l02368"></a><span class="lineno"> 2368</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="l02369"></a><span class="lineno"> 2369</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l02370"></a><span class="lineno"> 2370</span> <span class="preprocessor">#if OPT_OPERANDS_UNIFICATION</span></div><div class="line"><a name="l02371"></a><span class="lineno"> 2371</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="l02372"></a><span class="lineno"> 2372</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l02373"></a><span class="lineno"> 2373</span> <span class="preprocessor">#if OPT_INSTRUCTIONS_UNIFICATION</span></div><div class="line"><a name="l02374"></a><span class="lineno"> 2374</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="l02375"></a><span class="lineno"> 2375</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l02376"></a><span class="lineno"> 2376</span> <span class="preprocessor">#if OPT_INLINE_METHOD_CACHE</span></div><div class="line"><a name="l02377"></a><span class="lineno"> 2377</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="l02378"></a><span class="lineno"> 2378</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l02379"></a><span class="lineno"> 2379</span> <span class="preprocessor">#if OPT_BLOCKINLINING</span></div><div class="line"><a name="l02380"></a><span class="lineno"> 2380</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="l02381"></a><span class="lineno"> 2381</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l02382"></a><span class="lineno"> 2382</span> </div><div class="line"><a name="l02383"></a><span class="lineno"> 2383</span>  <span class="comment">/* ::RubyVM::INSTRUCTION_NAMES */</span></div><div class="line"><a name="l02384"></a><span class="lineno"> 2384</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="l02385"></a><span class="lineno"> 2385</span> </div><div class="line"><a name="l02386"></a><span class="lineno"> 2386</span>  <span class="comment">/* ::RubyVM::DEFAULT_PARAMS</span></div><div class="line"><a name="l02387"></a><span class="lineno"> 2387</span> <span class="comment"> * This constant variable shows VM's default parameters.</span></div><div class="line"><a name="l02388"></a><span class="lineno"> 2388</span> <span class="comment"> * Note that changing these values does not affect VM exection.</span></div><div class="line"><a name="l02389"></a><span class="lineno"> 2389</span> <span class="comment"> * Specification is not stable and you should not depend on this value.</span></div><div class="line"><a name="l02390"></a><span class="lineno"> 2390</span> <span class="comment"> * Of course, this constant is MRI specific.</span></div><div class="line"><a name="l02391"></a><span class="lineno"> 2391</span> <span class="comment"> */</span></div><div class="line"><a name="l02392"></a><span class="lineno"> 2392</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">"DEFAULT_PARAMS"</span>, <a class="code" href="../../de/de9/vm_8c.html#a430a05b48293f2fb8b5cd99e0a156df3">vm_default_params</a>());</div><div class="line"><a name="l02393"></a><span class="lineno"> 2393</span> </div><div class="line"><a name="l02394"></a><span class="lineno"> 2394</span>  <span class="comment">/* debug functions ::RubyVM::SDR(), ::RubyVM::NSDR() */</span></div><div class="line"><a name="l02395"></a><span class="lineno"> 2395</span> <span class="preprocessor">#if VMDEBUG</span></div><div class="line"><a name="l02396"></a><span class="lineno"> 2396</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="l02397"></a><span class="lineno"> 2397</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="l02398"></a><span class="lineno"> 2398</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l02399"></a><span class="lineno"> 2399</span>  (void)<a class="code" href="../../de/de9/vm_8c.html#abd4857d42a372434a12d8a62404e4fa2">sdr</a>;</div><div class="line"><a name="l02400"></a><span class="lineno"> 2400</span>  (void)<a class="code" href="../../de/de9/vm_8c.html#ac35785c3423751b6c5095da2a99c61f4">nsdr</a>;</div><div class="line"><a name="l02401"></a><span class="lineno"> 2401</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l02402"></a><span class="lineno"> 2402</span> </div><div class="line"><a name="l02403"></a><span class="lineno"> 2403</span>  <span class="comment">/* VM bootstrap: phase 2 */</span></div><div class="line"><a name="l02404"></a><span class="lineno"> 2404</span>  {</div><div class="line"><a name="l02405"></a><span class="lineno"> 2405</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="l02406"></a><span class="lineno"> 2406</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#aec678927729c3dcca12b2fae241158b0">GET_THREAD</a>();</div><div class="line"><a name="l02407"></a><span class="lineno"> 2407</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="l02408"></a><span class="lineno"> 2408</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#a01cc67dd00d7e8d4e02a4b0d7fe818f0">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="l02409"></a><span class="lineno"> 2409</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="l02410"></a><span class="lineno"> 2410</span>  <a class="code" href="../../d6/de3/structrb__iseq__struct.html">rb_iseq_t</a> *iseq;</div><div class="line"><a name="l02411"></a><span class="lineno"> 2411</span> </div><div class="line"><a name="l02412"></a><span class="lineno"> 2412</span>  <span class="comment">/* create vm object */</span></div><div class="line"><a name="l02413"></a><span class="lineno"> 2413</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="l02414"></a><span class="lineno"> 2414</span> </div><div class="line"><a name="l02415"></a><span class="lineno"> 2415</span>  <span class="comment">/* create main thread */</span></div><div class="line"><a name="l02416"></a><span class="lineno"> 2416</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="l02417"></a><span class="lineno"> 2417</span>  <a class="code" href="../../db/d2e/intern_8h.html#a7e5b0d4c40fecb26c1ac946f674a690e">rb_iv_set</a>(th_self, <span class="stringliteral">"locals"</span>, <a class="code" href="../../d1/d04/hash_8c.html#af1da586524a3a1739fd5b91272037815">rb_hash_new</a>());</div><div class="line"><a name="l02418"></a><span class="lineno"> 2418</span>  vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#a55af19560794b67c09c608a8464e47c9">main_thread</a> = th;</div><div class="line"><a name="l02419"></a><span class="lineno"> 2419</span>  vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#a469ec56bec5fad54fa6336d5fde24a03">running_thread</a> = th;</div><div class="line"><a name="l02420"></a><span class="lineno"> 2420</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a3e7d0b05e2d73f324e70c735ba50739e">vm</a> = vm;</div><div class="line"><a name="l02421"></a><span class="lineno"> 2421</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a63addaa5b39a83e287f7b8747398ab57">top_wrapper</a> = 0;</div><div class="line"><a name="l02422"></a><span class="lineno"> 2422</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="l02423"></a><span class="lineno"> 2423</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#addad24839d7483095151e91b3b83aed6">rb_thread_set_current</a>(th);</div><div class="line"><a name="l02424"></a><span class="lineno"> 2424</span> </div><div class="line"><a name="l02425"></a><span class="lineno"> 2425</span>  vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#a09bd6675a9fe3f1b19e36284e91a0e31">living_threads</a> = <a class="code" href="../../dd/d24/st_8h.html#a955c6e936b9681649ab9ffa4aa741949">st_init_numtable</a>();</div><div class="line"><a name="l02426"></a><span class="lineno"> 2426</span>  <a class="code" href="../../dd/d24/st_8h.html#acdc42c01229b7537ea5a4c6965c7e47a">st_insert</a>(vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#a09bd6675a9fe3f1b19e36284e91a0e31">living_threads</a>, th_self, (<a class="code" href="../../dd/d24/st_8h.html#a1c527e6d80aae369aeda64b1080e5feb">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="l02427"></a><span class="lineno"> 2427</span> </div><div class="line"><a name="l02428"></a><span class="lineno"> 2428</span>  <a class="code" href="../../d8/d16/gc_8c.html#adc7efe8997f04b5c275d7e7aed9169e3">rb_gc_register_mark_object</a>(iseqval);</div><div class="line"><a name="l02429"></a><span class="lineno"> 2429</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#a5e6a3515e0ad9b9d6a4c0ab577dc50b6">GetISeqPtr</a>(iseqval, iseq);</div><div class="line"><a name="l02430"></a><span class="lineno"> 2430</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">iseq</a> = iseq;</div><div class="line"><a name="l02431"></a><span class="lineno"> 2431</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a596de17ddc9fb186769848a9f27f3510">pc</a> = iseq-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#aa70f3e195a4350acbbc130f8a95c9958">iseq_encoded</a>;</div><div class="line"><a name="l02432"></a><span class="lineno"> 2432</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#aba6bb1166e207f96d81c4fcac16b3119">self</a> = th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#ac0ba34f711c43f831fe95e9a9434353f">top_self</a>;</div><div class="line"><a name="l02433"></a><span class="lineno"> 2433</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#acbc4e3a67849cb96ff2b6e4cdc1f7457">klass</a> = <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>;</div><div class="line"><a name="l02434"></a><span class="lineno"> 2434</span> </div><div class="line"><a name="l02435"></a><span class="lineno"> 2435</span>  <span class="comment">/*</span></div><div class="line"><a name="l02436"></a><span class="lineno"> 2436</span> <span class="comment"> * The Binding of the top level scope</span></div><div class="line"><a name="l02437"></a><span class="lineno"> 2437</span> <span class="comment"> */</span></div><div class="line"><a name="l02438"></a><span class="lineno"> 2438</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="l02439"></a><span class="lineno"> 2439</span>  }</div><div class="line"><a name="l02440"></a><span class="lineno"> 2440</span>  <a class="code" href="../../de/de9/vm_8c.html#a891ada54116b1442538ca6fc0e2861b1">vm_init_redefined_flag</a>();</div><div class="line"><a name="l02441"></a><span class="lineno"> 2441</span> </div><div class="line"><a name="l02442"></a><span class="lineno"> 2442</span>  <span class="comment">/* vm_backtrace.c */</span></div><div class="line"><a name="l02443"></a><span class="lineno"> 2443</span>  <a class="code" href="../../db/dde/internal_8h.html#a58f2eb5cab1dcaa04edcef862665fa35">Init_vm_backtrace</a>();</div><div class="line"><a name="l02444"></a><span class="lineno"> 2444</span>  <a class="code" href="../../d0/db2/vm__insnhelper_8c.html#a86ccc260b5d0663c44a443c4111a981a">VM_PROFILE_ATEXIT</a>();</div><div class="line"><a name="l02445"></a><span class="lineno"> 2445</span> }</div><div class="line"><a name="l02446"></a><span class="lineno"> 2446</span> </div><div class="line"><a name="l02447"></a><span class="lineno"> 2447</span> <span class="keywordtype">void</span></div><div class="line"><a name="l02448"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a83ac3f8bc164313d7a1b451f2d2cdabf"> 2448</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="l02449"></a><span class="lineno"> 2449</span> {</div><div class="line"><a name="l02450"></a><span class="lineno"> 2450</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="l02451"></a><span class="lineno"> 2451</span>  <a class="code" href="../../de/dc6/structrb__control__frame__struct.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#a1f263d7b7ee19fc82ea14d83ed1dc7bd">stack_size</a>);</div><div class="line"><a name="l02452"></a><span class="lineno"> 2452</span>  --cfp;</div><div class="line"><a name="l02453"></a><span class="lineno"> 2453</span>  cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">iseq</a>-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#acf13c2a9990e88276a7223a4881302d6">location</a>.<a class="code" href="../../dd/dc8/structrb__iseq__location__struct.html#a7021da5c8b09129a4212e76cff24db02">path</a> = filename;</div><div class="line"><a name="l02454"></a><span class="lineno"> 2454</span> }</div><div class="line"><a name="l02455"></a><span class="lineno"> 2455</span> </div><div class="line"><a name="l02456"></a><span class="lineno"> 2456</span> <span class="preprocessor">#if defined(ENABLE_VM_OBJSPACE) && ENABLE_VM_OBJSPACE</span></div><div class="line"><a name="l02457"></a><span class="lineno"> 2457</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="l02458"></a><span class="lineno"> 2458</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l02459"></a><span class="lineno"> 2459</span> </div><div class="line"><a name="l02460"></a><span class="lineno"> 2460</span> <span class="keywordtype">void</span></div><div class="line"><a name="l02461"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#aebe8178dca87b6a8883017e6921029c2"> 2461</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="l02462"></a><span class="lineno"> 2462</span> {</div><div class="line"><a name="l02463"></a><span class="lineno"> 2463</span>  <span class="comment">/* VM bootstrap: phase 1 */</span></div><div class="line"><a name="l02464"></a><span class="lineno"> 2464</span>  <a class="code" href="../../db/d74/structrb__vm__struct.html">rb_vm_t</a> * vm = <a class="code" href="../../d8/d16/gc_8c.html#a8532a2fc15194a8a87b9599d99fbc52c">ruby_mimmalloc</a>(<span class="keyword">sizeof</span>(*vm));</div><div class="line"><a name="l02465"></a><span class="lineno"> 2465</span>  <a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> * th = <a class="code" href="../../d8/d16/gc_8c.html#a8532a2fc15194a8a87b9599d99fbc52c">ruby_mimmalloc</a>(<span class="keyword">sizeof</span>(*th));</div><div class="line"><a name="l02466"></a><span class="lineno"> 2466</span>  <span class="keywordflow">if</span> (!vm || !th) {</div><div class="line"><a name="l02467"></a><span class="lineno"> 2467</span>  fprintf(stderr, <span class="stringliteral">"[FATAL] failed to allocate memory\n"</span>);</div><div class="line"><a name="l02468"></a><span class="lineno"> 2468</span>  exit(<a class="code" href="../../dd/dd0/eval__intern_8h.html#a73efe787c131b385070f25d18b7c9aa4">EXIT_FAILURE</a>);</div><div class="line"><a name="l02469"></a><span class="lineno"> 2469</span>  }</div><div class="line"><a name="l02470"></a><span class="lineno"> 2470</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="l02471"></a><span class="lineno"> 2471</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="l02472"></a><span class="lineno"> 2472</span> </div><div class="line"><a name="l02473"></a><span class="lineno"> 2473</span>  <a class="code" href="../../de/de9/vm_8c.html#a08ccea748ec0076636c2b4abada44ff0">vm_init2</a>(vm);</div><div class="line"><a name="l02474"></a><span class="lineno"> 2474</span> <span class="preprocessor">#if defined(ENABLE_VM_OBJSPACE) && ENABLE_VM_OBJSPACE</span></div><div class="line"><a name="l02475"></a><span class="lineno"> 2475</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="l02476"></a><span class="lineno"> 2476</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l02477"></a><span class="lineno"> 2477</span>  <a class="code" href="../../de/de9/vm_8c.html#a9be24d2deecfd3c43942e8c7cc4770a1">ruby_current_vm</a> = vm;</div><div class="line"><a name="l02478"></a><span class="lineno"> 2478</span> </div><div class="line"><a name="l02479"></a><span class="lineno"> 2479</span>  <a class="code" href="../../db/dde/internal_8h.html#a1261ad828419468df5d4e92bb75ff6f3">Init_native_thread</a>();</div><div class="line"><a name="l02480"></a><span class="lineno"> 2480</span>  th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a3e7d0b05e2d73f324e70c735ba50739e">vm</a> = vm;</div><div class="line"><a name="l02481"></a><span class="lineno"> 2481</span>  <a class="code" href="../../de/de9/vm_8c.html#a8254b2c9550e30be25c3115308865c28">th_init</a>(th, 0);</div><div class="line"><a name="l02482"></a><span class="lineno"> 2482</span>  <a class="code" href="../../d3/de7/thread_8c.html#a20d8df830e19c1e62520540c66aaf3bb">ruby_thread_init_stack</a>(th);</div><div class="line"><a name="l02483"></a><span class="lineno"> 2483</span> }</div><div class="line"><a name="l02484"></a><span class="lineno"> 2484</span> </div><div class="line"><a name="l02485"></a><span class="lineno"> 2485</span> <span class="comment">/* top self */</span></div><div class="line"><a name="l02486"></a><span class="lineno"> 2486</span> </div><div class="line"><a name="l02487"></a><span class="lineno"> 2487</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="l02488"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a6a5620261a411c4eb4bb08ab9509f706"> 2488</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="l02489"></a><span class="lineno"> 2489</span> {</div><div class="line"><a name="l02490"></a><span class="lineno"> 2490</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="l02491"></a><span class="lineno"> 2491</span> }</div><div class="line"><a name="l02492"></a><span class="lineno"> 2492</span> </div><div class="line"><a name="l02493"></a><span class="lineno"> 2493</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l02494"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a5293371c1050a118f49ccf3c073bcfbe"> 2494</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="l02495"></a><span class="lineno"> 2495</span> {</div><div class="line"><a name="l02496"></a><span class="lineno"> 2496</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="l02497"></a><span class="lineno"> 2497</span> }</div><div class="line"><a name="l02498"></a><span class="lineno"> 2498</span> </div><div class="line"><a name="l02499"></a><span class="lineno"> 2499</span> <span class="keywordtype">void</span></div><div class="line"><a name="l02500"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a50c13f51eaa186494807612609f95a97"> 2500</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="l02501"></a><span class="lineno"> 2501</span> {</div><div class="line"><a name="l02502"></a><span class="lineno"> 2502</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="l02503"></a><span class="lineno"> 2503</span> </div><div class="line"><a name="l02504"></a><span class="lineno"> 2504</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="l02505"></a><span class="lineno"> 2505</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="l02506"></a><span class="lineno"> 2506</span>  <a class="code" href="../../d7/d19/group__defmethod.html#ga9ee2c97671d010bcb7a27614ab28bba7">rb_define_alias</a>(<a class="code" href="../../de/ddf/group__class.html#ga3778543a2798adab7bc12ed325c0b5d0">rb_singleton_class</a>(<a class="code" href="../../de/de9/vm_8c.html#a5293371c1050a118f49ccf3c073bcfbe">rb_vm_top_self</a>()), <span class="stringliteral">"inspect"</span>, <span class="stringliteral">"to_s"</span>);</div><div class="line"><a name="l02507"></a><span class="lineno"> 2507</span> </div><div class="line"><a name="l02508"></a><span class="lineno"> 2508</span>  <span class="comment">/* initialize mark object array */</span></div><div class="line"><a name="l02509"></a><span class="lineno"> 2509</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="l02510"></a><span class="lineno"> 2510</span> }</div><div class="line"><a name="l02511"></a><span class="lineno"> 2511</span> </div><div class="line"><a name="l02512"></a><span class="lineno"> 2512</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *</div><div class="line"><a name="l02513"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a5628587c50e8c4ba85eb1f3df1fa19e2"> 2513</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="l02514"></a><span class="lineno"> 2514</span> {</div><div class="line"><a name="l02515"></a><span class="lineno"> 2515</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="l02516"></a><span class="lineno"> 2516</span> }</div><div class="line"><a name="l02517"></a><span class="lineno"> 2517</span> </div><div class="line"><a name="l02518"></a><span class="lineno"> 2518</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *</div><div class="line"><a name="l02519"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#afbca5a98d211dac56fd4fbad2a382716"> 2519</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="l02520"></a><span class="lineno"> 2520</span> {</div><div class="line"><a name="l02521"></a><span class="lineno"> 2521</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="l02522"></a><span class="lineno"> 2522</span> }</div><div class="line"><a name="l02523"></a><span class="lineno"> 2523</span> </div><div class="line"><a name="l02524"></a><span class="lineno"> 2524</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *</div><div class="line"><a name="l02525"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#adcdfac9f41b5eac1f4f89a647d2ff5b8"> 2525</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="l02526"></a><span class="lineno"> 2526</span> {</div><div class="line"><a name="l02527"></a><span class="lineno"> 2527</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="l02528"></a><span class="lineno"> 2528</span> }</div><div class="line"><a name="l02529"></a><span class="lineno"> 2529</span> </div><div class="line"><a name="l02530"></a><span class="lineno"> 2530</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *</div><div class="line"><a name="l02531"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#ab9b0b6052e278894c13547d5eae29553"> 2531</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="l02532"></a><span class="lineno"> 2532</span> {</div><div class="line"><a name="l02533"></a><span class="lineno"> 2533</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="l02534"></a><span class="lineno"> 2534</span> }</div><div class="line"><a name="l02535"></a><span class="lineno"> 2535</span> </div><div class="line"><a name="l02536"></a><span class="lineno"> 2536</span> <span class="comment">/* iseq.c */</span></div><div class="line"><a name="l02537"></a><span class="lineno"> 2537</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../de/de9/vm_8c.html#a9c6bc23a2822141f17f004af8160090f">insn_operand_intern</a>(<a class="code" href="../../d6/de3/structrb__iseq__struct.html">rb_iseq_t</a> *iseq,</div><div class="line"><a name="l02538"></a><span class="lineno"> 2538</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> insn, <span class="keywordtype">int</span> op_no, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> op,</div><div class="line"><a name="l02539"></a><span class="lineno"> 2539</span>  <span class="keywordtype">int</span> len, <span class="keywordtype">size_t</span> pos, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *pnop, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> child);</div><div class="line"><a name="l02540"></a><span class="lineno"> 2540</span> </div><div class="line"><a name="l02541"></a><span class="lineno"> 2541</span> <span class="preprocessor">#if VM_COLLECT_USAGE_DETAILS</span></div><div class="line"><a name="l02542"></a><span class="lineno"> 2542</span> </div><div class="line"><a name="l02543"></a><span class="lineno"> 2543</span> <span class="preprocessor">#define HASH_ASET(h, k, v) st_insert(RHASH_TBL(h), (st_data_t)(k), (st_data_t)(v))</span></div><div class="line"><a name="l02544"></a><span class="lineno"> 2544</span> </div><div class="line"><a name="l02545"></a><span class="lineno"> 2545</span> <span class="comment">/* uh = {</span></div><div class="line"><a name="l02546"></a><span class="lineno"> 2546</span> <span class="comment"> * insn(Fixnum) => ihash(Hash)</span></div><div class="line"><a name="l02547"></a><span class="lineno"> 2547</span> <span class="comment"> * }</span></div><div class="line"><a name="l02548"></a><span class="lineno"> 2548</span> <span class="comment"> * ihash = {</span></div><div class="line"><a name="l02549"></a><span class="lineno"> 2549</span> <span class="comment"> * -1(Fixnum) => count, # insn usage</span></div><div class="line"><a name="l02550"></a><span class="lineno"> 2550</span> <span class="comment"> * 0(Fixnum) => ophash, # operand usage</span></div><div class="line"><a name="l02551"></a><span class="lineno"> 2551</span> <span class="comment"> * }</span></div><div class="line"><a name="l02552"></a><span class="lineno"> 2552</span> <span class="comment"> * ophash = {</span></div><div class="line"><a name="l02553"></a><span class="lineno"> 2553</span> <span class="comment"> * val(interned string) => count(Fixnum)</span></div><div class="line"><a name="l02554"></a><span class="lineno"> 2554</span> <span class="comment"> * }</span></div><div class="line"><a name="l02555"></a><span class="lineno"> 2555</span> <span class="comment"> */</span></div><div class="line"><a name="l02556"></a><span class="lineno"> 2556</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l02557"></a><span class="lineno"> 2557</span> vm_analysis_insn(<span class="keywordtype">int</span> insn)</div><div class="line"><a name="l02558"></a><span class="lineno"> 2558</span> {</div><div class="line"><a name="l02559"></a><span class="lineno"> 2559</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#afa5b9137f051ac26d7ccc8824f178233">ID</a> usage_hash;</div><div class="line"><a name="l02560"></a><span class="lineno"> 2560</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#afa5b9137f051ac26d7ccc8824f178233">ID</a> bigram_hash;</div><div class="line"><a name="l02561"></a><span class="lineno"> 2561</span>  <span class="keyword">static</span> <span class="keywordtype">int</span> prev_insn = -1;</div><div class="line"><a name="l02562"></a><span class="lineno"> 2562</span> </div><div class="line"><a name="l02563"></a><span class="lineno"> 2563</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> uh;</div><div class="line"><a name="l02564"></a><span class="lineno"> 2564</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> ihash;</div><div class="line"><a name="l02565"></a><span class="lineno"> 2565</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a064e4a3a0f3f97b34dc187ea21bcc2f1">cv</a>;</div><div class="line"><a name="l02566"></a><span class="lineno"> 2566</span> </div><div class="line"><a name="l02567"></a><span class="lineno"> 2567</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aa50b9d5bc665eb5545f6857c89232161">CONST_ID</a>(usage_hash, <span class="stringliteral">"USAGE_ANALYSIS_INSN"</span>);</div><div class="line"><a name="l02568"></a><span class="lineno"> 2568</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aa50b9d5bc665eb5545f6857c89232161">CONST_ID</a>(bigram_hash, <span class="stringliteral">"USAGE_ANALYSIS_INSN_BIGRAM"</span>);</div><div class="line"><a name="l02569"></a><span class="lineno"> 2569</span>  uh = <a class="code" href="../../db/d2e/intern_8h.html#a17a81c1a7d754e5ab49fc4b4369b6c8c">rb_const_get</a>(<a class="code" href="../../de/de9/vm_8c.html#a600dc9ffdba414e21dacfe809c4a9ec8">rb_cRubyVM</a>, usage_hash);</div><div class="line"><a name="l02570"></a><span class="lineno"> 2570</span>  <span class="keywordflow">if</span> ((ihash = <a class="code" href="../../d1/d04/hash_8c.html#ab7063832c7ed02351e87922a78e35c32">rb_hash_aref</a>(uh, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac55fae7f748afd3fc2533d0d7d06cf5a">INT2FIX</a>(insn))) == <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>) {</div><div class="line"><a name="l02571"></a><span class="lineno"> 2571</span>  ihash = <a class="code" href="../../d1/d04/hash_8c.html#af1da586524a3a1739fd5b91272037815">rb_hash_new</a>();</div><div class="line"><a name="l02572"></a><span class="lineno"> 2572</span>  HASH_ASET(uh, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac55fae7f748afd3fc2533d0d7d06cf5a">INT2FIX</a>(insn), ihash);</div><div class="line"><a name="l02573"></a><span class="lineno"> 2573</span>  }</div><div class="line"><a name="l02574"></a><span class="lineno"> 2574</span>  <span class="keywordflow">if</span> ((<a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a064e4a3a0f3f97b34dc187ea21bcc2f1">cv</a> = <a class="code" href="../../d1/d04/hash_8c.html#ab7063832c7ed02351e87922a78e35c32">rb_hash_aref</a>(ihash, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac55fae7f748afd3fc2533d0d7d06cf5a">INT2FIX</a>(-1))) == <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>) {</div><div class="line"><a name="l02575"></a><span class="lineno"> 2575</span>  <a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a064e4a3a0f3f97b34dc187ea21bcc2f1">cv</a> = <a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac55fae7f748afd3fc2533d0d7d06cf5a">INT2FIX</a>(0);</div><div class="line"><a name="l02576"></a><span class="lineno"> 2576</span>  }</div><div class="line"><a name="l02577"></a><span class="lineno"> 2577</span>  HASH_ASET(ihash, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac55fae7f748afd3fc2533d0d7d06cf5a">INT2FIX</a>(-1), <a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac55fae7f748afd3fc2533d0d7d06cf5a">INT2FIX</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a9444c431b3cb1184e7523fc572f2c758">FIX2INT</a>(<a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a064e4a3a0f3f97b34dc187ea21bcc2f1">cv</a>) + 1));</div><div class="line"><a name="l02578"></a><span class="lineno"> 2578</span> </div><div class="line"><a name="l02579"></a><span class="lineno"> 2579</span>  <span class="comment">/* calc bigram */</span></div><div class="line"><a name="l02580"></a><span class="lineno"> 2580</span>  <span class="keywordflow">if</span> (prev_insn != -1) {</div><div class="line"><a name="l02581"></a><span class="lineno"> 2581</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> bi;</div><div class="line"><a name="l02582"></a><span class="lineno"> 2582</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> ary[2];</div><div class="line"><a name="l02583"></a><span class="lineno"> 2583</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a064e4a3a0f3f97b34dc187ea21bcc2f1">cv</a>;</div><div class="line"><a name="l02584"></a><span class="lineno"> 2584</span> </div><div class="line"><a name="l02585"></a><span class="lineno"> 2585</span>  ary[0] = <a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac55fae7f748afd3fc2533d0d7d06cf5a">INT2FIX</a>(prev_insn);</div><div class="line"><a name="l02586"></a><span class="lineno"> 2586</span>  ary[1] = <a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac55fae7f748afd3fc2533d0d7d06cf5a">INT2FIX</a>(insn);</div><div class="line"><a name="l02587"></a><span class="lineno"> 2587</span>  bi = <a class="code" href="../../dc/dcc/array_8c.html#a575a99eebf6ce65893ed83c2b6783d2d">rb_ary_new4</a>(2, &ary[0]);</div><div class="line"><a name="l02588"></a><span class="lineno"> 2588</span> </div><div class="line"><a name="l02589"></a><span class="lineno"> 2589</span>  uh = <a class="code" href="../../db/d2e/intern_8h.html#a17a81c1a7d754e5ab49fc4b4369b6c8c">rb_const_get</a>(<a class="code" href="../../de/de9/vm_8c.html#a600dc9ffdba414e21dacfe809c4a9ec8">rb_cRubyVM</a>, bigram_hash);</div><div class="line"><a name="l02590"></a><span class="lineno"> 2590</span>  <span class="keywordflow">if</span> ((<a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a064e4a3a0f3f97b34dc187ea21bcc2f1">cv</a> = <a class="code" href="../../d1/d04/hash_8c.html#ab7063832c7ed02351e87922a78e35c32">rb_hash_aref</a>(uh, bi)) == <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>) {</div><div class="line"><a name="l02591"></a><span class="lineno"> 2591</span>  <a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a064e4a3a0f3f97b34dc187ea21bcc2f1">cv</a> = <a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac55fae7f748afd3fc2533d0d7d06cf5a">INT2FIX</a>(0);</div><div class="line"><a name="l02592"></a><span class="lineno"> 2592</span>  }</div><div class="line"><a name="l02593"></a><span class="lineno"> 2593</span>  HASH_ASET(uh, bi, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac55fae7f748afd3fc2533d0d7d06cf5a">INT2FIX</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a9444c431b3cb1184e7523fc572f2c758">FIX2INT</a>(<a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a064e4a3a0f3f97b34dc187ea21bcc2f1">cv</a>) + 1));</div><div class="line"><a name="l02594"></a><span class="lineno"> 2594</span>  }</div><div class="line"><a name="l02595"></a><span class="lineno"> 2595</span>  prev_insn = insn;</div><div class="line"><a name="l02596"></a><span class="lineno"> 2596</span> }</div><div class="line"><a name="l02597"></a><span class="lineno"> 2597</span> </div><div class="line"><a name="l02598"></a><span class="lineno"> 2598</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l02599"></a><span class="lineno"> 2599</span> vm_analysis_operand(<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="l02600"></a><span class="lineno"> 2600</span> {</div><div class="line"><a name="l02601"></a><span class="lineno"> 2601</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#afa5b9137f051ac26d7ccc8824f178233">ID</a> usage_hash;</div><div class="line"><a name="l02602"></a><span class="lineno"> 2602</span> </div><div class="line"><a name="l02603"></a><span class="lineno"> 2603</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> uh;</div><div class="line"><a name="l02604"></a><span class="lineno"> 2604</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> ihash;</div><div class="line"><a name="l02605"></a><span class="lineno"> 2605</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> ophash;</div><div class="line"><a name="l02606"></a><span class="lineno"> 2606</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> valstr;</div><div class="line"><a name="l02607"></a><span class="lineno"> 2607</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a064e4a3a0f3f97b34dc187ea21bcc2f1">cv</a>;</div><div class="line"><a name="l02608"></a><span class="lineno"> 2608</span> </div><div class="line"><a name="l02609"></a><span class="lineno"> 2609</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aa50b9d5bc665eb5545f6857c89232161">CONST_ID</a>(usage_hash, <span class="stringliteral">"USAGE_ANALYSIS_INSN"</span>);</div><div class="line"><a name="l02610"></a><span class="lineno"> 2610</span> </div><div class="line"><a name="l02611"></a><span class="lineno"> 2611</span>  uh = <a class="code" href="../../db/d2e/intern_8h.html#a17a81c1a7d754e5ab49fc4b4369b6c8c">rb_const_get</a>(<a class="code" href="../../de/de9/vm_8c.html#a600dc9ffdba414e21dacfe809c4a9ec8">rb_cRubyVM</a>, usage_hash);</div><div class="line"><a name="l02612"></a><span class="lineno"> 2612</span>  <span class="keywordflow">if</span> ((ihash = <a class="code" href="../../d1/d04/hash_8c.html#ab7063832c7ed02351e87922a78e35c32">rb_hash_aref</a>(uh, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac55fae7f748afd3fc2533d0d7d06cf5a">INT2FIX</a>(insn))) == <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>) {</div><div class="line"><a name="l02613"></a><span class="lineno"> 2613</span>  ihash = <a class="code" href="../../d1/d04/hash_8c.html#af1da586524a3a1739fd5b91272037815">rb_hash_new</a>();</div><div class="line"><a name="l02614"></a><span class="lineno"> 2614</span>  HASH_ASET(uh, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac55fae7f748afd3fc2533d0d7d06cf5a">INT2FIX</a>(insn), ihash);</div><div class="line"><a name="l02615"></a><span class="lineno"> 2615</span>  }</div><div class="line"><a name="l02616"></a><span class="lineno"> 2616</span>  <span class="keywordflow">if</span> ((ophash = <a class="code" href="../../d1/d04/hash_8c.html#ab7063832c7ed02351e87922a78e35c32">rb_hash_aref</a>(ihash, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac55fae7f748afd3fc2533d0d7d06cf5a">INT2FIX</a>(n))) == <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>) {</div><div class="line"><a name="l02617"></a><span class="lineno"> 2617</span>  ophash = <a class="code" href="../../d1/d04/hash_8c.html#af1da586524a3a1739fd5b91272037815">rb_hash_new</a>();</div><div class="line"><a name="l02618"></a><span class="lineno"> 2618</span>  HASH_ASET(ihash, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac55fae7f748afd3fc2533d0d7d06cf5a">INT2FIX</a>(n), ophash);</div><div class="line"><a name="l02619"></a><span class="lineno"> 2619</span>  }</div><div class="line"><a name="l02620"></a><span class="lineno"> 2620</span>  <span class="comment">/* intern */</span></div><div class="line"><a name="l02621"></a><span class="lineno"> 2621</span>  valstr = <a class="code" href="../../de/de9/vm_8c.html#a9c6bc23a2822141f17f004af8160090f">insn_operand_intern</a>(<a class="code" href="../../d8/d32/vm__core_8h.html#aec678927729c3dcca12b2fae241158b0">GET_THREAD</a>()->cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">iseq</a>, insn, n, op, 0, 0, 0, 0);</div><div class="line"><a name="l02622"></a><span class="lineno"> 2622</span> </div><div class="line"><a name="l02623"></a><span class="lineno"> 2623</span>  <span class="comment">/* set count */</span></div><div class="line"><a name="l02624"></a><span class="lineno"> 2624</span>  <span class="keywordflow">if</span> ((<a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a064e4a3a0f3f97b34dc187ea21bcc2f1">cv</a> = <a class="code" href="../../d1/d04/hash_8c.html#ab7063832c7ed02351e87922a78e35c32">rb_hash_aref</a>(ophash, valstr)) == <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>) {</div><div class="line"><a name="l02625"></a><span class="lineno"> 2625</span>  <a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a064e4a3a0f3f97b34dc187ea21bcc2f1">cv</a> = <a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac55fae7f748afd3fc2533d0d7d06cf5a">INT2FIX</a>(0);</div><div class="line"><a name="l02626"></a><span class="lineno"> 2626</span>  }</div><div class="line"><a name="l02627"></a><span class="lineno"> 2627</span>  HASH_ASET(ophash, valstr, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac55fae7f748afd3fc2533d0d7d06cf5a">INT2FIX</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a9444c431b3cb1184e7523fc572f2c758">FIX2INT</a>(<a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a064e4a3a0f3f97b34dc187ea21bcc2f1">cv</a>) + 1));</div><div class="line"><a name="l02628"></a><span class="lineno"> 2628</span> }</div><div class="line"><a name="l02629"></a><span class="lineno"> 2629</span> </div><div class="line"><a name="l02630"></a><span class="lineno"> 2630</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l02631"></a><span class="lineno"> 2631</span> vm_analysis_register(<span class="keywordtype">int</span> reg, <span class="keywordtype">int</span> isset)</div><div class="line"><a name="l02632"></a><span class="lineno"> 2632</span> {</div><div class="line"><a name="l02633"></a><span class="lineno"> 2633</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#afa5b9137f051ac26d7ccc8824f178233">ID</a> usage_hash;</div><div class="line"><a name="l02634"></a><span class="lineno"> 2634</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> uh;</div><div class="line"><a name="l02635"></a><span class="lineno"> 2635</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> valstr;</div><div class="line"><a name="l02636"></a><span class="lineno"> 2636</span>  <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span> regstrs[][5] = {</div><div class="line"><a name="l02637"></a><span class="lineno"> 2637</span>  <span class="stringliteral">"pc"</span>, <span class="comment">/* 0 */</span></div><div class="line"><a name="l02638"></a><span class="lineno"> 2638</span>  <span class="stringliteral">"sp"</span>, <span class="comment">/* 1 */</span></div><div class="line"><a name="l02639"></a><span class="lineno"> 2639</span>  <span class="stringliteral">"ep"</span>, <span class="comment">/* 2 */</span></div><div class="line"><a name="l02640"></a><span class="lineno"> 2640</span>  <span class="stringliteral">"cfp"</span>, <span class="comment">/* 3 */</span></div><div class="line"><a name="l02641"></a><span class="lineno"> 2641</span>  <span class="stringliteral">"self"</span>, <span class="comment">/* 4 */</span></div><div class="line"><a name="l02642"></a><span class="lineno"> 2642</span>  <span class="stringliteral">"iseq"</span>, <span class="comment">/* 5 */</span></div><div class="line"><a name="l02643"></a><span class="lineno"> 2643</span>  };</div><div class="line"><a name="l02644"></a><span class="lineno"> 2644</span>  <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span> getsetstr[][4] = {</div><div class="line"><a name="l02645"></a><span class="lineno"> 2645</span>  <span class="stringliteral">"get"</span>,</div><div class="line"><a name="l02646"></a><span class="lineno"> 2646</span>  <span class="stringliteral">"set"</span>,</div><div class="line"><a name="l02647"></a><span class="lineno"> 2647</span>  };</div><div class="line"><a name="l02648"></a><span class="lineno"> 2648</span>  <span class="keyword">static</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> syms[<span class="keyword">sizeof</span>(regstrs) / <span class="keyword">sizeof</span>(regstrs[0])][2];</div><div class="line"><a name="l02649"></a><span class="lineno"> 2649</span> </div><div class="line"><a name="l02650"></a><span class="lineno"> 2650</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a064e4a3a0f3f97b34dc187ea21bcc2f1">cv</a>;</div><div class="line"><a name="l02651"></a><span class="lineno"> 2651</span> </div><div class="line"><a name="l02652"></a><span class="lineno"> 2652</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aa50b9d5bc665eb5545f6857c89232161">CONST_ID</a>(usage_hash, <span class="stringliteral">"USAGE_ANALYSIS_REGS"</span>);</div><div class="line"><a name="l02653"></a><span class="lineno"> 2653</span>  <span class="keywordflow">if</span> (syms[0] == 0) {</div><div class="line"><a name="l02654"></a><span class="lineno"> 2654</span>  <span class="keywordtype">char</span> buff[0x10];</div><div class="line"><a name="l02655"></a><span class="lineno"> 2655</span>  <span class="keywordtype">int</span> <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>;</div><div class="line"><a name="l02656"></a><span class="lineno"> 2656</span> </div><div class="line"><a name="l02657"></a><span class="lineno"> 2657</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> < (int)(<span class="keyword">sizeof</span>(regstrs) / <span class="keyword">sizeof</span>(regstrs[0])); <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>++) {</div><div class="line"><a name="l02658"></a><span class="lineno"> 2658</span>  <span class="keywordtype">int</span> j;</div><div class="line"><a name="l02659"></a><span class="lineno"> 2659</span>  <span class="keywordflow">for</span> (j = 0; j < 2; j++) {</div><div class="line"><a name="l02660"></a><span class="lineno"> 2660</span>  <a class="code" href="../../d7/d72/subst_8h.html#aa367b75c5aed883fef5befbdf04835a4">snprintf</a>(buff, 0x10, <span class="stringliteral">"%d %s %-4s"</span>, <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>, getsetstr[j], regstrs[<a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>]);</div><div class="line"><a name="l02661"></a><span class="lineno"> 2661</span>  syms[<a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>][j] = <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a4ef7b7ff907d043bd989a7e73e1da420">ID2SYM</a>(<a class="code" href="../../dc/dcc/array_8c.html#a9cfa42d4b79c89d68c53be8b2150a503">rb_intern</a>(buff));</div><div class="line"><a name="l02662"></a><span class="lineno"> 2662</span>  }</div><div class="line"><a name="l02663"></a><span class="lineno"> 2663</span>  }</div><div class="line"><a name="l02664"></a><span class="lineno"> 2664</span>  }</div><div class="line"><a name="l02665"></a><span class="lineno"> 2665</span>  valstr = syms[reg][isset];</div><div class="line"><a name="l02666"></a><span class="lineno"> 2666</span> </div><div class="line"><a name="l02667"></a><span class="lineno"> 2667</span>  uh = <a class="code" href="../../db/d2e/intern_8h.html#a17a81c1a7d754e5ab49fc4b4369b6c8c">rb_const_get</a>(<a class="code" href="../../de/de9/vm_8c.html#a600dc9ffdba414e21dacfe809c4a9ec8">rb_cRubyVM</a>, usage_hash);</div><div class="line"><a name="l02668"></a><span class="lineno"> 2668</span>  <span class="keywordflow">if</span> ((<a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a064e4a3a0f3f97b34dc187ea21bcc2f1">cv</a> = <a class="code" href="../../d1/d04/hash_8c.html#ab7063832c7ed02351e87922a78e35c32">rb_hash_aref</a>(uh, valstr)) == <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>) {</div><div class="line"><a name="l02669"></a><span class="lineno"> 2669</span>  <a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a064e4a3a0f3f97b34dc187ea21bcc2f1">cv</a> = <a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac55fae7f748afd3fc2533d0d7d06cf5a">INT2FIX</a>(0);</div><div class="line"><a name="l02670"></a><span class="lineno"> 2670</span>  }</div><div class="line"><a name="l02671"></a><span class="lineno"> 2671</span>  HASH_ASET(uh, valstr, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac55fae7f748afd3fc2533d0d7d06cf5a">INT2FIX</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a9444c431b3cb1184e7523fc572f2c758">FIX2INT</a>(<a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a064e4a3a0f3f97b34dc187ea21bcc2f1">cv</a>) + 1));</div><div class="line"><a name="l02672"></a><span class="lineno"> 2672</span> }</div><div class="line"><a name="l02673"></a><span class="lineno"> 2673</span> </div><div class="line"><a name="l02674"></a><span class="lineno"> 2674</span> <span class="preprocessor">#undef HASH_ASET</span></div><div class="line"><a name="l02675"></a><span class="lineno"> 2675</span> </div><div class="line"><a name="l02676"></a><span class="lineno"> 2676</span> void (*<a class="code" href="../../de/de9/vm_8c.html#a1c1977fab00d30445b6cfd94c99ddb37">ruby_vm_collect_usage_func_insn</a>)(<span class="keywordtype">int</span> insn) = vm_analysis_insn;</div><div class="line"><a name="l02677"></a><span class="lineno"> 2677</span> void (*<a class="code" href="../../de/de9/vm_8c.html#a5e44d266fc8113c18930ceec5490e283">ruby_vm_collect_usage_func_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) = vm_analysis_operand;</div><div class="line"><a name="l02678"></a><span class="lineno"> 2678</span> void (*<a class="code" href="../../de/de9/vm_8c.html#a8db145407f3daced782ecf5b59628e24">ruby_vm_collect_usage_func_register</a>)(<span class="keywordtype">int</span> reg, <span class="keywordtype">int</span> isset) = vm_analysis_register;</div><div class="line"><a name="l02679"></a><span class="lineno"> 2679</span> </div><div class="line"><a name="l02680"></a><span class="lineno"> 2680</span> <span class="comment">/* :nodoc: */</span></div><div class="line"><a name="l02681"></a><span class="lineno"> 2681</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="l02682"></a><span class="lineno"> 2682</span> usage_analysis_insn_stop(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <span class="keyword">self</span>)</div><div class="line"><a name="l02683"></a><span class="lineno"> 2683</span> {</div><div class="line"><a name="l02684"></a><span class="lineno"> 2684</span>  <a class="code" href="../../de/de9/vm_8c.html#a1c1977fab00d30445b6cfd94c99ddb37">ruby_vm_collect_usage_func_insn</a> = 0;</div><div class="line"><a name="l02685"></a><span class="lineno"> 2685</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="l02686"></a><span class="lineno"> 2686</span> }</div><div class="line"><a name="l02687"></a><span class="lineno"> 2687</span> </div><div class="line"><a name="l02688"></a><span class="lineno"> 2688</span> <span class="comment">/* :nodoc: */</span></div><div class="line"><a name="l02689"></a><span class="lineno"> 2689</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="l02690"></a><span class="lineno"> 2690</span> usage_analysis_operand_stop(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <span class="keyword">self</span>)</div><div class="line"><a name="l02691"></a><span class="lineno"> 2691</span> {</div><div class="line"><a name="l02692"></a><span class="lineno"> 2692</span>  <a class="code" href="../../de/de9/vm_8c.html#a5e44d266fc8113c18930ceec5490e283">ruby_vm_collect_usage_func_operand</a> = 0;</div><div class="line"><a name="l02693"></a><span class="lineno"> 2693</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="l02694"></a><span class="lineno"> 2694</span> }</div><div class="line"><a name="l02695"></a><span class="lineno"> 2695</span> </div><div class="line"><a name="l02696"></a><span class="lineno"> 2696</span> <span class="comment">/* :nodoc: */</span></div><div class="line"><a name="l02697"></a><span class="lineno"> 2697</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="l02698"></a><span class="lineno"> 2698</span> usage_analysis_register_stop(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <span class="keyword">self</span>)</div><div class="line"><a name="l02699"></a><span class="lineno"> 2699</span> {</div><div class="line"><a name="l02700"></a><span class="lineno"> 2700</span>  <a class="code" href="../../de/de9/vm_8c.html#a8db145407f3daced782ecf5b59628e24">ruby_vm_collect_usage_func_register</a> = 0;</div><div class="line"><a name="l02701"></a><span class="lineno"> 2701</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="l02702"></a><span class="lineno"> 2702</span> }</div><div class="line"><a name="l02703"></a><span class="lineno"> 2703</span> </div><div class="line"><a name="l02704"></a><span class="lineno"> 2704</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l02705"></a><span class="lineno"> 2705</span> </div><div class="line"><a name="l02706"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a1c1977fab00d30445b6cfd94c99ddb37"> 2706</a></span> void (*<a class="code" href="../../de/de9/vm_8c.html#a1c1977fab00d30445b6cfd94c99ddb37">ruby_vm_collect_usage_func_insn</a>)(<span class="keywordtype">int</span> insn) = <a class="code" href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div><div class="line"><a name="l02707"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a5e44d266fc8113c18930ceec5490e283"> 2707</a></span> void (*<a class="code" href="../../de/de9/vm_8c.html#a5e44d266fc8113c18930ceec5490e283">ruby_vm_collect_usage_func_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) = <a class="code" href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div><div class="line"><a name="l02708"></a><span class="lineno"><a class="line" href="../../de/de9/vm_8c.html#a8db145407f3daced782ecf5b59628e24"> 2708</a></span> void (*<a class="code" href="../../de/de9/vm_8c.html#a8db145407f3daced782ecf5b59628e24">ruby_vm_collect_usage_func_register</a>)(<span class="keywordtype">int</span> reg, <span class="keywordtype">int</span> isset) = <a class="code" href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div><div class="line"><a name="l02709"></a><span class="lineno"> 2709</span> </div><div class="line"><a name="l02710"></a><span class="lineno"> 2710</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l02711"></a><span class="lineno"> 2711</span> </div><div class="line"><a name="l02712"></a><span class="lineno"> 2712</span> <span class="preprocessor">#if VM_COLLECT_USAGE_DETAILS</span></div><div class="line"><a name="l02713"></a><span class="lineno"> 2713</span> <span class="comment">/* @param insn instruction number */</span></div><div class="line"><a name="l02714"></a><span class="lineno"> 2714</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l02715"></a><span class="lineno"> 2715</span> vm_collect_usage_insn(<span class="keywordtype">int</span> insn)</div><div class="line"><a name="l02716"></a><span class="lineno"> 2716</span> {</div><div class="line"><a name="l02717"></a><span class="lineno"> 2717</span>  <span class="keywordflow">if</span> (RUBY_DTRACE_INSN_ENABLED()) {</div><div class="line"><a name="l02718"></a><span class="lineno"> 2718</span>  RUBY_DTRACE_INSN(<a class="code" href="../../d2/d47/compile_8c.html#a49bc43de3793996f42bf9a5c79230838">rb_insns_name</a>(insn));</div><div class="line"><a name="l02719"></a><span class="lineno"> 2719</span>  }</div><div class="line"><a name="l02720"></a><span class="lineno"> 2720</span>  <span class="keywordflow">if</span> (<a class="code" href="../../de/de9/vm_8c.html#a1c1977fab00d30445b6cfd94c99ddb37">ruby_vm_collect_usage_func_insn</a>)</div><div class="line"><a name="l02721"></a><span class="lineno"> 2721</span>  (*ruby_vm_collect_usage_func_insn)(insn);</div><div class="line"><a name="l02722"></a><span class="lineno"> 2722</span> }</div><div class="line"><a name="l02723"></a><span class="lineno"> 2723</span> </div><div class="line"><a name="l02724"></a><span class="lineno"> 2724</span> <span class="comment">/* @param insn instruction number</span></div><div class="line"><a name="l02725"></a><span class="lineno"> 2725</span> <span class="comment"> * @param n n-th operand</span></div><div class="line"><a name="l02726"></a><span class="lineno"> 2726</span> <span class="comment"> * @param op operand value</span></div><div class="line"><a name="l02727"></a><span class="lineno"> 2727</span> <span class="comment"> */</span></div><div class="line"><a name="l02728"></a><span class="lineno"> 2728</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l02729"></a><span class="lineno"> 2729</span> vm_collect_usage_operand(<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="l02730"></a><span class="lineno"> 2730</span> {</div><div class="line"><a name="l02731"></a><span class="lineno"> 2731</span>  <span class="keywordflow">if</span> (RUBY_DTRACE_INSN_OPERAND_ENABLED()) {</div><div class="line"><a name="l02732"></a><span class="lineno"> 2732</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> valstr;</div><div class="line"><a name="l02733"></a><span class="lineno"> 2733</span> </div><div class="line"><a name="l02734"></a><span class="lineno"> 2734</span>  valstr = <a class="code" href="../../de/de9/vm_8c.html#a9c6bc23a2822141f17f004af8160090f">insn_operand_intern</a>(<a class="code" href="../../d8/d32/vm__core_8h.html#aec678927729c3dcca12b2fae241158b0">GET_THREAD</a>()->cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">iseq</a>, insn, n, op, 0, 0, 0, 0);</div><div class="line"><a name="l02735"></a><span class="lineno"> 2735</span> </div><div class="line"><a name="l02736"></a><span class="lineno"> 2736</span>  RUBY_DTRACE_INSN_OPERAND(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3f0e4e2b6d073369cc1c2ddde00b13bb">RSTRING_PTR</a>(valstr), <a class="code" href="../../d2/d47/compile_8c.html#a49bc43de3793996f42bf9a5c79230838">rb_insns_name</a>(insn));</div><div class="line"><a name="l02737"></a><span class="lineno"> 2737</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a8aa2ce26d266baf56c9068a693d6073e">RB_GC_GUARD</a>(valstr);</div><div class="line"><a name="l02738"></a><span class="lineno"> 2738</span>  }</div><div class="line"><a name="l02739"></a><span class="lineno"> 2739</span>  <span class="keywordflow">if</span> (<a class="code" href="../../de/de9/vm_8c.html#a5e44d266fc8113c18930ceec5490e283">ruby_vm_collect_usage_func_operand</a>)</div><div class="line"><a name="l02740"></a><span class="lineno"> 2740</span>  (*ruby_vm_collect_usage_func_operand)(insn, n, op);</div><div class="line"><a name="l02741"></a><span class="lineno"> 2741</span> }</div><div class="line"><a name="l02742"></a><span class="lineno"> 2742</span> </div><div class="line"><a name="l02743"></a><span class="lineno"> 2743</span> <span class="comment">/* @param reg register id. see code of vm_analysis_register() */</span></div><div class="line"><a name="l02744"></a><span class="lineno"> 2744</span> <span class="comment">/* @param iseset 0: read, 1: write */</span></div><div class="line"><a name="l02745"></a><span class="lineno"> 2745</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l02746"></a><span class="lineno"> 2746</span> vm_collect_usage_register(<span class="keywordtype">int</span> reg, <span class="keywordtype">int</span> isset)</div><div class="line"><a name="l02747"></a><span class="lineno"> 2747</span> {</div><div class="line"><a name="l02748"></a><span class="lineno"> 2748</span>  <span class="keywordflow">if</span> (<a class="code" href="../../de/de9/vm_8c.html#a8db145407f3daced782ecf5b59628e24">ruby_vm_collect_usage_func_register</a>)</div><div class="line"><a name="l02749"></a><span class="lineno"> 2749</span>  (*ruby_vm_collect_usage_func_register)(reg, isset);</div><div class="line"><a name="l02750"></a><span class="lineno"> 2750</span> }</div><div class="line"><a name="l02751"></a><span class="lineno"> 2751</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l02752"></a><span class="lineno"> 2752</span> </div><div class="ttc" id="ruby_2ruby_8h_html_a7d36c9c3e9faa34c27eb7f2eb9c874a8"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#a7d36c9c3e9faa34c27eb7f2eb9c874a8">rb_cString</a></div><div class="ttdeci">RUBY_EXTERN VALUE rb_cString</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l01456">ruby.h:1456</a></div></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#l02218">variable.c:2218</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#l00674">vm_core.h:674</a></div></div> <div class="ttc" id="vm__core_8h_html_a2fe36ef1c5e499d3485a19c363df0810"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a2fe36ef1c5e499d3485a19c363df0810">RUBY_VM_THREAD_MACHINE_STACK_SIZE</a></div><div class="ttdeci">#define RUBY_VM_THREAD_MACHINE_STACK_SIZE</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00413">vm_core.h:413</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#l00726">vm_core.h:726</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#l00500">vm_core.h:500</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_a1fbb05e2595a3d4da7e3ca84bc6de965"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#a1fbb05e2595a3d4da7e3ca84bc6de965">RUBY_EVENT_B_RETURN</a></div><div class="ttdeci">#define RUBY_EVENT_B_RETURN</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l01593">ruby.h:1593</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_ac9aadbc1e9c456506a4d7eef5cdc787e"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#ac9aadbc1e9c456506a4d7eef5cdc787e">T_SYMBOL</a></div><div class="ttdeci">#define T_SYMBOL</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00502">ruby.h:502</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#l00029">eval.c:29</a></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#l00682">vm_core.h:682</a></div></div> <div class="ttc" id="vm_8c_html_a6fa1a9214c7c203be7bf2d80bbfd9ba3"><div class="ttname"><a href="../../de/de9/vm_8c.html#a6fa1a9214c7c203be7bf2d80bbfd9ba3">core_hash_merge</a></div><div class="ttdeci">static VALUE core_hash_merge(VALUE hash, long argc, const VALUE *argv)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l02194">vm.c:2194</a></div></div> <div class="ttc" id="vm_8c_html_a9c6bc23a2822141f17f004af8160090f"><div class="ttname"><a href="../../de/de9/vm_8c.html#a9c6bc23a2822141f17f004af8160090f">insn_operand_intern</a></div><div class="ttdeci">VALUE insn_operand_intern(rb_iseq_t *iseq, VALUE insn, int op_no, VALUE op, int len, size_t pos, VALUE *pnop, VALUE child)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d74/iseq_8c_source.html#l01138">iseq.c:1138</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#l00495">vm_core.h:495</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#l00111">vm.c:111</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#l01926">vm.c:1926</a></div></div> <div class="ttc" id="structrb__vm__struct_html_a747b2d6311d14f34855a54d031006d61"><div class="ttname"><a href="../../db/d74/structrb__vm__struct.html#a747b2d6311d14f34855a54d031006d61">rb_vm_struct::expanded_load_path</a></div><div class="ttdeci">VALUE expanded_load_path</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00364">vm_core.h:364</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#l00898">vm.c:898</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#l00084">proc.c:84</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#l00614">vm_dump.c:614</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="vm_8c_html_a8c23b7c0fe49c0aa180cab5e227da443"><div class="ttname"><a href="../../de/de9/vm_8c.html#a8c23b7c0fe49c0aa180cab5e227da443">rb_vm_check_redefinition_by_prepend</a></div><div class="ttdeci">void rb_vm_check_redefinition_by_prepend(VALUE klass)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01084">vm.c:1084</a></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#l00088">id.h:88</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#l00866">array.c:866</a></div></div> <div class="ttc" id="array_8c_html_a575a99eebf6ce65893ed83c2b6783d2d"><div class="ttname"><a href="../../dc/dcc/array_8c.html#a575a99eebf6ce65893ed83c2b6783d2d">rb_ary_new4</a></div><div class="ttdeci">VALUE rb_ary_new4(long n, const VALUE *elts)</div><div class="ttdef"><b>Definition:</b> <a href="../../dc/dcc/array_8c_source.html#l00451">array.c:451</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#l00936">vm.c:936</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_addbfbe89560ccd54c06ec409e9f445b6"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#addbfbe89560ccd54c06ec409e9f445b6">rb_cFloat</a></div><div class="ttdeci">RUBY_EXTERN VALUE rb_cFloat</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l01439">ruby.h:1439</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_a0068ed01a16efbb8740e1b0c295b672e"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#a0068ed01a16efbb8740e1b0c295b672e">RARRAY_LEN</a></div><div class="ttdeci">#define RARRAY_LEN(a)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00899">ruby.h:899</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#l01587">ruby.h:1587</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#l00295">error.c:295</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#l00077">method.h:77</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#l01698">vm.c:1698</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#l00394">vm_core.h:394</a></div></div> <div class="ttc" id="vm_8c_html_a1feafff695f882b2123508c367df6250"><div class="ttname"><a href="../../de/de9/vm_8c.html#a1feafff695f882b2123508c367df6250">rb_vm_get_binding_creatable_next_cfp</a></div><div class="ttdeci">rb_control_frame_t * rb_vm_get_binding_creatable_next_cfp(rb_thread_t *th, const rb_control_frame_t *cfp)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00189">vm.c:189</a></div></div> <div class="ttc" id="vm_8c_html_a1c1977fab00d30445b6cfd94c99ddb37"><div class="ttname"><a href="../../de/de9/vm_8c.html#a1c1977fab00d30445b6cfd94c99ddb37">ruby_vm_collect_usage_func_insn</a></div><div class="ttdeci">void(* ruby_vm_collect_usage_func_insn)(int insn)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l02706">vm.c:2706</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#l00094">vm.c:94</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#l00165">eval_intern.h:165</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#l01799">vm.c:1799</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#l02348">gc.c:2348</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#l00798">vm_core.h:798</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#l00344">vm_core.h:344</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#l00213">vm.c:213</a></div></div> <div class="ttc" id="probes__helper_8h_html_ae7c6117146574ce9742d8fa3b16e8863"><div class="ttname"><a href="../../d6/d27/probes__helper_8h.html#ae7c6117146574ce9742d8fa3b16e8863">RUBY_DTRACE_METHOD_RETURN_HOOK</a></div><div class="ttdeci">#define RUBY_DTRACE_METHOD_RETURN_HOOK(th, klass, id)</div><div class="ttdef"><b>Definition:</b> <a href="../../d6/d27/probes__helper_8h_source.html#l00058">probes_helper.h:58</a></div></div> <div class="ttc" id="iseq_8c_html_a01cc67dd00d7e8d4e02a4b0d7fe818f0"><div class="ttname"><a href="../../dd/d74/iseq_8c.html#a01cc67dd00d7e8d4e02a4b0d7fe818f0">rb_iseq_new</a></div><div class="ttdeci">VALUE rb_iseq_new(NODE *node, VALUE name, VALUE path, VALUE absolute_path, VALUE parent, enum iseq_type type)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d74/iseq_8c_source.html#l00410">iseq.c:410</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#l00389">gc.c:389</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#l00784">win32ole.c:784</a></div></div> <div class="ttc" id="vm__backtrace_8c_html_a70289cbb34babceed6243d9471e70e5f"><div class="ttname"><a href="../../d8/d73/vm__backtrace_8c.html#a70289cbb34babceed6243d9471e70e5f">rb_vm_get_sourceline</a></div><div class="ttdeci">int rb_vm_get_sourceline(const rb_control_frame_t *cfp)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d73/vm__backtrace_8c_source.html#l00033">vm_backtrace.c:33</a></div></div> <div class="ttc" id="vm__core_8h_html_a9405c55bec05419bc0ed7ae4d631e091"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a9405c55bec05419bc0ed7ae4d631e091">VM_ENVVAL_PREV_EP_PTR</a></div><div class="ttdeci">#define VM_ENVVAL_PREV_EP_PTR(v)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00779">vm_core.h:779</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#l01585">ruby.h:1585</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="vm__core_8h_html_abd23406d55d05ea192a6cdf93ae2ea32"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#abd23406d55d05ea192a6cdf93ae2ea32">VM_FRAME_FLAG_FINISH</a></div><div class="ttdeci">#define VM_FRAME_FLAG_FINISH</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00742">vm_core.h:742</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#l00372">vm_core.h:372</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#l00579">vm_core.h:579</a></div></div> <div class="ttc" id="st_8h_html_a0c6a172fd99de7928916e65034ed8b1fa04b939c166d4baa471909eb224d5fed3"><div class="ttname"><a href="../../dd/d24/st_8h.html#a0c6a172fd99de7928916e65034ed8b1fa04b939c166d4baa471909eb224d5fed3">ST_STOP</a></div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d24/st_8h_source.html#l00108">st.h:108</a></div></div> <div class="ttc" id="vm_8c_html_a35fc60c8886c35d06adbe4d7c89e2085"><div class="ttname"><a href="../../de/de9/vm_8c.html#a35fc60c8886c35d06adbe4d7c89e2085">m_core_hash_merge_ary</a></div><div class="ttdeci">static VALUE m_core_hash_merge_ary(VALUE self, VALUE hash, VALUE ary)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l02217">vm.c:2217</a></div></div> <div class="ttc" id="structrb__control__frame__struct_html_acbc4e3a67849cb96ff2b6e4cdc1f7457"><div class="ttname"><a href="../../de/dc6/structrb__control__frame__struct.html#acbc4e3a67849cb96ff2b6e4cdc1f7457">rb_control_frame_struct::klass</a></div><div class="ttdeci">VALUE klass</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00431">vm_core.h:431</a></div></div> <div class="ttc" id="vm__core_8h_html_af2a793a1c756c8b552d8d1f897e63800"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#af2a793a1c756c8b552d8d1f897e63800">VM_FRAME_TYPE_FINISH_P</a></div><div class="ttdeci">#define VM_FRAME_TYPE_FINISH_P(cfp)</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_a3c036fe8ef4e1a83cc704014ee4cabf6"><div class="ttname"><a href="../../de/de9/vm_8c.html#a3c036fe8ef4e1a83cc704014ee4cabf6">VM_CF_PREV_EP</a></div><div class="ttdeci">static VALUE * VM_CF_PREV_EP(rb_control_frame_t *cfp)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00048">vm.c:48</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#l00068">iseq.h:68</a></div></div> <div class="ttc" id="vm_8c_html_a15b74bb00bea378aded269afb419ba1f"><div class="ttname"><a href="../../de/de9/vm_8c.html#a15b74bb00bea378aded269afb419ba1f">vm_rewrite_ep_in_errinfo</a></div><div class="ttdeci">static void vm_rewrite_ep_in_errinfo(rb_thread_t *th)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00562">vm.c:562</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#l00729">vm_core.h:729</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#l00095">vm.c:95</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#l00493">vm_method.c:493</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#l01497">class.c:1497</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#l00789">vm_core.h:789</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#l00261">vm_insnhelper.h:261</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#l00061">iseq.h:61</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#l00665">vm_core.h:665</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#l00744">vm.c:744</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#l00514">vm_core.h:514</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#l00219">gc.c:219</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#l00360">vm_core.h:360</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#l00799">vm_core.h:799</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#l00177">eval_intern.h:177</a></div></div> <div class="ttc" id="vm__core_8h_html_a1a0e8ae11d1877b2d2448d5c66c65ee9"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a1a0e8ae11d1877b2d2448d5c66c65ee9">RUBY_VM_FIBER_MACHINE_STACK_SIZE_MIN</a></div><div class="ttdeci">#define RUBY_VM_FIBER_MACHINE_STACK_SIZE_MIN</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00419">vm_core.h:419</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#l01618">vm.c:1618</a></div></div> <div class="ttc" id="vm__insnhelper_8h_html_af968b58a40031c1299287b5245f020ac"><div class="ttname"><a href="../../d2/d5f/vm__insnhelper_8h.html#af968b58a40031c1299287b5245f020ac">FLOAT_REDEFINED_OP_FLAG</a></div><div class="ttdeci">#define FLOAT_REDEFINED_OP_FLAG</div><div class="ttdef"><b>Definition:</b> <a href="../../d2/d5f/vm__insnhelper_8h_source.html#l00233">vm_insnhelper.h:233</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#l00448">ruby.h:448</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#l01588">vm.c:1588</a></div></div> <div class="ttc" id="vm_8c_html_ac5737294cca8cab5c302b2849ea8b98e"><div class="ttname"><a href="../../de/de9/vm_8c.html#ac5737294cca8cab5c302b2849ea8b98e">rb_vm_pop_cfunc_frame</a></div><div class="ttdeci">void rb_vm_pop_cfunc_frame(void)</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="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#l00434">ruby.h:434</a></div></div> <div class="ttc" id="st_8h_html_acdc42c01229b7537ea5a4c6965c7e47a"><div class="ttname"><a href="../../dd/d24/st_8h.html#acdc42c01229b7537ea5a4c6965c7e47a">st_insert</a></div><div class="ttdeci">int st_insert(st_table *, st_data_t, st_data_t)</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#l00346">vm.c:346</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#l01608">vm.c:1608</a></div></div> <div class="ttc" id="structrb__vm__struct_html_acde63e5b7aa770d8e02b2318400dd7d1"><div class="ttname"><a href="../../db/d74/structrb__vm__struct.html#acde63e5b7aa770d8e02b2318400dd7d1">rb_vm_struct::loaded_features_index</a></div><div class="ttdeci">struct st_table * loaded_features_index</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00367">vm_core.h:367</a></div></div> <div class="ttc" id="hash_8c_html_a78f041cb2cf763a6eba5be64e2ee6870"><div class="ttname"><a href="../../d1/d04/hash_8c.html#a78f041cb2cf763a6eba5be64e2ee6870">rb_cHash</a></div><div class="ttdeci">VALUE rb_cHash</div><div class="ttdef"><b>Definition:</b> <a href="../../d1/d04/hash_8c_source.html#l00041">hash.c:41</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#l00446">vm_core.h:446</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#l00164">eval_intern.h:164</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#l00379">vm.c:379</a></div></div> <div class="ttc" id="structrb__vm__struct_html_aeb796cf31496bc3c65874b05eb2e7191"><div class="ttname"><a href="../../db/d74/structrb__vm__struct.html#aeb796cf31496bc3c65874b05eb2e7191">rb_vm_struct::default_params</a></div><div class="ttdeci">struct rb_vm_struct::@131 default_params</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#l02093">vm_insnhelper.c:2093</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#l01016">ruby.h:1016</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#l02156">vm.c:2156</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#l01400">cont.c:1400</a></div></div> <div class="ttc" id="structrb__thread__struct_html_a979a16137dbb149acf7a8fd194946a24"><div class="ttname"><a href="../../d2/d66/structrb__thread__struct.html#a979a16137dbb149acf7a8fd194946a24">rb_thread_struct::pending_interrupt_mask_stack</a></div><div class="ttdeci">VALUE pending_interrupt_mask_stack</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00552">vm_core.h:552</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#l00181">eval_intern.h:181</a></div></div> <div class="ttc" id="vm_8c_html_a5e44d266fc8113c18930ceec5490e283"><div class="ttname"><a href="../../de/de9/vm_8c.html#a5e44d266fc8113c18930ceec5490e283">ruby_vm_collect_usage_func_operand</a></div><div class="ttdeci">void(* ruby_vm_collect_usage_func_operand)(int insn, int n, VALUE op)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l02707">vm.c:2707</a></div></div> <div class="ttc" id="probes_8h_html"><div class="ttname"><a href="../../d8/dc4/probes_8h.html">probes.h</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#l00108">st.h:108</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#l05542">compile.c:5542</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="structrb__vm__struct_html_a55ace7137cacee88d6675b5dbf57bf9a"><div class="ttname"><a href="../../db/d74/structrb__vm__struct.html#a55ace7137cacee88d6675b5dbf57bf9a">rb_vm_struct::defined_strings</a></div><div class="ttdeci">VALUE * defined_strings</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00396">vm_core.h:396</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#l00922">vm.c:922</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#l00442">vm_core.h:442</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#l00355">vm_core.h:355</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#l00046">method.h:46</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#l00516">error.c:516</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#l02531">vm.c:2531</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#l00144">eval_intern.h:144</a></div></div> <div class="ttc" id="structrb__iseq__location__struct_html_a7021da5c8b09129a4212e76cff24db02"><div class="ttname"><a href="../../dd/dc8/structrb__iseq__location__struct.html#a7021da5c8b09129a4212e76cff24db02">rb_iseq_location_struct::path</a></div><div class="ttdeci">VALUE path</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00187">vm_core.h:187</a></div></div> <div class="ttc" id="structrb__control__frame__struct_html_a0e900de65ec08ba64df1125350b4071b"><div class="ttname"><a href="../../de/dc6/structrb__control__frame__struct.html#a0e900de65ec08ba64df1125350b4071b">rb_control_frame_struct::sp</a></div><div class="ttdeci">VALUE * sp</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_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#l00299">vm.c:299</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#l00089">id.h:89</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#l00508">vm_core.h:508</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#l00822">array.c:822</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#l00108">ossl_ssl.c:108</a></div></div> <div class="ttc" id="st_8h_html_acb004847ef312373d65bfb0d1a21c5b3"><div class="ttname"><a href="../../dd/d24/st_8h.html#acb004847ef312373d65bfb0d1a21c5b3">st_free_table</a></div><div class="ttdeci">void st_free_table(st_table *)</div><div class="ttdef"><b>Definition:</b> <a href="../../d4/d71/st_8c_source.html#l00334">st.c:334</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_a5a8a0a36dbacb1ec73a860b8fd6a61a1"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#a5a8a0a36dbacb1ec73a860b8fd6a61a1">SYM2ID</a></div><div class="ttdeci">#define SYM2ID(x)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00364">ruby.h:364</a></div></div> <div class="ttc" id="vm__core_8h_html_a7ed91548b5889d3bc60890748089f77e"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a7ed91548b5889d3bc60890748089f77e">RUBY_VM_SIZE_ALIGN</a></div><div class="ttdeci">#define RUBY_VM_SIZE_ALIGN</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00409">vm_core.h:409</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#l00346">vm_core.h:346</a></div></div> <div class="ttc" id="structrb__vm__struct_html_a7be940762c98b238079fc794a680a9ae"><div class="ttname"><a href="../../db/d74/structrb__vm__struct.html#a7be940762c98b238079fc794a680a9ae">rb_vm_struct::fiber_machine_stack_size</a></div><div class="ttdeci">size_t fiber_machine_stack_size</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="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#l00465">array.c:465</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#l00830">vm.c:830</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#l00381">vm_core.h:381</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#l00802">vm_core.h:802</a></div></div> <div class="ttc" id="vm__core_8h_html_a64ed5818722f4cd9c207333766951ef8"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a64ed5818722f4cd9c207333766951ef8">VM_ENVVAL_BLOCK_PTR</a></div><div class="ttdeci">#define VM_ENVVAL_BLOCK_PTR(v)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00777">vm_core.h:777</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#l00609">vm.c:609</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#l00226">vm_core.h:226</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#l00443">vm_core.h:443</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#l00320">vm_core.h:320</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#l00725">vm_core.h:725</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#l00534">class.c:534</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_ad5a1e03b0a66824f95f6aaf07b4a4052"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#ad5a1e03b0a66824f95f6aaf07b4a4052">Check_Type</a></div><div class="ttdeci">#define Check_Type(v, t)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00539">ruby.h:539</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#l00030">method.h:30</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#l01788">error.c:1788</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#l02071">vm.c:2071</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#l00790">vm.c:790</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#l00738">vm_core.h:738</a></div></div> <div class="ttc" id="vm__insnhelper_8c_html_a347337a315c575eb14dad973cc802743"><div class="ttname"><a href="../../d0/db2/vm__insnhelper_8c.html#a347337a315c575eb14dad973cc802743">lep_svar_set</a></div><div class="ttdeci">static void lep_svar_set(rb_thread_t *th, VALUE *lep, rb_num_t key, VALUE val)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/db2/vm__insnhelper_8c_source.html#l00214">vm_insnhelper.c:214</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#l00120">vm.c:120</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="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#l00099">method.h:99</a></div></div> <div class="ttc" id="intern_8h_html_a692c7c3caf5cdcf40d3812136f757fb5"><div class="ttname"><a href="../../db/d2e/intern_8h.html#a692c7c3caf5cdcf40d3812136f757fb5">rb_convert_type</a></div><div class="ttdeci">VALUE rb_convert_type(VALUE, int, const char *, const char *)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/de1/object_8c_source.html#l02425">object.c:2425</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#l00304">vm.c:304</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#l00731">vm_core.h:731</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_a8aa2ce26d266baf56c9068a693d6073e"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#a8aa2ce26d266baf56c9068a693d6073e">RB_GC_GUARD</a></div><div class="ttdeci">#define RB_GC_GUARD(v)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00530">ruby.h:530</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_a8357e81bbb60cb41b0a292a90653a5e5"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#a8357e81bbb60cb41b0a292a90653a5e5">T_HASH</a></div><div class="ttdeci">#define T_HASH</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00493">ruby.h:493</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#l02305">vm.c:2305</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#l01816">vm.c:1816</a></div></div> <div class="ttc" id="internal_8h_html_a58f2eb5cab1dcaa04edcef862665fa35"><div class="ttname"><a href="../../db/dde/internal_8h.html#a58f2eb5cab1dcaa04edcef862665fa35">Init_vm_backtrace</a></div><div class="ttdeci">void Init_vm_backtrace(void)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d73/vm__backtrace_8c_source.html#l00946">vm_backtrace.c:946</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#l00538">vm_core.h:538</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#l00968">vm.c:968</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#l00278">vm_core.h:278</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#l00985">ruby.h:985</a></div></div> <div class="ttc" id="structrb__hook__list__struct_html"><div class="ttname"><a href="../../dd/dcf/structrb__hook__list__struct.html">rb_hook_list_struct</a></div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00331">vm_core.h:331</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#l00817">vm_core.h:817</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#l00503">vm_core.h:503</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#l02600">gc.c:2600</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#l00795">vm_core.h:795</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#l00492">ruby.h:492</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#l01815">vm.c:1815</a></div></div> <div class="ttc" id="vm__core_8h_html_a9759f4581d8755c37d9a88a1da185566"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a9759f4581d8755c37d9a88a1da185566">VM_FRAME_MAGIC_RESCUE</a></div><div class="ttdeci">#define VM_FRAME_MAGIC_RESCUE</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00734">vm_core.h:734</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#l00802">vm.c:802</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#l00168">eval_intern.h:168</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#l00678">vm_core.h:678</a></div></div> <div class="ttc" id="st_8h_html_a5a026e0f0fbb0375b83056f0124889ee"><div class="ttname"><a href="../../dd/d24/st_8h.html#a5a026e0f0fbb0375b83056f0124889ee">st_update</a></div><div class="ttdeci">int st_update(st_table *table, st_data_t key, st_update_callback_func *func, st_data_t arg)</div><div class="ttdef"><b>Definition:</b> <a href="../../d4/d71/st_8c_source.html#l00839">st.c:839</a></div></div> <div class="ttc" id="id_8h_html_a08dd4fbd61c5fde369edd59783f753b3a184b6b840b45f69b2f635910fc7885b6"><div class="ttname"><a href="../../df/db9/id_8h.html#a08dd4fbd61c5fde369edd59783f753b3a184b6b840b45f69b2f635910fc7885b6">id_core_hash_merge_ary</a></div><div class="ttdef"><b>Definition:</b> <a href="../../df/db9/id_8h_source.html#l00094">id.h:94</a></div></div> <div class="ttc" id="vm_8c_html_ae7cdc17bd0350835a8661083c4032ea8"><div class="ttname"><a href="../../de/de9/vm_8c.html#ae7cdc17bd0350835a8661083c4032ea8">rb_sourcefilename</a></div><div class="ttdeci">VALUE rb_sourcefilename(void)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00856">vm.c:856</a></div></div> <div class="ttc" id="vm__insnhelper_8c_html_ae864864dda83abc809b951bd93f117b7"><div class="ttname"><a href="../../d0/db2/vm__insnhelper_8c.html#ae864864dda83abc809b951bd93f117b7">lep_svar_get</a></div><div class="ttdeci">static VALUE lep_svar_get(rb_thread_t *th, VALUE *lep, rb_num_t key)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/db2/vm__insnhelper_8c_source.html#l00191">vm_insnhelper.c:191</a></div></div> <div class="ttc" id="vm_8c_html_a042bbbb9639b7c7db23bd5edfaf8c525"><div class="ttname"><a href="../../de/de9/vm_8c.html#a042bbbb9639b7c7db23bd5edfaf8c525">rb_vm_invoke_proc</a></div><div class="ttdeci">VALUE rb_vm_invoke_proc(rb_thread_t *th, rb_proc_t *proc, 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#l00780">vm.c:780</a></div></div> <div class="ttc" id="vm_8c_html_aef56dc0756735c2f5d6e5cb594747503"><div class="ttname"><a href="../../de/de9/vm_8c.html#aef56dc0756735c2f5d6e5cb594747503">VM_CF_LEP</a></div><div class="ttdeci">static VALUE * VM_CF_LEP(rb_control_frame_t *cfp)</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="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#l00374">gc.c:374</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#l00693">vm_core.h:693</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#l01449">ruby.h:1449</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#l02321">vm_insnhelper.c:2321</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#l00868">vm_method.c:868</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#l01714">vm.c:1714</a></div></div> <div class="ttc" id="vm__core_8h_html_a7f57bd2f1c1285dc0e6f03f9b72f307a"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a7f57bd2f1c1285dc0e6f03f9b72f307a">RUBY_VM_FIBER_VM_STACK_SIZE</a></div><div class="ttdeci">#define RUBY_VM_FIBER_VM_STACK_SIZE</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00416">vm_core.h:416</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#l00493">vm_core.h:493</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#l00365">vm.c:365</a></div></div> <div class="ttc" id="vm_8c_html_a430a05b48293f2fb8b5cd99e0a156df3"><div class="ttname"><a href="../../de/de9/vm_8c.html#a430a05b48293f2fb8b5cd99e0a156df3">vm_default_params</a></div><div class="ttdeci">static VALUE vm_default_params(void)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01721">vm.c:1721</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#l02267">vm.c:2267</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#l00701">ruby.h:701</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#l02488">vm.c:2488</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#l01362">class.c:1362</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#l00539">vm_core.h:539</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#l01511">vm.c:1511</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#l02449">gc.c:2449</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#l00078">method.h:78</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#l02963">gc.c:2963</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_ad8dd7fb0cbee1955c393251e8bb97233"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#ad8dd7fb0cbee1955c393251e8bb97233">RHASH_TBL</a></div><div class="ttdeci">#define RHASH_TBL(h)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00928">ruby.h:928</a></div></div> <div class="ttc" id="vm_8c_html_a1d0ab74624a0f4c5770aee9110171a48"><div class="ttname"><a href="../../de/de9/vm_8c.html#a1d0ab74624a0f4c5770aee9110171a48">SET</a></div><div class="ttdeci">#define SET(name)</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#l00671">vm_core.h:671</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#l00347">vm_core.h:347</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="probes__helper_8h_html"><div class="ttname"><a href="../../d6/d27/probes__helper_8h.html">probes_helper.h</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#l00741">vm_core.h:741</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#l03715">date_core.c:3715</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#l00239">node.h:239</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#l00786">win32ole.c:786</a></div></div> <div class="ttc" id="hash_8c_html_acc47d862ca823ed29cfd7e64300e38f9"><div class="ttname"><a href="../../d1/d04/hash_8c.html#acc47d862ca823ed29cfd7e64300e38f9">rb_hash_foreach</a></div><div class="ttdeci">void rb_hash_foreach(VALUE hash, int(*func)(ANYARGS), VALUE farg)</div><div class="ttdef"><b>Definition:</b> <a href="../../d1/d04/hash_8c_source.html#l00200">hash.c:200</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#l00527">eval.c:527</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="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#l00498">vm_core.h:498</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#l01470">class.c:1470</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#l02500">vm.c:2500</a></div></div> <div class="ttc" id="vm_8c_html_afe2c325d1f5a1e018c98f65044003752"><div class="ttname"><a href="../../de/de9/vm_8c.html#afe2c325d1f5a1e018c98f65044003752">rb_vm_control_frame_id_and_class</a></div><div class="ttdeci">int rb_vm_control_frame_id_and_class(const rb_control_frame_t *cfp, ID *idp, VALUE *klassp)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01524">vm.c:1524</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#l00736">vm.c:736</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#l01537">ruby.h:1537</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#l00395">vm.c:395</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="structrb__control__frame__struct_html_acf3b5255fd4cd1ad58aadc0f7fa69fb8"><div class="ttname"><a href="../../de/dc6/structrb__control__frame__struct.html#acf3b5255fd4cd1ad58aadc0f7fa69fb8">rb_control_frame_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#l00434">vm_core.h:434</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#l00322">proc.c:322</a></div></div> <div class="ttc" id="structrb__control__frame__struct_html_aba6bb1166e207f96d81c4fcac16b3119"><div class="ttname"><a href="../../de/dc6/structrb__control__frame__struct.html#aba6bb1166e207f96d81c4fcac16b3119">rb_control_frame_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#l00430">vm_core.h:430</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#l00129">eval_intern.h:129</a></div></div> <div class="ttc" id="st_8h_html_a2d85287fbdaf7dcbc22d45e925c29fea"><div class="ttname"><a href="../../dd/d24/st_8h.html#a2d85287fbdaf7dcbc22d45e925c29fea">st_lookup</a></div><div class="ttdeci">int st_lookup(st_table *, st_data_t, st_data_t *)</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#l02120">vm.c:2120</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#l01241">ruby.h:1241</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#l01028">vm.c:1028</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_ad07e23922ca1fa3e87647edf4fab6d38"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#ad07e23922ca1fa3e87647edf4fab6d38">rb_cBinding</a></div><div class="ttdeci">RUBY_EXTERN VALUE rb_cBinding</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l01429">ruby.h:1429</a></div></div> <div class="ttc" id="structrb__binding__t_html_a1d0942609b57ba0e681f344e5757a450"><div class="ttname"><a href="../../d3/d76/structrb__binding__t.html#a1d0942609b57ba0e681f344e5757a450">rb_binding_t::first_lineno</a></div><div class="ttdeci">unsigned short first_lineno</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00696">vm_core.h:696</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#l00408">vm.c:408</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#l00170">vm.c:170</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#l00471">array.c:471</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#l00059">iseq.h:59</a></div></div> <div class="ttc" id="vm__core_8h_html_a89c968c8149401828646e37c48b74e80"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a89c968c8149401828646e37c48b74e80">RUBY_VM_THREAD_VM_STACK_SIZE</a></div><div class="ttdeci">#define RUBY_VM_THREAD_VM_STACK_SIZE</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="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#l01552">vm.c:1552</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#l02022">vm.c:2022</a></div></div> <div class="ttc" id="vm__insnhelper_8h_html_a25e50be5c73e0b2fab54944e68dd48c2a234b86bd36a499b3fde775c6f4034108"><div class="ttname"><a href="../../d2/d5f/vm__insnhelper_8h.html#a25e50be5c73e0b2fab54944e68dd48c2a234b86bd36a499b3fde775c6f4034108">BOP_LAST_</a></div><div class="ttdef"><b>Definition:</b> <a href="../../d2/d5f/vm__insnhelper_8h_source.html#l00059">vm_insnhelper.h:59</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#l01092">vm.c:1092</a></div></div> <div class="ttc" id="compile_8c_html_a49bc43de3793996f42bf9a5c79230838"><div class="ttname"><a href="../../d2/d47/compile_8c.html#a49bc43de3793996f42bf9a5c79230838">rb_insns_name</a></div><div class="ttdeci">const char * rb_insns_name(int i)</div><div class="ttdef"><b>Definition:</b> <a href="../../d2/d47/compile_8c_source.html#l05536">compile.c:5536</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#l01223">ruby.h:1223</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#l00379">vm_core.h:379</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#l00141">eval_intern.h:141</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#l00558">vm_core.h:558</a></div></div> <div class="ttc" id="vm__insnhelper_8h_html_a6b1d268dea905b35b1e0577b4c6f9af4"><div class="ttname"><a href="../../d2/d5f/vm__insnhelper_8h.html#a6b1d268dea905b35b1e0577b4c6f9af4">BIGNUM_REDEFINED_OP_FLAG</a></div><div class="ttdeci">#define BIGNUM_REDEFINED_OP_FLAG</div><div class="ttdef"><b>Definition:</b> <a href="../../d2/d5f/vm__insnhelper_8h_source.html#l00237">vm_insnhelper.h:237</a></div></div> <div class="ttc" id="vm_8c_html_abe55ec96693d3caf875342934a7fe1f1"><div class="ttname"><a href="../../de/de9/vm_8c.html#abe55ec96693d3caf875342934a7fe1f1">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, const rb_control_frame_t *cfp)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00201">vm.c:201</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="vm_8c_html_ab52f1a9275d590532a7bcf08897d0db5"><div class="ttname"><a href="../../de/de9/vm_8c.html#ab52f1a9275d590532a7bcf08897d0db5">rb_vm_ep_local_ep</a></div><div class="ttdeci">VALUE * rb_vm_ep_local_ep(VALUE *ep)</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="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#l01426">ruby.h:1426</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#l00515">error.c:515</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#l00472">proc.c:472</a></div></div> <div class="ttc" id="vm_8c_html_a5923856d61a69b123a219cbd558061c3"><div class="ttname"><a href="../../de/de9/vm_8c.html#a5923856d61a69b123a219cbd558061c3">vm_iter_break</a></div><div class="ttdeci">static void vm_iter_break(rb_thread_t *th, VALUE val)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01017">vm.c:1017</a></div></div> <div class="ttc" id="vm_8c_html_a048227fd9ad77e666ba905ae3315027c"><div class="ttname"><a href="../../de/de9/vm_8c.html#a048227fd9ad77e666ba905ae3315027c">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, VALUE defined_class)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00680">vm.c:680</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#l01987">vm.c:1987</a></div></div> <div class="ttc" id="structrb__vm__struct_html_a73ea66c25dd84c82cb299a4930dba44a"><div class="ttname"><a href="../../db/d74/structrb__vm__struct.html#a73ea66c25dd84c82cb299a4930dba44a">rb_vm_struct::fiber_vm_stack_size</a></div><div class="ttdeci">size_t fiber_vm_stack_size</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00402">vm_core.h:402</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#l00689">vm_core.h:689</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#l00478">error.c:478</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#l00128">vm.c:128</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#l02448">vm.c:2448</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#l01425">ruby.h:1425</a></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#l00424">array.c:424</a></div></div> <div class="ttc" id="vm__debug_8h_html_a08a47aff6867e5ae146382e66d2cc26b"><div class="ttname"><a href="../../d5/d8c/vm__debug_8h.html#a08a47aff6867e5ae146382e66d2cc26b">dp</a></div><div class="ttdeci">#define dp(v)</div><div class="ttdef"><b>Definition:</b> <a href="../../d5/d8c/vm__debug_8h_source.html#l00023">vm_debug.h:23</a></div></div> <div class="ttc" id="structrb__vm__struct_html_a00631da898a46a2de3e8d3773484f861"><div class="ttname"><a href="../../db/d74/structrb__vm__struct.html#a00631da898a46a2de3e8d3773484f861">rb_vm_struct::load_path_check_cache</a></div><div class="ttdeci">VALUE load_path_check_cache</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00363">vm_core.h:363</a></div></div> <div class="ttc" id="subst_8h_html_aa367b75c5aed883fef5befbdf04835a4"><div class="ttname"><a href="../../d7/d72/subst_8h.html#aa367b75c5aed883fef5befbdf04835a4">snprintf</a></div><div class="ttdeci">#define snprintf</div><div class="ttdef"><b>Definition:</b> <a href="../../d7/d72/subst_8h_source.html#l00006">subst.h:6</a></div></div> <div class="ttc" id="internal_8h_html_a90a07890f91ca39d3b83ffa8e4e53836"><div class="ttname"><a href="../../db/dde/internal_8h.html#a90a07890f91ca39d3b83ffa8e4e53836">RCLASS_ORIGIN</a></div><div class="ttdeci">#define RCLASS_ORIGIN(c)</div><div class="ttdef"><b>Definition:</b> <a href="../../db/dde/internal_8h_source.html#l00051">internal.h:51</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#l00148">eval_intern.h:148</a></div></div> <div class="ttc" id="structrb__control__frame__struct_html_a06a5a5485839fd92e3e274868f525bb2"><div class="ttname"><a href="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">rb_control_frame_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#l00428">vm_core.h:428</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#l00446">ruby.h:446</a></div></div> <div class="ttc" id="vm__dump_8c_html_a5e6b7f865cae591e5e27b0e36b0d357f"><div class="ttname"><a href="../../dd/dd7/vm__dump_8c.html#a5e6b7f865cae591e5e27b0e36b0d357f">VMDEBUG</a></div><div class="ttdeci">#define VMDEBUG</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/dd7/vm__dump_8c_source.html#l00019">vm_dump.c:19</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#l00182">vm_insnhelper.h:182</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#l00115">vm_core.h:115</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#l00836">vm.c:836</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#l00488">class.c:488</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#l00596">vm_core.h:596</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#l02204">variable.c:2204</a></div></div> <div class="ttc" id="vm__core_8h_html_a5dad51eb740abec5dd667fb4b257789f"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a5dad51eb740abec5dd667fb4b257789f">RUBY_VM_THREAD_MACHINE_STACK_SIZE_MIN</a></div><div class="ttdeci">#define RUBY_VM_THREAD_MACHINE_STACK_SIZE_MIN</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="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#l00487">vm.c:487</a></div></div> <div class="ttc" id="id_8h_html_a08dd4fbd61c5fde369edd59783f753b3a7f9b82d41bfb9398bb16c47725cca916"><div class="ttname"><a href="../../df/db9/id_8h.html#a08dd4fbd61c5fde369edd59783f753b3a7f9b82d41bfb9398bb16c47725cca916">id_core_hash_merge_ptr</a></div><div class="ttdef"><b>Definition:</b> <a href="../../df/db9/id_8h_source.html#l00095">id.h:95</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#l00089">vm.c:89</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#l00724">vm.c:724</a></div></div> <div class="ttc" id="vm_8c_html_a06ca74a46d2d65581ab595dc80ad6a92"><div class="ttname"><a href="../../de/de9/vm_8c.html#a06ca74a46d2d65581ab595dc80ad6a92">check_machine_stack_size</a></div><div class="ttdeci">static void check_machine_stack_size(size_t *sizep)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01753">vm.c:1753</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#l02079">vm.c:2079</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#l00520">vm_core.h:520</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#l00130">ruby.c:130</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#l00368">vm_core.h:368</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#l00727">vm_core.h:727</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#l00433">ruby.h:433</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#l02054">vm.c:2054</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#l01967">vm.c:1967</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#l00476">thread.c:476</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#l00501">vm.c:501</a></div></div> <div class="ttc" id="probes__helper_8h_html_ab729063fadabe3c80b7c72dae144bba3"><div class="ttname"><a href="../../d6/d27/probes__helper_8h.html#ab729063fadabe3c80b7c72dae144bba3">RUBY_DTRACE_CMETHOD_RETURN_HOOK</a></div><div class="ttdeci">#define RUBY_DTRACE_CMETHOD_RETURN_HOOK(th, klass, id)</div><div class="ttdef"><b>Definition:</b> <a href="../../d6/d27/probes__helper_8h_source.html#l00064">probes_helper.h:64</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#l00095">method.h:95</a></div></div> <div class="ttc" id="vm_8c_html_a36a6b458397f7b8822692fb0fa04ac02"><div class="ttname"><a href="../../de/de9/vm_8c.html#a36a6b458397f7b8822692fb0fa04ac02">kwmerge_ii</a></div><div class="ttdeci">static int kwmerge_ii(st_data_t *key, st_data_t *value, st_data_t arg, int existing)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l02234">vm.c:2234</a></div></div> <div class="ttc" id="vm_8c_html_a6c9b6fe2b70d01e176fa50b4aa4da39c"><div class="ttname"><a href="../../de/de9/vm_8c.html#a6c9b6fe2b70d01e176fa50b4aa4da39c">rb_frame_pop</a></div><div class="ttdeci">void rb_frame_pop(void)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00263">vm.c:263</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#l00167">eval_intern.h:167</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#l02982">gc.c:2982</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#l00208">gc.c:208</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#l00506">ruby.h:506</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#l01740">object.c:1740</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#l00087">win32.c:87</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#l00090">id.h:90</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">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#l00530">vm.c:530</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#l00588">vm_core.h:588</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#l00175">eval_intern.h:175</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#l00537">vm.c:537</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#l00882">ruby.h:882</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#l00225">vm_core.h:225</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#l01259">vm.c:1259</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#l00803">vm_core.h:803</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#l02519">vm.c:2519</a></div></div> <div class="ttc" id="vm__insnhelper_8c_html_ae6e62348f86c254a636fba4f6a21bb94"><div class="ttname"><a href="../../d0/db2/vm__insnhelper_8c.html#ae6e62348f86c254a636fba4f6a21bb94">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 klass, VALUE specval, const VALUE *pc, VALUE *sp, int local_size, const rb_method_entry_t *me)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/db2/vm__insnhelper_8c_source.html#l00034">vm_insnhelper.c:34</a></div></div> <div class="ttc" id="method_8h_html_ada2b4368066fe3e00cffe2e6b657de16"><div class="ttname"><a href="../../db/d0a/method_8h.html#ada2b4368066fe3e00cffe2e6b657de16">rb_method_entry</a></div><div class="ttdeci">rb_method_entry_t * rb_method_entry(VALUE klass, ID id, VALUE *define_class_ptr)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/d63/vm__method_8c_source.html#l00572">vm_method.c:572</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#l01857">vm.c:1857</a></div></div> <div class="ttc" id="vm__insnhelper_8h_html_a5f8e7be5793576774dcd1d6571dcb10d"><div class="ttname"><a href="../../d2/d5f/vm__insnhelper_8h.html#a5f8e7be5793576774dcd1d6571dcb10d">ARRAY_REDEFINED_OP_FLAG</a></div><div class="ttdeci">#define ARRAY_REDEFINED_OP_FLAG</div><div class="ttdef"><b>Definition:</b> <a href="../../d2/d5f/vm__insnhelper_8h_source.html#l00235">vm_insnhelper.h:235</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#l00100">method.h:100</a></div></div> <div class="ttc" id="structrb__control__frame__struct_html"><div class="ttname"><a href="../../de/dc6/structrb__control__frame__struct.html">rb_control_frame_struct</a></div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00425">vm_core.h:425</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#l00067">iseq.h:67</a></div></div> <div class="ttc" id="vm__core_8h_html_ab1cfcff8df45b32519fdb36b07d4681f"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#ab1cfcff8df45b32519fdb36b07d4681f">RUBY_VM_FIBER_MACHINE_STACK_SIZE</a></div><div class="ttdeci">#define RUBY_VM_FIBER_MACHINE_STACK_SIZE</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__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#l00124">vm_core.h:124</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#l02530">gc.c:2530</a></div></div> <div class="ttc" id="gc_8c_html_a8532a2fc15194a8a87b9599d99fbc52c"><div class="ttname"><a href="../../d8/d16/gc_8c.html#a8532a2fc15194a8a87b9599d99fbc52c">ruby_mimmalloc</a></div><div class="ttdeci">void * ruby_mimmalloc(size_t size)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d16/gc_8c_source.html#l03664">gc.c:3664</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__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#l00163">eval_intern.h:163</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#l00133">eval_intern.h:133</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#l01876">variable.c:1876</a></div></div> <div class="ttc" id="structrb__thread__struct_html_ae57e4067fa1528caf7c84ca2e5ef2bd6"><div class="ttname"><a href="../../d2/d66/structrb__thread__struct.html#ae57e4067fa1528caf7c84ca2e5ef2bd6">rb_thread_struct::event_hooks</a></div><div class="ttdeci">rb_hook_list_t event_hooks</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00603">vm_core.h:603</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#l00060">iseq.h:60</a></div></div> <div class="ttc" id="internal_8h_html_ad44e50d3f03c58fa8d5e4e50558df898"><div class="ttname"><a href="../../db/dde/internal_8h.html#ad44e50d3f03c58fa8d5e4e50558df898">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#l01900">iseq.c:1900</a></div></div> <div class="ttc" id="group__defmethod_html_ga9ee2c97671d010bcb7a27614ab28bba7"><div class="ttname"><a href="../../d7/d19/group__defmethod.html#ga9ee2c97671d010bcb7a27614ab28bba7">rb_define_alias</a></div><div class="ttdeci">void rb_define_alias(VALUE klass, const char *name1, const char *name2)</div><div class="ttdoc">Defines an alias of a method. </div><div class="ttdef"><b>Definition:</b> <a href="../../d9/d0c/class_8c_source.html#l01539">class.c:1539</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#l00863">variable.c:863</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#l00049">internal.h:49</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#l00064">iseq.h:64</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#l00823">vm.c:823</a></div></div> <div class="ttc" id="vm_8c_html_a936d0f75f6bf996cd8845be07c6d08d8"><div class="ttname"><a href="../../de/de9/vm_8c.html#a936d0f75f6bf996cd8845be07c6d08d8">VM_CF_BLOCK_PTR</a></div><div class="ttdeci">static rb_block_t * VM_CF_BLOCK_PTR(rb_control_frame_t *cfp)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00054">vm.c:54</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#l00903">vm_core.h:903</a></div></div> <div class="ttc" id="vm__core_8h_html_a3e768fc2cff5b405b3cab29488daace1"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a3e768fc2cff5b405b3cab29488daace1">VM_EP_PREV_EP</a></div><div class="ttdeci">#define VM_EP_PREV_EP(ep)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00782">vm_core.h:782</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#l00357">vm_core.h:357</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#l00588">vm.c:588</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#l00559">vm_core.h:559</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#l01275">sprintf.c:1275</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#l00668">vm_core.h:668</a></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#l00365">vm_core.h:365</a></div></div> <div class="ttc" id="structrb__binding__t_html_a9204294e8542e2b0d46b3350cfc4908d"><div class="ttname"><a href="../../d3/d76/structrb__binding__t.html#a9204294e8542e2b0d46b3350cfc4908d">rb_binding_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#l00695">vm_core.h:695</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#l00405">vm_method.c:405</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#l00136">vm.c:136</a></div></div> <div class="ttc" id="vm__core_8h_html_a0f06f3e387d32f67b38a70d2a0da2ecc"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a0f06f3e387d32f67b38a70d2a0da2ecc">EXEC_EVENT_HOOK_AND_POP_FRAME</a></div><div class="ttdeci">#define EXEC_EVENT_HOOK_AND_POP_FRAME(th_, flag_, self_, id_, klass_, data_)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l01003">vm_core.h:1003</a></div></div> <div class="ttc" id="ripper_8c_html_acf143577800376dd931c059ecc61ba06"><div class="ttname"><a href="../../d5/d11/ripper_8c.html#acf143577800376dd931c059ecc61ba06">malloc</a></div><div class="ttdeci">#define malloc</div><div class="ttdef"><b>Definition:</b> <a href="../../d5/d11/ripper_8c_source.html#l00098">ripper.c:98</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#l00234">hash.c:234</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#l02594">variable.c:2594</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#l03653">gc.c:3653</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#l02129">vm.c:2129</a></div></div> <div class="ttc" id="structrb__vm__struct_html_a803c8b90c48ff8fd797810add2e31ee9"><div class="ttname"><a href="../../db/d74/structrb__vm__struct.html#a803c8b90c48ff8fd797810add2e31ee9">rb_vm_struct::trap_list</a></div><div class="ttdeci">struct rb_vm_struct::@130 trap_list[RUBY_NSIG]</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#l17083">ripper.c:17083</a></div></div> <div class="ttc" id="vm_8c_html_a8c666c67569f92ac5d01c2d1829dcc2c"><div class="ttname"><a href="../../de/de9/vm_8c.html#a8c666c67569f92ac5d01c2d1829dcc2c">vm_set_eval_stack</a></div><div class="ttdeci">static void vm_set_eval_stack(rb_thread_t *th, VALUE iseqval, const NODE *cref, rb_block_t *base_block)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00153">vm.c:153</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#l01558">vm.c:1558</a></div></div> <div class="ttc" id="vm__insnhelper_8h_html_a6e7e7982d85ec033efe8f9929c5ce67a"><div class="ttname"><a href="../../d2/d5f/vm__insnhelper_8h.html#a6e7e7982d85ec033efe8f9929c5ce67a">FIXNUM_REDEFINED_OP_FLAG</a></div><div class="ttdeci">#define FIXNUM_REDEFINED_OP_FLAG</div><div class="ttdef"><b>Definition:</b> <a href="../../d2/d5f/vm__insnhelper_8h_source.html#l00232">vm_insnhelper.h:232</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#l00105">ruby.h:105</a></div></div> <div class="ttc" id="structrb__vm__struct_html_a9cd774620dae9323f6f8e6319f44df9d"><div class="ttname"><a href="../../db/d74/structrb__vm__struct.html#a9cd774620dae9323f6f8e6319f44df9d">rb_vm_struct::thread_vm_stack_size</a></div><div class="ttdeci">size_t thread_vm_stack_size</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="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#l00975">vm.c:975</a></div></div> <div class="ttc" id="vm_8c_html_aa6fedecd9dffdb27169039af7d290ffd"><div class="ttname"><a href="../../de/de9/vm_8c.html#aa6fedecd9dffdb27169039af7d290ffd">rb_vm_make_binding</a></div><div class="ttdeci">VALUE rb_vm_make_binding(rb_thread_t *th, const rb_control_frame_t *src_cfp)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00647">vm.c:647</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#l00272">vm.c:272</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#l00684">vm_core.h:684</a></div></div> <div class="ttc" id="vm_8c_html_a4e70ebd7bc0034dd333065fabad96362"><div class="ttname"><a href="../../de/de9/vm_8c.html#a4e70ebd7bc0034dd333065fabad96362">VM_EP_LEP</a></div><div class="ttdeci">static VALUE * VM_EP_LEP(VALUE *ep)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00025">vm.c:25</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#l00091">vm.c:91</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#l00435">ruby.h:435</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#l00547">error.c:547</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#l00111">tcltklib.c:111</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#l02114">vm.c:2114</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#l00732">vm_core.h:732</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#l00510">ruby.h:510</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#l00216">vm_core.h:216</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#l00104">ruby.h:104</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#l02494">vm.c:2494</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#l01498">vm.c:1498</a></div></div> <div class="ttc" id="vm__insnhelper_8c_html_ad8c4d3e68920abf7fe2a84cffde3be1b"><div class="ttname"><a href="../../d0/db2/vm__insnhelper_8c.html#ad8c4d3e68920abf7fe2a84cffde3be1b">vm_base_ptr</a></div><div class="ttdeci">static VALUE * vm_base_ptr(rb_control_frame_t *cfp)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/db2/vm__insnhelper_8c_source.html#l01010">vm_insnhelper.c:1010</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__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#l00099">vm_insnhelper.c:99</a></div></div> <div class="ttc" id="vm_8c_html_a00c112f0e84b5f3c78cba1e5fb1969fa"><div class="ttname"><a href="../../de/de9/vm_8c.html#a00c112f0e84b5f3c78cba1e5fb1969fa">m_core_hash_merge_ptr</a></div><div class="ttdeci">static VALUE m_core_hash_merge_ptr(int argc, VALUE *argv, VALUE recv)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l02224">vm.c:2224</a></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#l00282">vm_core.h:282</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#l01094">ruby.h:1094</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#l00057">iseq.h:57</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#l00895">ruby.h:895</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#l00343">vm_core.h:343</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#l00389">variable.c:389</a></div></div> <div class="ttc" id="id_8h_html_a08dd4fbd61c5fde369edd59783f753b3a4131af63fbf85962531af371fae4d62b"><div class="ttname"><a href="../../df/db9/id_8h.html#a08dd4fbd61c5fde369edd59783f753b3a4131af63fbf85962531af371fae4d62b">id_core_hash_merge_kwd</a></div><div class="ttdef"><b>Definition:</b> <a href="../../df/db9/id_8h_source.html#l00096">id.h:96</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#l00096">vm.c:96</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#l00583">vm_core.h:583</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#l00897">ruby.h:897</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_a9444c431b3cb1184e7523fc572f2c758"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#a9444c431b3cb1184e7523fc572f2c758">FIX2INT</a></div><div class="ttdeci">#define FIX2INT(x)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00624">ruby.h:624</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#l02543">gc.c:2543</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="vm__insnhelper_8h_html_aa23a5771f30dff1c952c855f08d2a7bc"><div class="ttname"><a href="../../d2/d5f/vm__insnhelper_8h.html#aa23a5771f30dff1c952c855f08d2a7bc">SYMBOL_REDEFINED_OP_FLAG</a></div><div class="ttdeci">#define SYMBOL_REDEFINED_OP_FLAG</div><div class="ttdef"><b>Definition:</b> <a href="../../d2/d5f/vm__insnhelper_8h_source.html#l00238">vm_insnhelper.h:238</a></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#l01209">vm_method.c:1209</a></div></div> <div class="ttc" id="structrb__iseq__struct_html_acf13c2a9990e88276a7223a4881302d6"><div class="ttname"><a href="../../d6/de3/structrb__iseq__struct.html#acf13c2a9990e88276a7223a4881302d6">rb_iseq_struct::location</a></div><div class="ttdeci">rb_iseq_location_t location</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00213">vm_core.h:213</a></div></div> <div class="ttc" id="dir_8c_html_aee28fd8a0e40b6d958f7d20348e45368"><div class="ttname"><a href="../../de/d32/dir_8c.html#aee28fd8a0e40b6d958f7d20348e45368">getenv</a></div><div class="ttdeci">char * getenv()</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#l00122">eval_intern.h:122</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#l00700">ruby.h:700</a></div></div> <div class="ttc" id="internal_8h_html_a7d5e662cb2626b7822c9f1f37c419959"><div class="ttname"><a href="../../db/dde/internal_8h.html#a7d5e662cb2626b7822c9f1f37c419959">rb_sigaltstack_size</a></div><div class="ttdeci">int rb_sigaltstack_size(void)</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#l01665">vm.c:1665</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#l00062">iseq.h:62</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="st_8h_html_a955c6e936b9681649ab9ffa4aa741949"><div class="ttname"><a href="../../dd/d24/st_8h.html#a955c6e936b9681649ab9ffa4aa741949">st_init_numtable</a></div><div class="ttdeci">st_table * st_init_numtable(void)</div><div class="ttdef"><b>Definition:</b> <a href="../../d4/d71/st_8c_source.html#l00272">st.c:272</a></div></div> <div class="ttc" id="structrb__control__frame__struct_html_ab4fbcf3f8b2d09cea7d5eb88e3446380"><div class="ttname"><a href="../../de/dc6/structrb__control__frame__struct.html#ab4fbcf3f8b2d09cea7d5eb88e3446380">rb_control_frame_struct::flag</a></div><div class="ttdeci">VALUE flag</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00429">vm_core.h:429</a></div></div> <div class="ttc" id="probes_8h_html_a1af093b83750132af601561797612c96"><div class="ttname"><a href="../../d8/dc4/probes_8h.html#a1af093b83750132af601561797612c96">RUBY_DTRACE_HASH_CREATE_ENABLED</a></div><div class="ttdeci">#define RUBY_DTRACE_HASH_CREATE_ENABLED()</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/dc4/probes_8h_source.html#l00059">probes.h:59</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#l00173">eval_intern.h:173</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#l00063">iseq.h:63</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#l03408">gc.c:3408</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#l00672">vm_core.h:672</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#l01819">vm.c:1819</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#l00531">vm_core.h:531</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#l00728">vm_core.h:728</a></div></div> <div class="ttc" id="vm_8c_html_a76fa4686dcd2ba89c50d00dd700b6316"><div class="ttname"><a href="../../de/de9/vm_8c.html#a76fa4686dcd2ba89c50d00dd700b6316">rb_iter_break_value</a></div><div class="ttdeci">void rb_iter_break_value(VALUE val)</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_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#l00816">vm.c:816</a></div></div> <div class="ttc" id="vm_8c_html_abd7fe99e380f04791f8a1c49655f3e92"><div class="ttname"><a href="../../de/de9/vm_8c.html#abd7fe99e380f04791f8a1c49655f3e92">vm_trace_mark_event_hooks</a></div><div class="ttdeci">void vm_trace_mark_event_hooks(rb_hook_list_t *hooks)</div><div class="ttdef"><b>Definition:</b> <a href="../../dc/d80/vm__trace_8c_source.html#l00051">vm_trace.c:51</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#l00730">vm_core.h:730</a></div></div> <div class="ttc" id="vm_8c_html_ac1494d5dfca9833bc967eddd1c194448"><div class="ttname"><a href="../../de/de9/vm_8c.html#ac1494d5dfca9833bc967eddd1c194448">kwmerge_i</a></div><div class="ttdeci">static int kwmerge_i(VALUE key, VALUE value, VALUE hash)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l02242">vm.c:2242</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_a3f0e4e2b6d073369cc1c2ddde00b13bb"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#a3f0e4e2b6d073369cc1c2ddde00b13bb">RSTRING_PTR</a></div><div class="ttdeci">#define RSTRING_PTR(str)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00866">ruby.h:866</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#l00092">vm.c:92</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#l00087">id.h:87</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#l00589">vm_core.h:589</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#l00034">vm_exec.c:34</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#l00584">vm_core.h:584</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#l01338">class.c:1338</a></div></div> <div class="ttc" id="vm_8c_html_a55957d4e328d8c8f022b88d52a4a6194"><div class="ttname"><a href="../../de/de9/vm_8c.html#a55957d4e328d8c8f022b88d52a4a6194">vm_collect_local_variables_in_heap</a></div><div class="ttdeci">static int vm_collect_local_variables_in_heap(rb_thread_t *th, VALUE *ep, VALUE ary)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00512">vm.c:512</a></div></div> <div class="ttc" id="vm_8c_html_aedeae332dfdb12aae62b5378c20b2f8f"><div class="ttname"><a href="../../de/de9/vm_8c.html#aedeae332dfdb12aae62b5378c20b2f8f">get_param</a></div><div class="ttdeci">static size_t get_param(const char *name, size_t default_value, size_t min_value)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01736">vm.c:1736</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#l00070">iseq.h:70</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#l00052">encoding.c:52</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#l00733">vm_core.h:733</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#l00447">vm_core.h:447</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#l00387">vm_core.h:387</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_ac55fae7f748afd3fc2533d0d7d06cf5a"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#ac55fae7f748afd3fc2533d0d7d06cf5a">INT2FIX</a></div><div class="ttdeci">#define INT2FIX(i)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00241">ruby.h:241</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#l00521">vm_core.h:521</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#l00597">vm_core.h:597</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#l00097">vm.c:97</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#l00271">vm_core.h:271</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#l02275">vm.c:2275</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#l00673">vm_core.h:673</a></div></div> <div class="ttc" id="bignum_8c_html_a453e764af9175d3c44ee471f921f7049"><div class="ttname"><a href="../../d1/dcc/bignum_8c.html#a453e764af9175d3c44ee471f921f7049">rb_cBignum</a></div><div class="ttdeci">VALUE rb_cBignum</div><div class="ttdef"><b>Definition:</b> <a href="../../d1/dcc/bignum_8c_source.html#l00028">bignum.c:28</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#l00185">tcltklib.c:185</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#l00842">vm.c:842</a></div></div> <div class="ttc" id="vm__insnhelper_8c_html_a3a0dcb779dc1bb29867e8da3f65e23a6"><div class="ttname"><a href="../../d0/db2/vm__insnhelper_8c.html#a3a0dcb779dc1bb29867e8da3f65e23a6">vm_get_cbase</a></div><div class="ttdeci">static VALUE vm_get_cbase(const rb_iseq_t *iseq, const VALUE *ep)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/db2/vm__insnhelper_8c_source.html#l00343">vm_insnhelper.c:343</a></div></div> <div class="ttc" id="structrb__thread__struct_html_a7f9d18a3b68b34238986fa27564ee498"><div class="ttname"><a href="../../d2/d66/structrb__thread__struct.html#a7f9d18a3b68b34238986fa27564ee498">rb_thread_struct::root_svar</a></div><div class="ttdeci">VALUE root_svar</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__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#l00669">vm_core.h:669</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_ab8e03b0e02136a5b06a1b2bb8f4f5860"><div class="ttname"><a href="../../de/de9/vm_8c.html#ab8e03b0e02136a5b06a1b2bb8f4f5860">vm_redefinition_check_flag</a></div><div class="ttdeci">static int vm_redefinition_check_flag(VALUE klass)</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="structrb__control__frame__struct_html_a596de17ddc9fb186769848a9f27f3510"><div class="ttname"><a href="../../de/dc6/structrb__control__frame__struct.html#a596de17ddc9fb186769848a9f27f3510">rb_control_frame_struct::pc</a></div><div class="ttdeci">VALUE * pc</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00426">vm_core.h:426</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#l01835">vm.c:1835</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#l02461">vm.c:2461</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#l01986">vm.c:1986</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#l00458">proc.c:458</a></div></div> <div class="ttc" id="nkf-utf8_2nkf_8c_html_a064e4a3a0f3f97b34dc187ea21bcc2f1"><div class="ttname"><a href="../../d6/da0/nkf-utf8_2nkf_8c.html#a064e4a3a0f3f97b34dc187ea21bcc2f1">cv</a></div><div class="ttdeci">static const unsigned char cv[]</div><div class="ttdef"><b>Definition:</b> <a href="../../d6/da0/nkf-utf8_2nkf_8c_source.html#l00564">nkf.c:564</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#l00098">method.h:98</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#l00342">st.c:342</a></div></div> <div class="ttc" id="vm_8c_html_a39f52c4dbd1b5125bdfed18ed002e21f"><div class="ttname"><a href="../../de/de9/vm_8c.html#a39f52c4dbd1b5125bdfed18ed002e21f">NORETURN</a></div><div class="ttdeci">NORETURN(static void vm_iter_break(rb_thread_t *th, VALUE val))</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#l00087">vm.c:87</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#l02525">vm.c:2525</a></div></div> <div class="ttc" id="structrb__control__frame__struct_html_ab8ddfbe44ad9a3582069c9fcf5211afc"><div class="ttname"><a href="../../de/dc6/structrb__control__frame__struct.html#ab8ddfbe44ad9a3582069c9fcf5211afc">rb_control_frame_struct::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#l00435">vm_core.h:435</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#l00960">ruby.h:960</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_a76a842035af1200c4d9d124d0eba2b95"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#a76a842035af1200c4d9d124d0eba2b95">rb_event_flag_t</a></div><div class="ttdeci">unsigned long rb_event_flag_t</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l01603">ruby.h:1603</a></div></div> <div class="ttc" id="structrb__vm__struct_html_a0170895d7b34734362108255ac58988f"><div class="ttname"><a href="../../db/d74/structrb__vm__struct.html#a0170895d7b34734362108255ac58988f">rb_vm_struct::event_hooks</a></div><div class="ttdeci">rb_hook_list_t event_hooks</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00377">vm_core.h:377</a></div></div> <div class="ttc" id="vm__core_8h_html_a074931868d4dfd6c2d7b307e8d547d23"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a074931868d4dfd6c2d7b307e8d547d23">RUBY_VM_THREAD_VM_STACK_SIZE_MIN</a></div><div class="ttdeci">#define RUBY_VM_THREAD_VM_STACK_SIZE_MIN</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00412">vm_core.h:412</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#l00091">id.h:91</a></div></div> <div class="ttc" id="hash_8c_html_ab7063832c7ed02351e87922a78e35c32"><div class="ttname"><a href="../../d1/d04/hash_8c.html#ab7063832c7ed02351e87922a78e35c32">rb_hash_aref</a></div><div class="ttdeci">VALUE rb_hash_aref(VALUE hash, VALUE key)</div><div class="ttdef"><b>Definition:</b> <a href="../../d1/d04/hash_8c_source.html#l00570">hash.c:570</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_a4e8fe9b7653d67be2401a8b85049e525"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#a4e8fe9b7653d67be2401a8b85049e525">RARRAY_PTR</a></div><div class="ttdeci">#define RARRAY_PTR(a)</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="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="vm__insnhelper_8h_html_a15b52577f01f3305579b1553cbf1f218"><div class="ttname"><a href="../../d2/d5f/vm__insnhelper_8h.html#a15b52577f01f3305579b1553cbf1f218">STRING_REDEFINED_OP_FLAG</a></div><div class="ttdeci">#define STRING_REDEFINED_OP_FLAG</div><div class="ttdef"><b>Definition:</b> <a href="../../d2/d5f/vm__insnhelper_8h_source.html#l00234">vm_insnhelper.h:234</a></div></div> <div class="ttc" id="vm_8c_html_a23a288909555f1b5dabc17d89ec5b4f4"><div class="ttname"><a href="../../de/de9/vm_8c.html#a23a288909555f1b5dabc17d89ec5b4f4">check_redefined_method</a></div><div class="ttdeci">static int check_redefined_method(st_data_t key, st_data_t value, st_data_t data)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01071">vm.c:1071</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#l00809">vm.c:809</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#l00281">vm_core.h:281</a></div></div> <div class="ttc" id="vm__core_8h_html_ad2a7bb01f06d60963eb3b379a4804e86"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#ad2a7bb01f06d60963eb3b379a4804e86">RUBY_VM_FIBER_VM_STACK_SIZE_MIN</a></div><div class="ttdeci">#define RUBY_VM_FIBER_VM_STACK_SIZE_MIN</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="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#l01370">random.c:1370</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#l00090">vm.c:90</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#l00278">vm.c:278</a></div></div> <div class="ttc" id="vm__insnhelper_8c_html_a86ccc260b5d0663c44a443c4111a981a"><div class="ttname"><a href="../../d0/db2/vm__insnhelper_8c.html#a86ccc260b5d0663c44a443c4111a981a">VM_PROFILE_ATEXIT</a></div><div class="ttdeci">#define VM_PROFILE_ATEXIT()</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/db2/vm__insnhelper_8c_source.html#l01486">vm_insnhelper.c:1486</a></div></div> <div class="ttc" id="structrb__control__frame__struct_html_a98749000ef85777099b645d7d755275d"><div class="ttname"><a href="../../de/dc6/structrb__control__frame__struct.html#a98749000ef85777099b645d7d755275d">rb_control_frame_struct::ep</a></div><div class="ttdeci">VALUE * ep</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00432">vm_core.h:432</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#l00608">vm_core.h:608</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#l00229">vm_core.h:229</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#l00607">vm_core.h:607</a></div></div> <div class="ttc" id="vm__core_8h_html_a5410a86de3cd3499b2b1197ab89a0da4"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a5410a86de3cd3499b2b1197ab89a0da4">VM_EP_BLOCK_PTR</a></div><div class="ttdeci">#define VM_EP_BLOCK_PTR(ep)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00783">vm_core.h:783</a></div></div> <div class="ttc" id="vm_8c_html_ab8677f4fed08c9fffe955fb1b76dcc85"><div class="ttname"><a href="../../de/de9/vm_8c.html#ab8677f4fed08c9fffe955fb1b76dcc85">ruby_vm_event_flags</a></div><div class="ttdeci">rb_event_flag_t ruby_vm_event_flags</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00098">vm.c:98</a></div></div> <div class="ttc" id="vm_8c_html_a8db145407f3daced782ecf5b59628e24"><div class="ttname"><a href="../../de/de9/vm_8c.html#a8db145407f3daced782ecf5b59628e24">ruby_vm_collect_usage_func_register</a></div><div class="ttdeci">void(* ruby_vm_collect_usage_func_register)(int reg, int isset)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l02708">vm.c:2708</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#l00359">vm.c:359</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__vm__struct_html_af657344c7c83131ff08f714629c23cf5"><div class="ttname"><a href="../../db/d74/structrb__vm__struct.html#af657344c7c83131ff08f714629c23cf5">rb_vm_struct::thread_machine_stack_size</a></div><div class="ttdeci">size_t thread_machine_stack_size</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="structrb__vm__struct_html_a4a07bbc04dbd52ecec833ab6438a376c"><div class="ttname"><a href="../../db/d74/structrb__vm__struct.html#a4a07bbc04dbd52ecec833ab6438a376c">rb_vm_struct::load_path_snapshot</a></div><div class="ttdeci">VALUE load_path_snapshot</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00362">vm_core.h:362</a></div></div> <div class="ttc" id="vm_8c_html_a560d20e8bc93acda0fad129d707f273a"><div class="ttname"><a href="../../de/de9/vm_8c.html#a560d20e8bc93acda0fad129d707f273a">rb_vm_control_frame_block_ptr</a></div><div class="ttdeci">rb_block_t * rb_vm_control_frame_block_ptr(rb_control_frame_t *cfp)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00061">vm.c:61</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#l00692">vm_core.h:692</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#l01583">ruby.h:1583</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#l01019">ruby.h:1019</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="array_8c_html_a2ae422f2c99d019bdfe5b12008c82b90"><div class="ttname"><a href="../../dc/dcc/array_8c.html#a2ae422f2c99d019bdfe5b12008c82b90">rb_cArray</a></div><div class="ttdeci">VALUE rb_cArray</div><div class="ttdef"><b>Definition:</b> <a href="../../dc/dcc/array_8c_source.html#l00029">array.c:29</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#l00506">vm_core.h:506</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#l00452">vm_core.h:452</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="structrb__vm__struct_html_ab493c2b5acaef0bf6e74dae029e79392"><div class="ttname"><a href="../../db/d74/structrb__vm__struct.html#ab493c2b5acaef0bf6e74dae029e79392">rb_vm_struct::loaded_features_snapshot</a></div><div class="ttdeci">VALUE loaded_features_snapshot</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00366">vm_core.h:366</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="lex_8c_html_a5541f85ce416df233cce93949f0eeeca"><div class="ttname"><a href="../../d3/deb/lex_8c.html#a5541f85ce416df233cce93949f0eeeca">hash</a></div><div class="ttdeci">static unsigned int hash(const char *str, unsigned int len)</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/deb/lex_8c_source.html#l00056">lex.c:56</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#l00381">vm_core.h:381</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#l01662">vm.c:1662</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#l00103">vm.c:103</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#l02008">vm.c:2008</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#l00334">vm.c:334</a></div></div> <div class="ttc" id="vm__insnhelper_8h_html_a516b15c1ae923a154c9e721928eed6c9"><div class="ttname"><a href="../../d2/d5f/vm__insnhelper_8h.html#a516b15c1ae923a154c9e721928eed6c9">TIME_REDEFINED_OP_FLAG</a></div><div class="ttdeci">#define TIME_REDEFINED_OP_FLAG</div><div class="ttdef"><b>Definition:</b> <a href="../../d2/d5f/vm__insnhelper_8h_source.html#l00239">vm_insnhelper.h:239</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_adc5e20179bf95e62d3e01da83774c1a9"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#adc5e20179bf95e62d3e01da83774c1a9">PRIdSIZE</a></div><div class="ttdeci">#define PRIdSIZE</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00186">ruby.h:186</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#l00338">vm_core.h:338</a></div></div> <div class="ttc" id="vm__core_8h_html_aaf6f79a9848eb27bfb82ac0d3ea8e0d9"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#aaf6f79a9848eb27bfb82ac0d3ea8e0d9">EXEC_EVENT_HOOK</a></div><div class="ttdeci">#define EXEC_EVENT_HOOK(th_, flag_, self_, id_, klass_, data_)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l01000">vm_core.h:1000</a></div></div> <div class="ttc" id="ossl_8h_html_acdcc5aaebf3f273c1762f24a6ece2e5e"><div class="ttname"><a href="../../d5/dac/ossl_8h.html#acdcc5aaebf3f273c1762f24a6ece2e5e">assert</a></div><div class="ttdeci">#define assert(condition)</div><div class="ttdef"><b>Definition:</b> <a href="../../d5/dac/ossl_8h_source.html#l00045">ossl.h:45</a></div></div> <div class="ttc" id="eval_8c_html_a37deca77ace9f3694ee952f50dbab698"><div class="ttname"><a href="../../d3/d57/eval_8c.html#a37deca77ace9f3694ee952f50dbab698">rb_vm_get_cref</a></div><div class="ttdeci">NODE * rb_vm_get_cref(const rb_iseq_t *, const VALUE *)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/db2/vm__insnhelper_8c_source.html#l00288">vm_insnhelper.c:288</a></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#l00337">vm_core.h:337</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#l00292">vm_core.h:292</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#l00196">vm_core.h:196</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_a4ef7b7ff907d043bd989a7e73e1da420"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#a4ef7b7ff907d043bd989a7e73e1da420">ID2SYM</a></div><div class="ttdeci">#define ID2SYM(x)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00363">ruby.h:363</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#l00183">vm_core.h:183</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#l00069">iseq.h:69</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#l00456">vm_core.h:456</a></div></div> <div class="ttc" id="structrb__block__struct_html_a0ee5a28e75794bb397dbbd95baa7cdc0"><div class="ttname"><a href="../../da/dc0/structrb__block__struct.html#a0ee5a28e75794bb397dbbd95baa7cdc0">rb_block_struct::klass</a></div><div class="ttdeci">VALUE klass</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="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#l17012">ripper.c:17012</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#l02147">vm.c:2147</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#l00501">vm_core.h:501</a></div></div> <div class="ttc" id="st_8h_html_a1c527e6d80aae369aeda64b1080e5feb"><div class="ttname"><a href="../../dd/d24/st_8h.html#a1c527e6d80aae369aeda64b1080e5feb">st_data_t</a></div><div class="ttdeci">unsigned long st_data_t</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d24/st_8h_source.html#l00035">st.h:35</a></div></div> <div class="ttc" id="structrb__thread__struct_html_a1f263d7b7ee19fc82ea14d83ed1dc7bd"><div class="ttname"><a href="../../d2/d66/structrb__thread__struct.html#a1f263d7b7ee19fc82ea14d83ed1dc7bd">rb_thread_struct::stack_size</a></div><div class="ttdeci">size_t stack_size</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00499">vm_core.h:499</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#l00494">vm_core.h:494</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#l02138">vm.c:2138</a></div></div> <div class="ttc" id="structrb__thread__struct_html_a5125f0aae753728da5c0a02d84fd7f23"><div class="ttname"><a href="../../d2/d66/structrb__thread__struct.html#a5125f0aae753728da5c0a02d84fd7f23">rb_thread_struct::tag</a></div><div class="ttdeci">struct rb_vm_tag * tag</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00561">vm_core.h:561</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#l02166">vm.c:2166</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#l00066">iseq.h:66</a></div></div> <div class="ttc" id="vm_8c_html_a3393fad060f20895631762c9e3786693"><div class="ttname"><a href="../../de/de9/vm_8c.html#a3393fad060f20895631762c9e3786693">rb_vm_rewind_cfp</a></div><div class="ttdeci">void rb_vm_rewind_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#l00245">vm.c:245</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#l00273">thread.c:273</a></div></div> <div class="ttc" id="vm_8c_html_ac557e4980ff675519aa68af1b70c09e3"><div class="ttname"><a href="../../de/de9/vm_8c.html#ac557e4980ff675519aa68af1b70c09e3">m_core_hash_merge_kwd</a></div><div class="ttdeci">static VALUE m_core_hash_merge_kwd(VALUE recv, VALUE hash, VALUE kw)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l02250">vm.c:2250</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#l00848">vm.c:848</a></div></div> <div class="ttc" id="structrb__vm__tag_html_a013887e887e9c7a2a9b0a64b76fc8141"><div class="ttname"><a href="../../d5/d80/structrb__vm__tag.html#a013887e887e9c7a2a9b0a64b76fc8141">rb_vm_tag::retval</a></div><div class="ttdeci">VALUE retval</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00470">vm_core.h:470</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#l00047">method.h:47</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#l00764">vm_core.h:764</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#l01318">ruby.h:1318</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#l00092">id.h:92</a></div></div> <div class="ttc" id="vm_8c_html_aaf7bb4b661a43db4aeefc8b1520b3374"><div class="ttname"><a href="../../de/de9/vm_8c.html#aaf7bb4b661a43db4aeefc8b1520b3374">vm_invoke_proc</a></div><div class="ttdeci">static VALUE vm_invoke_proc(rb_thread_t *th, rb_proc_t *proc, VALUE self, VALUE defined_class, 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#l00752">vm.c:752</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#l01012">object.c:1012</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#l00301">vm.c:301</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#l00023">method.h:23</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#l01143">ruby.h:1143</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#l00361">vm_core.h:361</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#l01814">vm.c:1814</a></div></div> <div class="ttc" id="vm__core_8h_html_aa05b3d2e0f35045c65f2dbba67c5b5b2"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#aa05b3d2e0f35045c65f2dbba67c5b5b2">CHECK_VM_STACK_OVERFLOW</a></div><div class="ttdeci">#define CHECK_VM_STACK_OVERFLOW(cfp, margin)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00870">vm_core.h:870</a></div></div> <div class="ttc" id="structrb__thread__struct_html_aafba3f4f103c0c0d4bf0ff37d278c856"><div class="ttname"><a href="../../d2/d66/structrb__thread__struct.html#aafba3f4f103c0c0d4bf0ff37d278c856">rb_thread_struct::pending_interrupt_queue</a></div><div class="ttdeci">VALUE pending_interrupt_queue</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="ruby_2ruby_8h_html_a9bb99c1fc98bd5e0da36ac70200081b6"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#a9bb99c1fc98bd5e0da36ac70200081b6">rb_cSymbol</a></div><div class="ttdeci">RUBY_EXTERN VALUE rb_cSymbol</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l01458">ruby.h:1458</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#l00600">vm.c:600</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#l00870">vm.c:870</a></div></div> <div class="ttc" id="vm_8c_html_acc61d5d9ca7420b731db3b37feca72cf"><div class="ttname"><a href="../../de/de9/vm_8c.html#acc61d5d9ca7420b731db3b37feca72cf">m_core_hash_from_ary</a></div><div class="ttdeci">static VALUE m_core_hash_from_ary(VALUE self, VALUE ary)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l02205">vm.c:2205</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_acc70817286a1286e1d8dea44a00f19c7"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#acc70817286a1286e1d8dea44a00f19c7">SYMBOL_P</a></div><div class="ttdeci">#define SYMBOL_P(x)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00362">ruby.h:362</a></div></div> <div class="ttc" id="vm_8c_html_a9b24de6a9c1a3bd8a852afa2f75fe60b"><div class="ttname"><a href="../../de/de9/vm_8c.html#a9b24de6a9c1a3bd8a852afa2f75fe60b">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, VALUE klass)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01058">vm.c:1058</a></div></div> <div class="ttc" id="structrb__binding__t_html_afe9c8ed31f3c48fe77c28155a6947aa7"><div class="ttname"><a href="../../d3/d76/structrb__binding__t.html#afe9c8ed31f3c48fe77c28155a6947aa7">rb_binding_t::path</a></div><div class="ttdeci">VALUE path</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00694">vm_core.h:694</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#l00102">_sdbm.c:102</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#l00436">ruby.h:436</a></div></div> <div class="ttc" id="intern_8h_html_ad5e50a405c25d3df6ce1efc754478529"><div class="ttname"><a href="../../db/d2e/intern_8h.html#ad5e50a405c25d3df6ce1efc754478529">rb_hash_aset</a></div><div class="ttdeci">VALUE rb_hash_aset(VALUE, VALUE, VALUE)</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#l00487">ruby.h:487</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#l00600">vm_core.h:600</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#l00542">vm_core.h:542</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_aea65905581e27d40bb8cb7d329fbca29"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#aea65905581e27d40bb8cb7d329fbca29">rb_cFixnum</a></div><div class="ttdeci">RUBY_EXTERN VALUE rb_cFixnum</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l01438">ruby.h:1438</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_a66f2d68e8b195fed5d03f60cb42ba31b"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#a66f2d68e8b195fed5d03f60cb42ba31b">rb_cTime</a></div><div class="ttdeci">RUBY_EXTERN VALUE rb_cTime</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l01460">ruby.h:1460</a></div></div> <div class="ttc" id="vm_8c_html_a483f42b6e6037068287e53dc62b90985"><div class="ttname"><a href="../../de/de9/vm_8c.html#a483f42b6e6037068287e53dc62b90985">rb_vm_jump_tag_but_local_jump</a></div><div class="ttdeci">void rb_vm_jump_tag_but_local_jump(int state)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01007">vm.c:1007</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#l00264">vm_insnhelper.h:264</a></div></div> <div class="ttc" id="vm__core_8h_html_a619374642328720b7f656c69dd13faca"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a619374642328720b7f656c69dd13faca">VM_EP_LEP_P</a></div><div class="ttdeci">#define VM_EP_LEP_P(ep)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00784">vm_core.h:784</a></div></div> <div class="ttc" id="vm__insnhelper_8h_html_a3c31885aa6e36c6f67be77596ba5e8a0"><div class="ttname"><a href="../../d2/d5f/vm__insnhelper_8h.html#a3c31885aa6e36c6f67be77596ba5e8a0">HASH_REDEFINED_OP_FLAG</a></div><div class="ttdeci">#define HASH_REDEFINED_OP_FLAG</div><div class="ttdef"><b>Definition:</b> <a href="../../d2/d5f/vm__insnhelper_8h_source.html#l00236">vm_insnhelper.h:236</a></div></div> <div class="ttc" id="vm__core_8h_html_aec678927729c3dcca12b2fae241158b0"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#aec678927729c3dcca12b2fae241158b0">GET_THREAD</a></div><div class="ttdeci">static rb_thread_t * GET_THREAD(void)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00890">vm_core.h:890</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#l00117">class.c:117</a></div></div> <div class="ttc" id="st_8h_html_ace5a79870d2800659a653fceeca55262"><div class="ttname"><a href="../../dd/d24/st_8h.html#ace5a79870d2800659a653fceeca55262">st_foreach</a></div><div class="ttdeci">int st_foreach(st_table *, int(*)(ANYARGS), st_data_t)</div><div class="ttdef"><b>Definition:</b> <a href="../../d4/d71/st_8c_source.html#l01006">st.c:1006</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#l00180">eval_intern.h:180</a></div></div> <div class="ttc" id="id_8h_html_a08dd4fbd61c5fde369edd59783f753b3ab0357c7218258eb380cb0afbb4414447"><div class="ttname"><a href="../../df/db9/id_8h.html#a08dd4fbd61c5fde369edd59783f753b3ab0357c7218258eb380cb0afbb4414447">id_core_hash_from_ary</a></div><div class="ttdef"><b>Definition:</b> <a href="../../df/db9/id_8h_source.html#l00093">id.h:93</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#l01997">vm.c:1997</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#l02513">vm.c:2513</a></div></div> <div class="ttc" id="iseq_8h_html_a92be74fce09c828c57a7007d1b4a406ead5ec7bf2fd90d490a6c657d8c155fc36"><div class="ttname"><a href="../../d7/dc8/iseq_8h.html#a92be74fce09c828c57a7007d1b4a406ead5ec7bf2fd90d490a6c657d8c155fc36">DEFINED_EXPR</a></div><div class="ttdef"><b>Definition:</b> <a href="../../d7/dc8/iseq_8h_source.html#l00126">iseq.h:126</a></div></div> <div class="ttc" id="proc_8c_html_a53bda31f3f4abcfa2e20754606140079"><div class="ttname"><a href="../../d3/dda/proc_8c.html#a53bda31f3f4abcfa2e20754606140079">rb_binding_alloc</a></div><div class="ttdeci">VALUE rb_binding_alloc(VALUE klass)</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/dda/proc_8c_source.html#l00283">proc.c:283</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#l01105">vm.c:1105</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#l00902">vm_core.h:902</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#l00382">vm_core.h:382</a></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#l00530">vm_core.h:530</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#l00884">vm.c:884</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#l00131">ruby.c:131</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#l00166">eval_intern.h:166</a></div></div> <div class="ttc" id="structrb__block__struct_html_a4b6a1d10dd8dc1167703ec7999b0fbf0"><div class="ttname"><a href="../../da/dc0/structrb__block__struct.html#a4b6a1d10dd8dc1167703ec7999b0fbf0">rb_block_struct::ep</a></div><div class="ttdeci">VALUE * ep</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00445">vm_core.h:445</a></div></div> <div class="ttc" id="probes_8h_html_a67378d2fffa1615e3adff32d7a8d840d"><div class="ttname"><a href="../../d8/dc4/probes_8h.html#a67378d2fffa1615e3adff32d7a8d840d">RUBY_DTRACE_HASH_CREATE</a></div><div class="ttdeci">#define RUBY_DTRACE_HASH_CREATE(arg0, arg1, arg2)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/dc4/probes_8h_source.html#l00060">probes.h:60</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#l02107">vm_insnhelper.c:2107</a></div></div> <div class="ttc" id="vm_8c_html_a0ae707957110536968229312291ce736"><div class="ttname"><a href="../../de/de9/vm_8c.html#a0ae707957110536968229312291ce736">vm_default_params_setup</a></div><div class="ttdeci">static void vm_default_params_setup(rb_vm_t *vm)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l01771">vm.c:1771</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#l01564">vm.c:1564</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#l00681">vm_core.h:681</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#l00883">vm_core.h:883</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