📁 File Manager Pro
v10.0.3 | PHP: 8.1.34
Server: Apache
2026-06-22 04:13:13
📂
/ (Root)
/
opt
/
alt
/
ruby21
/
share
/
doc
/
ruby
/
capi
/
html
/
dd
/
daa
📍 /opt/alt/ruby21/share/doc/ruby/capi/html/dd/daa
🔄 Refresh
✏️
Editing: pepper__main_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: nacl/pepper_main.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.1.10p492(2016-04-01revision54464)</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 id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="../../dir_87040aae30583e816536d9e91a378ce3.html">nacl</a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="headertitle"> <div class="title">pepper_main.c</div> </div> </div><!--header--> <div class="contents"> <a href="../../dd/daa/pepper__main_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"> Copyright 2012 Google Inc. All Rights Reserved.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> Author: yugui@google.com (Yugui Sonoda)</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> </div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include <stdlib.h></span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="preprocessor">#include <stdio.h></span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor">#include <string.h></span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#include <pthread.h></span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#include <sys/stat.h></span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#include <fcntl.h></span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <pthread.h></span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include "ppapi/c/pp_errors.h"</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include "ppapi/c/pp_module.h"</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include "ppapi/c/pp_var.h"</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "ppapi/c/ppb.h"</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "ppapi/c/ppb_core.h"</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "ppapi/c/ppb_file_ref.h"</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "ppapi/c/ppb_instance.h"</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "ppapi/c/ppb_messaging.h"</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include "ppapi/c/ppb_url_loader.h"</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include "ppapi/c/ppb_url_request_info.h"</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include "ppapi/c/ppb_url_response_info.h"</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include "ppapi/c/ppb_var.h"</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include "ppapi/c/ppp.h"</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include "ppapi/c/ppp_instance.h"</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "ppapi/c/ppp_messaging.h"</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "<a class="code" href="../../de/d9e/verconf_8h.html">verconf.h</a>"</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</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="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "<a class="code" href="../../df/dfc/version_8h.html">version.h</a>"</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include "<a class="code" href="../../d0/daa/gc_8h.html">gc.h</a>"</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> <span class="preprocessor">#ifdef HAVE_STRUCT_PPB_CORE</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">typedef</span> <span class="keyword">struct </span>PPB_Core PPB_Core;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#ifdef HAVE_STRUCT_PPB_MESSAGING</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">typedef</span> <span class="keyword">struct </span>PPB_Messaging PPB_Messaging;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#ifdef HAVE_STRUCT_PPB_VAR</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">typedef</span> <span class="keyword">struct </span>PPB_Var PPB_Var;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#ifdef HAVE_STRUCT_PPB_URLLOADER</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">typedef</span> <span class="keyword">struct </span>PPB_URLLoader PPB_URLLoader;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#ifdef HAVE_STRUCT_PPB_URLREQUESTINFO</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">typedef</span> <span class="keyword">struct </span>PPB_URLRequestInfo PPB_URLRequestInfo;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#ifdef HAVE_STRUCT_PPB_URLRESPONSEINFO</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">typedef</span> <span class="keyword">struct </span>PPB_URLResponseInfo PPB_URLResponseInfo;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor">#ifdef HAVE_STRUCT_PPP_INSTANCE</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">typedef</span> <span class="keyword">struct </span>PPP_Instance PPP_Instance;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#a91350345b91bd6f3dea8665f7a203df9"> 56</a></span> <span class="keyword">static</span> PP_Module <a class="code" href="../../dd/daa/pepper__main_8c.html#a91350345b91bd6f3dea8665f7a203df9">module_id</a> = 0;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#a91f94620c22725285b27d3f5b3b8f639"> 57</a></span> <span class="keyword">static</span> PPB_Core* <a class="code" href="../../dd/daa/pepper__main_8c.html#a91f94620c22725285b27d3f5b3b8f639">core_interface</a> = <a class="code" href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#a0d33bf87161dc521ce41fef63dd5ced9"> 58</a></span> <span class="keyword">static</span> PPB_Messaging* <a class="code" href="../../dd/daa/pepper__main_8c.html#a0d33bf87161dc521ce41fef63dd5ced9">messaging_interface</a> = <a class="code" href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#a6f75132fd783752578455a2bb90f1b80"> 59</a></span> <span class="keyword">static</span> PPB_Var* <a class="code" href="../../dd/daa/pepper__main_8c.html#a6f75132fd783752578455a2bb90f1b80">var_interface</a> = <a class="code" href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#a80cf91f02e68f434ca40a9751a29f192"> 60</a></span> <span class="keyword">static</span> PPB_URLLoader* <a class="code" href="../../dd/daa/pepper__main_8c.html#a80cf91f02e68f434ca40a9751a29f192">loader_interface</a> = <a class="code" href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#a6175b15ce78abc0548f8479f4c9cb0cc"> 61</a></span> <span class="keyword">static</span> PPB_URLRequestInfo* <a class="code" href="../../dd/daa/pepper__main_8c.html#a6175b15ce78abc0548f8479f4c9cb0cc">request_interface</a> = <a class="code" href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#a1c9445b761f4a24f528b4e8d52edaf78"> 62</a></span> <span class="keyword">static</span> PPB_URLResponseInfo* <a class="code" href="../../dd/daa/pepper__main_8c.html#a1c9445b761f4a24f528b4e8d52edaf78">response_interface</a> = <a class="code" href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#a8fc47673ef30ab73335c829d1beebae9"> 63</a></span> <span class="keyword">static</span> PPB_FileRef* <a class="code" href="../../dd/daa/pepper__main_8c.html#a8fc47673ef30ab73335c829d1beebae9">fileref_interface</a> = <a class="code" href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#ac7ab6e59ba2cc6e94c1e366cce25e5e5"> 64</a></span> <span class="keyword">static</span> <span class="keyword">struct </span><a class="code" href="../../d0/ddd/structst__table.html">st_table</a>* <a class="code" href="../../dd/daa/pepper__main_8c.html#ac7ab6e59ba2cc6e94c1e366cce25e5e5">instance_data</a> = <a class="code" href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#aff2d85dac238842527c0e770f2a64f7e"> 66</a></span> <span class="keyword">static</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../dd/daa/pepper__main_8c.html#aff2d85dac238842527c0e770f2a64f7e">instance_table</a> = <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a2edf6990280eb2637623ccd421dee4f0">Qundef</a>;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#a0fff3013eeb0c496901e2ad4addd657a"> 68</a></span> <span class="keyword">static</span> PP_Instance <a class="code" href="../../dd/daa/pepper__main_8c.html#a0fff3013eeb0c496901e2ad4addd657a">current_instance</a> = 0;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="comment">/******************************************************************************</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="comment"> * State of instance</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="comment"> ******************************************************************************/</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="../../dd/daa/pepper__main_8c.html#a897c636865cd10da6709116e982ab4ec">inst_mark</a>(<span class="keywordtype">void</span> *<span class="keyword">const</span> ptr);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="../../dd/daa/pepper__main_8c.html#a943ed084905ba638819fa85406672436">inst_free</a>(<span class="keywordtype">void</span> *<span class="keyword">const</span> ptr);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="keyword">static</span> <span class="keywordtype">size_t</span> <a class="code" href="../../dd/daa/pepper__main_8c.html#ad8a00d689e88df5b39159416ad411a6c">inst_memsize</a>(<span class="keywordtype">void</span> *<span class="keyword">const</span> ptr);</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#ae8af2f25465a1481368e5d8516cd9ba0"> 77</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="../../dd/daa/pepper__main_8c.html#ae8af2f25465a1481368e5d8516cd9ba0">pepper_instance_data_type</a> = {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="stringliteral">"PepperInstance"</span>,</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  { <a class="code" href="../../dd/daa/pepper__main_8c.html#a897c636865cd10da6709116e982ab4ec">inst_mark</a>, <a class="code" href="../../dd/daa/pepper__main_8c.html#a943ed084905ba638819fa85406672436">inst_free</a>, <a class="code" href="../../dd/daa/pepper__main_8c.html#ad8a00d689e88df5b39159416ad411a6c">inst_memsize</a> }</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> </div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="../../d2/d9b/struct_pepper_instance.html"> 82</a></span> <span class="keyword">struct </span><a class="code" href="../../d2/d9b/struct_pepper_instance.html">PepperInstance</a> {</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76"> 83</a></span>  PP_Instance <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>;</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="../../d2/d9b/struct_pepper_instance.html#ab8f62c5c128c2164fe6157ebcc0b684f"> 84</a></span>  PP_Resource <a class="code" href="../../d2/d9b/struct_pepper_instance.html#ab8f62c5c128c2164fe6157ebcc0b684f">url_loader</a>;</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="../../d2/d9b/struct_pepper_instance.html#a712601b08be8ebe9018286df0fc2515c"> 85</a></span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <span class="keyword">self</span>;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="../../d2/d9b/struct_pepper_instance.html#af0e3c411d7cb6cdde11bd2b7ce71ae0b"> 86</a></span>  <span class="keywordtype">void</span>* <a class="code" href="../../d2/d9b/struct_pepper_instance.html#af0e3c411d7cb6cdde11bd2b7ce71ae0b">async_call_args</a>;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keyword">union </span>{</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="../../d2/d9b/struct_pepper_instance.html#a81e2e931090a90a9b5bb993d36879253"> 88</a></span>  int32_t <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a81e2e931090a90a9b5bb993d36879253">as_int</a>;</div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="../../d2/d9b/struct_pepper_instance.html#a39fc3bc153090b31bc99a5e12435ae3f"> 89</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a39fc3bc153090b31bc99a5e12435ae3f">as_str</a>;</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="../../d2/d9b/struct_pepper_instance.html#ac10b6e75dc96f18c35139ea25cb4a320"> 90</a></span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../d2/d9b/struct_pepper_instance.html#ac10b6e75dc96f18c35139ea25cb4a320">as_value</a>;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  } <a class="code" href="../../d2/d9b/struct_pepper_instance.html#ac8ae08730e601079e55f6f34c7770f80">async_call_result</a>;</div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="../../d2/d9b/struct_pepper_instance.html#af99b002ce196dc05488814c0a3714b5f"> 92</a></span>  <span class="keywordtype">char</span> <a class="code" href="../../d2/d9b/struct_pepper_instance.html#af99b002ce196dc05488814c0a3714b5f">buf</a>[1000];</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/d9b/struct_pepper_instance.html#a6daf5ecb16a308f71f3a7b10e3e6da8a"> 94</a></span>  pthread_t <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a6daf5ecb16a308f71f3a7b10e3e6da8a">th</a>;</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="../../d2/d9b/struct_pepper_instance.html#a262b532157707ef08ca2b462c9f349c8"> 95</a></span>  pthread_mutex_t <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a262b532157707ef08ca2b462c9f349c8">mutex</a>;</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="../../d2/d9b/struct_pepper_instance.html#aa4884406a63b685e751978b83e7c669c"> 96</a></span>  pthread_cond_t <a class="code" href="../../d2/d9b/struct_pepper_instance.html#aa4884406a63b685e751978b83e7c669c">cond</a>;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> };</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="keyword">struct </span><a class="code" href="../../d2/d9b/struct_pepper_instance.html">PepperInstance</a>*</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#aa958e9b1b5bbe3d9dfc223b05267869b"> 100</a></span> <a class="code" href="../../dd/daa/pepper__main_8c.html#aa958e9b1b5bbe3d9dfc223b05267869b">pruby_get_instance</a>(PP_Instance <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>)</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>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <span class="keyword">self</span> = <a class="code" href="../../d1/d04/hash_8c.html#ab7063832c7ed02351e87922a78e35c32">rb_hash_aref</a>(<a class="code" href="../../dd/daa/pepper__main_8c.html#aff2d85dac238842527c0e770f2a64f7e">instance_table</a>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac55fae7f748afd3fc2533d0d7d06cf5a">INT2FIX</a>(<a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>));</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keywordflow">if</span> (<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a117741045763c090b26e30a85bd0e0a6">RTEST</a>(<span class="keyword">self</span>)) {</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keyword">struct </span><a class="code" href="../../d2/d9b/struct_pepper_instance.html">PepperInstance</a> *inst;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a8dce6624396c492cdd1af3a4c5871556">TypedData_Get_Struct</a>(<span class="keyword">self</span>, <span class="keyword">struct</span> <a class="code" href="../../d2/d9b/struct_pepper_instance.html">PepperInstance</a>, &<a class="code" href="../../dd/daa/pepper__main_8c.html#ae8af2f25465a1481368e5d8516cd9ba0">pepper_instance_data_type</a>, inst);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keywordflow">return</span> inst;</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="keywordflow">else</span> {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keywordflow">return</span> <a class="code" href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  }</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span> }</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#ab22a565267c12827bf0ff47c8e1043f4"> 113</a></span> <span class="preprocessor">#define GET_PEPPER_INSTANCE() (pruby_get_instance(current_instance))</span></div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="keyword">struct </span><a class="code" href="../../d2/d9b/struct_pepper_instance.html">PepperInstance</a>*</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#a0b85b2cb59d6757752241b38c4b8a4dc"> 116</a></span> <a class="code" href="../../dd/daa/pepper__main_8c.html#a0b85b2cb59d6757752241b38c4b8a4dc">pruby_register_instance</a>(PP_Instance <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>)</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span> {</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> obj;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keyword">struct </span><a class="code" href="../../d2/d9b/struct_pepper_instance.html">PepperInstance</a> *data;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  obj = <a class="code" href="../../de/de6/ruby_2ruby_8h.html#acb14aa93d3dc60a9d16570270154e6fa">TypedData_Make_Struct</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a39cf94183e6d744167ae5f6a7bde0363">rb_cData</a>, <span class="keyword">struct</span> <a class="code" href="../../d2/d9b/struct_pepper_instance.html">PepperInstance</a>, &<a class="code" href="../../dd/daa/pepper__main_8c.html#ae8af2f25465a1481368e5d8516cd9ba0">pepper_instance_data_type</a>, data);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  data-><a class="code" href="../../d2/d9b/struct_pepper_instance.html#a712601b08be8ebe9018286df0fc2515c">self</a> = obj;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  data-><a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a> = <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  data-><a class="code" href="../../d2/d9b/struct_pepper_instance.html#ab8f62c5c128c2164fe6157ebcc0b684f">url_loader</a> = 0;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  pthread_mutex_init(&data-><a class="code" href="../../d2/d9b/struct_pepper_instance.html#a262b532157707ef08ca2b462c9f349c8">mutex</a>, <a class="code" href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  pthread_cond_init(&data-><a class="code" href="../../d2/d9b/struct_pepper_instance.html#aa4884406a63b685e751978b83e7c669c">cond</a>, <a class="code" href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <a class="code" href="../../d1/d04/hash_8c.html#ac477edf136d86a33bc06d1fbea67bb9a">rb_hash_aset</a>(<a class="code" href="../../dd/daa/pepper__main_8c.html#aff2d85dac238842527c0e770f2a64f7e">instance_table</a>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac55fae7f748afd3fc2533d0d7d06cf5a">INT2FIX</a>(<a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>), obj);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keywordflow">return</span> data;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span> }</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="keywordtype">int</span></div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#a2d2717434dadc0a18d09ab41d08d63f7"> 133</a></span> <a class="code" href="../../dd/daa/pepper__main_8c.html#a2d2717434dadc0a18d09ab41d08d63f7">pruby_unregister_instance</a>(PP_Instance <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>)</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>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> inst = <a class="code" href="../../d1/d04/hash_8c.html#a70c8d95c2537fbdde12b368a8bfa94b1">rb_hash_delete</a>(<a class="code" href="../../dd/daa/pepper__main_8c.html#aff2d85dac238842527c0e770f2a64f7e">instance_table</a>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac55fae7f748afd3fc2533d0d7d06cf5a">INT2FIX</a>(<a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>));</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keywordflow">return</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a117741045763c090b26e30a85bd0e0a6">RTEST</a>(inst);</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> </div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#a897c636865cd10da6709116e982ab4ec"> 140</a></span> <a class="code" href="../../dd/daa/pepper__main_8c.html#a897c636865cd10da6709116e982ab4ec">inst_mark</a>(<span class="keywordtype">void</span> *<span class="keyword">const</span> ptr)</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span> {</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <a class="code" href="../../d0/daa/gc_8h.html#a2aa4d10eb84bae94811007f68c795fb7">RUBY_MARK_ENTER</a>(<span class="stringliteral">"PepperInstance"</span>0);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keywordflow">if</span> (ptr) {</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="../../d2/d9b/struct_pepper_instance.html">PepperInstance</a>* inst = (<span class="keyword">struct </span><a class="code" href="../../d2/d9b/struct_pepper_instance.html">PepperInstance</a>*)ptr;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <a class="code" href="../../d0/daa/gc_8h.html#afad3c58fae104a867be4305d1f96414a">RUBY_MARK_UNLESS_NULL</a>(inst-><a class="code" href="../../d2/d9b/struct_pepper_instance.html#ac8ae08730e601079e55f6f34c7770f80">async_call_result</a>.<a class="code" href="../../d2/d9b/struct_pepper_instance.html#ac10b6e75dc96f18c35139ea25cb4a320">as_value</a>);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  }</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <a class="code" href="../../d0/daa/gc_8h.html#a036115d8c044f5c847e760c57b08e5a9">RUBY_MARK_LEAVE</a>(<span class="stringliteral">"PepperInstance"</span>0);</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span> }</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span> </div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#a943ed084905ba638819fa85406672436"> 151</a></span> <a class="code" href="../../dd/daa/pepper__main_8c.html#a943ed084905ba638819fa85406672436">inst_free</a>(<span class="keywordtype">void</span> *<span class="keyword">const</span> ptr)</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span> {</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <a class="code" href="../../d8/d16/gc_8c.html#a0bffec5b2cc004adcebb6802e7620387">ruby_xfree</a>(ptr);</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> </div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="keyword">static</span> <span class="keywordtype">size_t</span></div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#ad8a00d689e88df5b39159416ad411a6c"> 157</a></span> <a class="code" href="../../dd/daa/pepper__main_8c.html#ad8a00d689e88df5b39159416ad411a6c">inst_memsize</a>(<span class="keywordtype">void</span> *<span class="keyword">const</span> ptr)</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span> {</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keywordflow">if</span> (ptr) {</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="../../d2/d9b/struct_pepper_instance.html">PepperInstance</a>* inst = (<span class="keyword">struct </span><a class="code" href="../../d2/d9b/struct_pepper_instance.html">PepperInstance</a>*)ptr;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="keywordflow">return</span> <span class="keyword">sizeof</span>(*inst);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  }</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span> }</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> <span class="keywordtype">void</span></div><div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#abe891b4e150c031153e9ef9cbc3b7886"> 168</a></span> <a class="code" href="../../dd/daa/pepper__main_8c.html#abe891b4e150c031153e9ef9cbc3b7886">pruby_async_return_int</a>(<span class="keywordtype">void</span>* data, int32_t <a class="code" href="../../d8/d90/nkf_8c.html#a5ea5ac7abf5cce39283e422add1067d5">result</a>)</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span> {</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="comment">/* PPAPI main thread */</span></div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keyword">struct </span><a class="code" href="../../d2/d9b/struct_pepper_instance.html">PepperInstance</a>* <span class="keyword">const</span> <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a> = (<span class="keyword">struct </span><a class="code" href="../../d2/d9b/struct_pepper_instance.html">PepperInstance</a>*)data;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->async_call_result.as_int = <a class="code" href="../../d8/d90/nkf_8c.html#a5ea5ac7abf5cce39283e422add1067d5">result</a>;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="keywordflow">if</span> (pthread_cond_signal(&<a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->cond)) {</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  perror(<span class="stringliteral">"pepper-ruby:pthread_cond_signal"</span>);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  }</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> </div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#a4735205bd94299248a596a486ef99e5a"> 179</a></span> <a class="code" href="../../dd/daa/pepper__main_8c.html#a4735205bd94299248a596a486ef99e5a">pruby_async_return_str</a>(<span class="keywordtype">void</span>* data, <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="../../d8/d90/nkf_8c.html#a5ea5ac7abf5cce39283e422add1067d5">result</a>)</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">/* PPAPI main thread */</span></div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="keyword">struct </span><a class="code" href="../../d2/d9b/struct_pepper_instance.html">PepperInstance</a>* <span class="keyword">const</span> <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a> = (<span class="keyword">struct </span><a class="code" href="../../d2/d9b/struct_pepper_instance.html">PepperInstance</a>*)data;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->async_call_result.as_str = <a class="code" href="../../d8/d90/nkf_8c.html#a5ea5ac7abf5cce39283e422add1067d5">result</a>;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="keywordflow">if</span> (pthread_cond_signal(&<a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->cond)) {</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  perror(<span class="stringliteral">"pepper-ruby:pthread_cond_signal"</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> </div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#ae46acee2188abcb768d6e1426e833281"> 190</a></span> <a class="code" href="../../dd/daa/pepper__main_8c.html#ae46acee2188abcb768d6e1426e833281">pruby_async_return_value</a>(<span class="keywordtype">void</span>* data, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> value)</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span> {</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="comment">/* PPAPI main thread */</span></div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="keyword">struct </span><a class="code" href="../../d2/d9b/struct_pepper_instance.html">PepperInstance</a>* <span class="keyword">const</span> <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a> = (<span class="keyword">struct </span><a class="code" href="../../d2/d9b/struct_pepper_instance.html">PepperInstance</a>*)data;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->async_call_result.as_value = value;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <span class="keywordflow">if</span> (pthread_cond_signal(&<a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->cond)) {</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  perror(<span class="stringliteral">"pepper-ruby:pthread_cond_signal"</span>);</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  }</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span> }</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="comment">/******************************************************************************</span></div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="comment"> * Conversion between Ruby's VALUE, Pepper's Var and C string</span></div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span> <span class="comment"> ******************************************************************************/</span></div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span> </div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <span class="keyword">static</span> <span class="keyword">struct </span>PP_Var</div><div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#a87a46b5d31052af560407f8b0c342a09"> 211</a></span> <a class="code" href="../../dd/daa/pepper__main_8c.html#a87a46b5d31052af560407f8b0c342a09">pruby_cstr_to_var</a>(<a class="code" href="../../d8/d4e/strftime_8c.html#a2c212835823e3c54a8ab6d95c652660e">const</a> char* str)</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span> {</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="preprocessor">#ifdef PPB_VAR_INTERFACE_1_0</span></div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="keywordflow">if</span> (<a class="code" href="../../dd/daa/pepper__main_8c.html#a6f75132fd783752578455a2bb90f1b80">var_interface</a> != <a class="code" href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keywordflow">return</span> <a class="code" href="../../dd/daa/pepper__main_8c.html#a6f75132fd783752578455a2bb90f1b80">var_interface</a>->VarFromUtf8(<a class="code" href="../../dd/daa/pepper__main_8c.html#a91350345b91bd6f3dea8665f7a203df9">module_id</a>, str, <a class="code" href="../../d6/d7b/strchr_8c.html#a219836f542ce53545052bed5353820ca">strlen</a>(str));</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="keywordflow">return</span> PP_MakeUndefined();</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="keywordflow">return</span> <a class="code" href="../../dd/daa/pepper__main_8c.html#a6f75132fd783752578455a2bb90f1b80">var_interface</a>->VarFromUtf8(str, <a class="code" href="../../d6/d7b/strchr_8c.html#a219836f542ce53545052bed5353820ca">strlen</a>(str));</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span> <span class="preprocessor">#endif</span></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> </div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span> <span class="keyword">static</span> <span class="keywordtype">char</span>*</div><div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#a529351626ac8da3fe3908c0c64c2b545"> 233</a></span> <a class="code" href="../../dd/daa/pepper__main_8c.html#a529351626ac8da3fe3908c0c64c2b545">pruby_var_to_cstr</a>(<span class="keyword">struct</span> PP_Var var)</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span> {</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <a class="code" href="../../db/d4d/sha2_8h.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> len = 0;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <span class="keywordflow">if</span> (<a class="code" href="../../dd/daa/pepper__main_8c.html#a6f75132fd783752578455a2bb90f1b80">var_interface</a> != <a class="code" href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>) {</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* var_c_str = <a class="code" href="../../dd/daa/pepper__main_8c.html#a6f75132fd783752578455a2bb90f1b80">var_interface</a>->VarToUtf8(var, &len);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <span class="keywordflow">if</span> (len > 0) {</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="keywordtype">char</span>* c_str = (<span class="keywordtype">char</span>*)<a class="code" href="../../d5/d11/ripper_8c.html#acf143577800376dd931c059ecc61ba06">malloc</a>(len + 1);</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  memcpy(c_str, var_c_str, len);</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  c_str[len] = <span class="charliteral">'\0'</span>;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <span class="keywordflow">return</span> c_str;</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>  }</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="keywordflow">return</span> <a class="code" href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</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> </div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <span class="keyword">static</span> <span class="keyword">struct </span>PP_Var</div><div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#a1e24a8fdd0caf7104c3deba4fa9531f8"> 249</a></span> <a class="code" href="../../dd/daa/pepper__main_8c.html#a1e24a8fdd0caf7104c3deba4fa9531f8">pruby_str_to_var</a>(volatile <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> str)</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span> {</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="keywordflow">if</span> (!<a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac4f895997656c2abd27a29a8b8e982ca">RB_TYPE_P</a>(str, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a22a8c2a4bbaae9b68f65c9bb92fd4e39">T_STRING</a>)) {</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  fprintf(stderr, <span class="stringliteral">"[BUG] Unexpected object type: %x\n"</span>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a394faf7191f18552a20cb17ce14226f0">TYPE</a>(str));</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  exit(<a class="code" href="../../dd/dd0/eval__intern_8h.html#a73efe787c131b385070f25d18b7c9aa4">EXIT_FAILURE</a>);</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="preprocessor">#ifdef PPB_VAR_INTERFACE_1_0</span></div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <span class="keywordflow">if</span> (<a class="code" href="../../dd/daa/pepper__main_8c.html#a6f75132fd783752578455a2bb90f1b80">var_interface</a> != <a class="code" href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>) {</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <span class="keywordflow">return</span> <a class="code" href="../../dd/daa/pepper__main_8c.html#a6f75132fd783752578455a2bb90f1b80">var_interface</a>->VarFromUtf8(<a class="code" href="../../dd/daa/pepper__main_8c.html#a91350345b91bd6f3dea8665f7a203df9">module_id</a>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3f0e4e2b6d073369cc1c2ddde00b13bb">RSTRING_PTR</a>(str), <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a0d1c6e4431397f8bd285073af0d98d77">RSTRING_LEN</a>(str));</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  }</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <span class="keywordflow">return</span> <a class="code" href="../../dd/daa/pepper__main_8c.html#a6f75132fd783752578455a2bb90f1b80">var_interface</a>->VarFromUtf8(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3f0e4e2b6d073369cc1c2ddde00b13bb">RSTRING_PTR</a>(str), <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a0d1c6e4431397f8bd285073af0d98d77">RSTRING_LEN</a>(str));</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <span class="keywordflow">return</span> PP_MakeUndefined();</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span> }</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span> </div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span> <span class="keyword">static</span> <span class="keyword">struct </span>PP_Var</div><div class="line"><a name="l00266"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#a8025ad33a14547b64b263f20fab2170d"> 266</a></span> <a class="code" href="../../dd/daa/pepper__main_8c.html#a8025ad33a14547b64b263f20fab2170d">pruby_obj_to_var</a>(volatile <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> obj)</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>  <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> error =</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  <span class="stringliteral">"throw 'Failed to convert the result to a JavaScript object';"</span>;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <span class="keywordtype">int</span> state;</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  obj = <a class="code" href="../../d3/d57/eval_8c.html#a6aa7fb1169ed41978a16375b6f921b0e">rb_protect</a>(&<a class="code" href="../../db/d2e/intern_8h.html#acae5350f5d539c4654e4e33690256a9f">rb_obj_as_string</a>, obj, &state);</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <span class="keywordflow">if</span> (!state) {</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <span class="keywordflow">return</span> <a class="code" href="../../dd/daa/pepper__main_8c.html#a1e24a8fdd0caf7104c3deba4fa9531f8">pruby_str_to_var</a>(obj);</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  }</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <span class="keywordflow">return</span> <a class="code" href="../../dd/daa/pepper__main_8c.html#a87a46b5d31052af560407f8b0c342a09">pruby_cstr_to_var</a>(error);</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  }</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span> }</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span> </div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span> <span class="keywordtype">int</span></div><div class="line"><a name="l00281"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#a0b0e6534f499e1d95edd48dcfa2c9cbb"> 281</a></span> <a class="code" href="../../dd/daa/pepper__main_8c.html#a0b0e6534f499e1d95edd48dcfa2c9cbb">pruby_var_equal_to_cstr_p</a>(<span class="keyword">struct</span> PP_Var lhs, <span class="keyword">const</span> <span class="keywordtype">char</span>* rhs)</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span> {</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <a class="code" href="../../db/d4d/sha2_8h.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> len = 0;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <span class="keywordflow">if</span> (<a class="code" href="../../dd/daa/pepper__main_8c.html#a6f75132fd783752578455a2bb90f1b80">var_interface</a> == <a class="code" href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>) {</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <span class="keywordflow">return</span> 0;</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>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> cstr = <a class="code" href="../../dd/daa/pepper__main_8c.html#a6f75132fd783752578455a2bb90f1b80">var_interface</a>->VarToUtf8(lhs, &len);</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <span class="keywordflow">return</span> strncmp(cstr, rhs, len) == 0;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</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> </div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span> <span class="keywordtype">int</span></div><div class="line"><a name="l00294"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#adc00d8f27cda214153231f33b1698c58"> 294</a></span> <a class="code" href="../../dd/daa/pepper__main_8c.html#adc00d8f27cda214153231f33b1698c58">pruby_var_prefixed_p</a>(<span class="keyword">struct</span> PP_Var var, <span class="keyword">const</span> <span class="keywordtype">char</span>* prefix)</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span> {</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  <a class="code" href="../../db/d4d/sha2_8h.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> len = 0;</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  <span class="keywordflow">if</span> (<a class="code" href="../../dd/daa/pepper__main_8c.html#a6f75132fd783752578455a2bb90f1b80">var_interface</a> == <a class="code" href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>) {</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  }</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> cstr = <a class="code" href="../../dd/daa/pepper__main_8c.html#a6f75132fd783752578455a2bb90f1b80">var_interface</a>->VarToUtf8(var, &len);</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <span class="keyword">const</span> <span class="keywordtype">size_t</span> prefix_len = <a class="code" href="../../d6/d7b/strchr_8c.html#a219836f542ce53545052bed5353820ca">strlen</a>(prefix);</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <span class="keywordflow">return</span> len >= prefix_len && <a class="code" href="../../d5/d21/memcmp_8c.html#a1499ab2d0a3da86cbc3e688294f60a48">memcmp</a>(cstr, prefix, len) == 0;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  }</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> </div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span> </div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span> <span class="comment">/******************************************************************************</span></div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span> <span class="comment"> * Messaging</span></div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span> <span class="comment"> ******************************************************************************/</span></div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span> </div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span> <span class="comment">/* Posts the given C string as a message.</span></div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span> <span class="comment"> * @param data pointer to a NULL-terminated string */</span></div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00315"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#a3fd1054111e98240863eb622eb759515"> 315</a></span> <a class="code" href="../../dd/daa/pepper__main_8c.html#a3fd1054111e98240863eb622eb759515">pruby_post_cstr</a>(<span class="keywordtype">void</span>* data)</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span> {</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="comment">/* PPAPI main thread */</span></div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  <span class="keyword">struct </span><a class="code" href="../../d2/d9b/struct_pepper_instance.html">PepperInstance</a>* <span class="keyword">const</span> <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a> = (<span class="keyword">struct </span><a class="code" href="../../d2/d9b/struct_pepper_instance.html">PepperInstance</a>*)data;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> <a class="code" href="../../d5/d04/strerror_8c.html#ae4f3f55be5de649fd367081b9d1b4b0c">msg</a> = (<span class="keyword">const</span> <span class="keywordtype">char</span>*)<a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->async_call_args;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <a class="code" href="../../dd/daa/pepper__main_8c.html#a0d33bf87161dc521ce41fef63dd5ced9">messaging_interface</a>->PostMessage(<a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->instance,</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <a class="code" href="../../dd/daa/pepper__main_8c.html#a87a46b5d31052af560407f8b0c342a09">pruby_cstr_to_var</a>(<a class="code" href="../../d5/d04/strerror_8c.html#ae4f3f55be5de649fd367081b9d1b4b0c">msg</a>));</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span> }</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span> </div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span> <span class="comment">/* Posts the given Ruby VALUE as a message.</span></div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span> <span class="comment"> * @param data a VALUE casted to void* */</span></div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00327"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#af6cde458a52cf2593ffc2ebcc856a477"> 327</a></span> <a class="code" href="../../dd/daa/pepper__main_8c.html#af6cde458a52cf2593ffc2ebcc856a477">pruby_post_value</a>(<span class="keywordtype">void</span>* data)</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>  <span class="comment">/* PPAPI main thread */</span></div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <span class="keyword">struct </span><a class="code" href="../../d2/d9b/struct_pepper_instance.html">PepperInstance</a>* <span class="keyword">const</span> <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a> = (<span class="keyword">struct </span><a class="code" href="../../d2/d9b/struct_pepper_instance.html">PepperInstance</a>*)data;</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  <span class="keyword">volatile</span> <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="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->async_call_args;</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <a class="code" href="../../dd/daa/pepper__main_8c.html#a0d33bf87161dc521ce41fef63dd5ced9">messaging_interface</a>->PostMessage(<a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->instance, <a class="code" href="../../dd/daa/pepper__main_8c.html#a8025ad33a14547b64b263f20fab2170d">pruby_obj_to_var</a>(value));</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span> }</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span> </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> </div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span> <span class="comment">/******************************************************************************</span></div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span> <span class="comment"> * Ruby initialization</span></div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span> <span class="comment"> ******************************************************************************/</span></div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span> </div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00342"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#a559d5b65eb5fea0a5b6fbf1a4aa2327c"> 342</a></span> <a class="code" href="../../dd/daa/pepper__main_8c.html#a559d5b65eb5fea0a5b6fbf1a4aa2327c">init_loadpath</a>(<span class="keywordtype">void</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>  <a class="code" href="../../de/d43/group__embed.html#ga396d18f1de73ca9b8f6a3896adb3067a">ruby_incpush</a>(<span class="stringliteral">"lib/ruby/"</span>RUBY_LIB_VERSION);</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  <a class="code" href="../../de/d43/group__embed.html#ga396d18f1de73ca9b8f6a3896adb3067a">ruby_incpush</a>(<span class="stringliteral">"lib/ruby/"</span>RUBY_LIB_VERSION<span class="stringliteral">"/"</span><a class="code" href="../../d8/db0/defines_8h.html#a88a5f2518a95ad0105db35166afe6220">RUBY_PLATFORM</a>);</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  <a class="code" href="../../de/d43/group__embed.html#ga396d18f1de73ca9b8f6a3896adb3067a">ruby_incpush</a>(<span class="stringliteral">"."</span>);</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> </div><div class="line"><a name="l00349"></a><span class="lineno"> 349</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="l00350"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#afc42d46cba3185feadc395112fe6799a"> 350</a></span> <a class="code" href="../../dd/daa/pepper__main_8c.html#afc42d46cba3185feadc395112fe6799a">init_libraries_internal</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> unused)</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span> {</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="../../d3/dfe/dmyext_8c.html#a2eb1c7452da49391801c244eb05c130a">Init_enc</a>();</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="../../d3/dfe/dmyext_8c.html#a7950db01edfb5beddf33ef6b78e880c9">Init_ext</a>();</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span> </div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <a class="code" href="../../dd/daa/pepper__main_8c.html#a559d5b65eb5fea0a5b6fbf1a4aa2327c">init_loadpath</a>();</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <a class="code" href="../../d3/dfe/dmyext_8c.html#a2eb1c7452da49391801c244eb05c130a">Init_enc</a>();</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  <a class="code" href="../../d3/dfe/dmyext_8c.html#a7950db01edfb5beddf33ef6b78e880c9">Init_ext</a>();</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</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="l00359"></a><span class="lineno"> 359</span> }</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span> </div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span> <span class="keyword">static</span> <span class="keywordtype">void</span>*</div><div class="line"><a name="l00362"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#ab934b8cd8bb524c063c1d220a70185e1"> 362</a></span> <a class="code" href="../../dd/daa/pepper__main_8c.html#ab934b8cd8bb524c063c1d220a70185e1">init_libraries</a>(<span class="keywordtype">void</span>* data)</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="keywordtype">int</span> state;</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  <span class="keyword">struct </span><a class="code" href="../../d2/d9b/struct_pepper_instance.html">PepperInstance</a>* <span class="keyword">const</span> <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a> = (<span class="keyword">struct </span><a class="code" href="../../d2/d9b/struct_pepper_instance.html">PepperInstance</a>*)data;</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  <a class="code" href="../../dd/daa/pepper__main_8c.html#a0fff3013eeb0c496901e2ad4addd657a">current_instance</a> = <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->instance;</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span> </div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  <span class="keywordflow">if</span> (pthread_mutex_lock(&<a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->mutex)) {</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  perror(<span class="stringliteral">"pepper-ruby:pthread_mutex_lock"</span>);</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  }</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <a class="code" href="../../d3/d57/eval_8c.html#a6aa7fb1169ed41978a16375b6f921b0e">rb_protect</a>(&<a class="code" href="../../dd/daa/pepper__main_8c.html#afc42d46cba3185feadc395112fe6799a">init_libraries_internal</a>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>, &state);</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  pthread_mutex_unlock(&<a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->mutex);</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>  <span class="keywordflow">if</span> (state) {</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <span class="keyword">volatile</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../d5/df2/win32_8c.html#a6ce68847c12434f60d1b2654a3dc3409">err</a> = <a class="code" href="../../d5/d9d/tcltklib_8c.html#a89cd18829599d193ee75073219cc42c4">rb_errinfo</a>();</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  <a class="code" href="../../d5/df2/win32_8c.html#a6ce68847c12434f60d1b2654a3dc3409">err</a> = <a class="code" href="../../db/d2e/intern_8h.html#acae5350f5d539c4654e4e33690256a9f">rb_obj_as_string</a>(<a class="code" href="../../d5/df2/win32_8c.html#a6ce68847c12434f60d1b2654a3dc3409">err</a>);</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->async_call_args = (<span class="keywordtype">void</span>*)<span class="stringliteral">"rubyReady"</span>;</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <a class="code" href="../../dd/daa/pepper__main_8c.html#a91f94620c22725285b27d3f5b3b8f639">core_interface</a>->CallOnMainThread(</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  0, PP_MakeCompletionCallback(<a class="code" href="../../dd/daa/pepper__main_8c.html#a3fd1054111e98240863eb622eb759515">pruby_post_cstr</a>, <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>), 0);</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  }</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  <span class="keywordflow">return</span> <a class="code" href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span> }</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span> </div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span> <span class="keyword">static</span> <span class="keywordtype">int</span></div><div class="line"><a name="l00387"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#a01f9913ee6ecef0ba90902ff6a702729"> 387</a></span> <a class="code" href="../../dd/daa/pepper__main_8c.html#a01f9913ee6ecef0ba90902ff6a702729">init_libraries_if_necessary</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span> {</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <span class="keyword">static</span> <span class="keywordtype">int</span> initialized = 0;</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <span class="keywordflow">if</span> (!initialized) {</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <span class="keyword">struct </span><a class="code" href="../../d2/d9b/struct_pepper_instance.html">PepperInstance</a>* <span class="keyword">const</span> <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a> = <a class="code" href="../../dd/daa/pepper__main_8c.html#ab22a565267c12827bf0ff47c8e1043f4">GET_PEPPER_INSTANCE</a>();</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  <span class="keywordtype">int</span> <a class="code" href="../../d5/df2/win32_8c.html#a6ce68847c12434f60d1b2654a3dc3409">err</a>;</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  initialized = 1;</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  <a class="code" href="../../d5/df2/win32_8c.html#a6ce68847c12434f60d1b2654a3dc3409">err</a> = pthread_create(&<a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->th, <a class="code" href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, &<a class="code" href="../../dd/daa/pepper__main_8c.html#ab934b8cd8bb524c063c1d220a70185e1">init_libraries</a>, <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>);</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d5/df2/win32_8c.html#a6ce68847c12434f60d1b2654a3dc3409">err</a>) {</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  fprintf(stderr, <span class="stringliteral">"pepper_ruby:pthread_create: %s\n"</span>, <a class="code" href="../../d3/d90/missing_8h.html#afd46339e0e35acab03772ba959071313">strerror</a>(<a class="code" href="../../d5/df2/win32_8c.html#a6ce68847c12434f60d1b2654a3dc3409">err</a>));</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  exit(<a class="code" href="../../dd/dd0/eval__intern_8h.html#a73efe787c131b385070f25d18b7c9aa4">EXIT_FAILURE</a>);</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  }</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  pthread_detach(<a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->th);</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  }</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  <span class="keywordflow">return</span> 0;</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> </div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span> <span class="keyword">static</span> <span class="keywordtype">int</span></div><div class="line"><a name="l00405"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#afcb80252ec86e396a284d7bf8d42c47d"> 405</a></span> <a class="code" href="../../dd/daa/pepper__main_8c.html#afcb80252ec86e396a284d7bf8d42c47d">pruby_init</a>(<span class="keywordtype">void</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>  <a class="code" href="../../d7/dce/group__ruby1.html#ga17c49ad88928c1e079350dcceb8d1578">RUBY_INIT_STACK</a>;</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  <a class="code" href="../../d7/dce/group__ruby1.html#ga2fe207a5a5fd5da2bf5948cb084a1c5b">ruby_init</a>();</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span> </div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  <a class="code" href="../../dd/daa/pepper__main_8c.html#aff2d85dac238842527c0e770f2a64f7e">instance_table</a> = <a class="code" href="../../d1/d04/hash_8c.html#af1da586524a3a1739fd5b91272037815">rb_hash_new</a>();</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  <a class="code" href="../../d8/d16/gc_8c.html#adc7efe8997f04b5c275d7e7aed9169e3">rb_gc_register_mark_object</a>(<a class="code" href="../../dd/daa/pepper__main_8c.html#aff2d85dac238842527c0e770f2a64f7e">instance_table</a>);</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span> </div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span> }</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> </div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span> <span class="comment">/******************************************************************************</span></div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span> <span class="comment"> * Ruby evaluation</span></div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span> <span class="comment"> ******************************************************************************/</span></div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span> </div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span> <span class="keyword">static</span> <span class="keywordtype">void</span>*</div><div class="line"><a name="l00422"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#ad5091962c17aa17d96e84919de5f7a9a"> 422</a></span> <a class="code" href="../../dd/daa/pepper__main_8c.html#ad5091962c17aa17d96e84919de5f7a9a">pruby_eval</a>(<span class="keywordtype">void</span>* data)</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="keyword">extern</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../d3/d80/vm__eval_8c.html#a7e09478e783d5d2c779f9d6a0e2b3eb6">ruby_eval_string_from_file_protect</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* src, <span class="keyword">const</span> <span class="keywordtype">char</span>* path, <span class="keywordtype">int</span>* state);</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  <span class="keyword">struct </span><a class="code" href="../../d2/d9b/struct_pepper_instance.html">PepperInstance</a>* <span class="keyword">const</span> <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a> = (<span class="keyword">struct </span><a class="code" href="../../d2/d9b/struct_pepper_instance.html">PepperInstance</a>*)data;</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  <span class="keyword">volatile</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> src = (<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a>)<a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->async_call_args;</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  <span class="keyword">volatile</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="l00428"></a><span class="lineno"> 428</span>  <span class="keyword">volatile</span> <span class="keywordtype">int</span> state;</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span> </div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  <a class="code" href="../../d7/dce/group__ruby1.html#ga17c49ad88928c1e079350dcceb8d1578">RUBY_INIT_STACK</a>;</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span> </div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  <a class="code" href="../../d2/d99/win32ole_8c.html#a6fb3b37b30ac3874008f653ed9765309">if</a> (pthread_mutex_lock(&<a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->mutex)) {</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  perror(<span class="stringliteral">"pepper-ruby:pthread_mutex_lock"</span>);</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  }</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  <a class="code" href="../../d8/d90/nkf_8c.html#a5ea5ac7abf5cce39283e422add1067d5">result</a> = <a class="code" href="../../d3/d80/vm__eval_8c.html#a7e09478e783d5d2c779f9d6a0e2b3eb6">ruby_eval_string_from_file_protect</a>(</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3f0e4e2b6d073369cc1c2ddde00b13bb">RSTRING_PTR</a>(src), <span class="stringliteral">"(pepper-ruby)"</span>, &state);</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  pthread_mutex_unlock(&<a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->mutex);</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="keywordflow">if</span> (!state) {</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->async_call_args =</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  <a class="code" href="../../db/d2e/intern_8h.html#a2f12f7ad949fa2e6abb64f2311c6e2c5">rb_str_concat</a>(<a class="code" href="../../db/d2e/intern_8h.html#a14cee14f3a9a89e96144482560957ea0">rb_usascii_str_new_cstr</a>(<span class="stringliteral">"return:"</span>),</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  <a class="code" href="../../db/d2e/intern_8h.html#acae5350f5d539c4654e4e33690256a9f">rb_obj_as_string</a>(<a class="code" href="../../d8/d90/nkf_8c.html#a5ea5ac7abf5cce39283e422add1067d5">result</a>));</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  <a class="code" href="../../dd/daa/pepper__main_8c.html#a91f94620c22725285b27d3f5b3b8f639">core_interface</a>->CallOnMainThread(</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  0, PP_MakeCompletionCallback(<a class="code" href="../../dd/daa/pepper__main_8c.html#af6cde458a52cf2593ffc2ebcc856a477">pruby_post_value</a>, <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>), 0);</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  <span class="keywordflow">return</span> <a class="code" href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  }</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <a class="code" href="../../d3/d57/eval_8c.html#a4484d744216a0afdf26dce14f1190973">rb_set_errinfo</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>);</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->async_call_args =</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  <a class="code" href="../../db/d2e/intern_8h.html#a2f12f7ad949fa2e6abb64f2311c6e2c5">rb_str_concat</a>(<a class="code" href="../../db/d2e/intern_8h.html#a14cee14f3a9a89e96144482560957ea0">rb_usascii_str_new_cstr</a>(<span class="stringliteral">"error:"</span>),</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  <a class="code" href="../../db/d2e/intern_8h.html#acae5350f5d539c4654e4e33690256a9f">rb_obj_as_string</a>(<a class="code" href="../../d8/d90/nkf_8c.html#a5ea5ac7abf5cce39283e422add1067d5">result</a>));</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  <a class="code" href="../../dd/daa/pepper__main_8c.html#a91f94620c22725285b27d3f5b3b8f639">core_interface</a>->CallOnMainThread(</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  0, PP_MakeCompletionCallback(<a class="code" href="../../dd/daa/pepper__main_8c.html#af6cde458a52cf2593ffc2ebcc856a477">pruby_post_value</a>, <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>), 0);</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  <span class="keywordflow">return</span> <a class="code" href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  }</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span> }</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span> </div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span> </div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span> <span class="comment">/******************************************************************************</span></div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span> <span class="comment"> * Pepper Module callbacks</span></div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span> <span class="comment"> ******************************************************************************/</span></div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span> </div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span> <span class="keyword">static</span> PP_Bool</div><div class="line"><a name="l00487"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#ad41836ec2e5a6dea2d7786bfecd32baf"> 487</a></span> <a class="code" href="../../dd/daa/pepper__main_8c.html#ad41836ec2e5a6dea2d7786bfecd32baf">Instance_DidCreate</a>(PP_Instance <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>,</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  <a class="code" href="../../db/d4d/sha2_8h.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> <a class="code" href="../../df/d77/ruby_8c.html#ad1447518f4372828b8435ae82e48499e">argc</a>, <span class="keyword">const</span> <span class="keywordtype">char</span>* argn[], <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="../../df/d77/ruby_8c.html#af2efa898e9eed6fe6715279cb1ec35b0">argv</a>[])</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span> {</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  <span class="keyword">struct </span><a class="code" href="../../d2/d9b/struct_pepper_instance.html">PepperInstance</a>* data = <a class="code" href="../../dd/daa/pepper__main_8c.html#a0b85b2cb59d6757752241b38c4b8a4dc">pruby_register_instance</a>(<a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>);</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  <a class="code" href="../../dd/daa/pepper__main_8c.html#a0fff3013eeb0c496901e2ad4addd657a">current_instance</a> = <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>;</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  <span class="keywordflow">return</span> <a class="code" href="../../dd/daa/pepper__main_8c.html#a01f9913ee6ecef0ba90902ff6a702729">init_libraries_if_necessary</a>() ? PP_FALSE : PP_TRUE;</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span> }</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span> </div><div class="line"><a name="l00502"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#a13a8314faf72066d27f4ddf4bc838cbd"> 502</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="../../dd/daa/pepper__main_8c.html#a13a8314faf72066d27f4ddf4bc838cbd">Instance_DidDestroy</a>(PP_Instance <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>) {</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  <span class="keyword">struct </span><a class="code" href="../../d2/d9b/struct_pepper_instance.html">PepperInstance</a>* data = <a class="code" href="../../dd/daa/pepper__main_8c.html#aa958e9b1b5bbe3d9dfc223b05267869b">pruby_get_instance</a>(<a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>);</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  <a class="code" href="../../dd/daa/pepper__main_8c.html#a91f94620c22725285b27d3f5b3b8f639">core_interface</a>->ReleaseResource(data-><a class="code" href="../../d2/d9b/struct_pepper_instance.html#ab8f62c5c128c2164fe6157ebcc0b684f">url_loader</a>);</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  <a class="code" href="../../dd/daa/pepper__main_8c.html#a2d2717434dadc0a18d09ab41d08d63f7">pruby_unregister_instance</a>(<a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>);</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span> }</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span> </div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span> <span class="preprocessor">#ifdef PPP_INSTANCE_INTERFACE_1_0</span></div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span> <a class="code" href="../../dd/daa/pepper__main_8c.html#a2e79eb8d9874470f97ca70405f5d7b36">Instance_DidChangeView</a>(PP_Instance <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>,</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  <span class="keyword">const</span> <span class="keyword">struct</span> PP_Rect* position,</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  <span class="keyword">const</span> <span class="keyword">struct</span> PP_Rect* clip)</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span> {</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span> }</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00529"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#a2e79eb8d9874470f97ca70405f5d7b36"> 529</a></span> <a class="code" href="../../dd/daa/pepper__main_8c.html#a2e79eb8d9874470f97ca70405f5d7b36">Instance_DidChangeView</a>(PP_Instance <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>, PP_Resource view_resource)</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span> {</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> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span> </div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00552"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#aa633b6140426e3c515092a1be142f032"> 552</a></span> <a class="code" href="../../dd/daa/pepper__main_8c.html#aa633b6140426e3c515092a1be142f032">Instance_DidChangeFocus</a>(PP_Instance <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>, PP_Bool has_focus)</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> }</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span> </div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span> <span class="keyword">static</span> PP_Bool</div><div class="line"><a name="l00567"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#ada820b90ad52f1ff915b31bbdc0c19cf"> 567</a></span> <a class="code" href="../../dd/daa/pepper__main_8c.html#ada820b90ad52f1ff915b31bbdc0c19cf">Instance_HandleDocumentLoad</a>(PP_Instance <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>, PP_Resource <a class="code" href="../../d2/d9b/struct_pepper_instance.html#ab8f62c5c128c2164fe6157ebcc0b684f">url_loader</a>)</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span> {</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  <span class="comment">/* NaCl modules do not need to handle the document load function. */</span></div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  <span class="keywordflow">return</span> PP_FALSE;</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span> }</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span> </div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span> </div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00590"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#ad3553be55afdbd1ae103cf95fc59c967"> 590</a></span> <a class="code" href="../../dd/daa/pepper__main_8c.html#ad3553be55afdbd1ae103cf95fc59c967">Messaging_HandleMessage</a>(PP_Instance <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>, <span class="keyword">struct</span> PP_Var var_message)</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span> {</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  <span class="keywordtype">char</span>* <span class="keyword">const</span> message = <a class="code" href="../../dd/daa/pepper__main_8c.html#a529351626ac8da3fe3908c0c64c2b545">pruby_var_to_cstr</a>(var_message);</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  <span class="keywordtype">size_t</span> message_len = <a class="code" href="../../d6/d7b/strchr_8c.html#a219836f542ce53545052bed5353820ca">strlen</a>(message);</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  <a class="code" href="../../dd/daa/pepper__main_8c.html#a0fff3013eeb0c496901e2ad4addd657a">current_instance</a> = <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>;</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span> </div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d3/d90/missing_8h.html#a695026fc69840c65da7ea58226006f69">strstr</a>(message, <span class="stringliteral">"eval:"</span>) != <a class="code" href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>) {</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  <span class="keyword">volatile</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> src;</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  <span class="keyword">struct </span><a class="code" href="../../d2/d9b/struct_pepper_instance.html">PepperInstance</a>* <span class="keyword">const</span> <a class="code" href="../../dd/daa/pepper__main_8c.html#ac7ab6e59ba2cc6e94c1e366cce25e5e5">instance_data</a> = <a class="code" href="../../dd/daa/pepper__main_8c.html#ab22a565267c12827bf0ff47c8e1043f4">GET_PEPPER_INSTANCE</a>();</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  <span class="keywordtype">int</span> <a class="code" href="../../d5/df2/win32_8c.html#a6ce68847c12434f60d1b2654a3dc3409">err</a>;</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span> <span class="preprocessor">#define EVAL_PREFIX_LEN 5</span></div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  src = <a class="code" href="../../db/d2e/intern_8h.html#a48b2b873adb8b6a04254bd631c4b03c5">rb_str_new</a>(message + <a class="code" href="../../dd/daa/pepper__main_8c.html#a52811b24ebb3f7b4f936ac6622b31658">EVAL_PREFIX_LEN</a>, message_len - <a class="code" href="../../dd/daa/pepper__main_8c.html#a52811b24ebb3f7b4f936ac6622b31658">EVAL_PREFIX_LEN</a>);</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  <a class="code" href="../../dd/daa/pepper__main_8c.html#ac7ab6e59ba2cc6e94c1e366cce25e5e5">instance_data</a>->async_call_args = (<span class="keywordtype">void</span>*)src;</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  <a class="code" href="../../d5/df2/win32_8c.html#a6ce68847c12434f60d1b2654a3dc3409">err</a> = pthread_create(&<a class="code" href="../../dd/daa/pepper__main_8c.html#ac7ab6e59ba2cc6e94c1e366cce25e5e5">instance_data</a>->th, <a class="code" href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, &<a class="code" href="../../dd/daa/pepper__main_8c.html#ad5091962c17aa17d96e84919de5f7a9a">pruby_eval</a>, <a class="code" href="../../dd/daa/pepper__main_8c.html#ac7ab6e59ba2cc6e94c1e366cce25e5e5">instance_data</a>);</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d5/df2/win32_8c.html#a6ce68847c12434f60d1b2654a3dc3409">err</a>) {</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  fprintf(stderr, <span class="stringliteral">"pepper_ruby:pthread_create: %s\n"</span>, <a class="code" href="../../d3/d90/missing_8h.html#afd46339e0e35acab03772ba959071313">strerror</a>(<a class="code" href="../../d5/df2/win32_8c.html#a6ce68847c12434f60d1b2654a3dc3409">err</a>));</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  exit(<a class="code" href="../../dd/dd0/eval__intern_8h.html#a73efe787c131b385070f25d18b7c9aa4">EXIT_FAILURE</a>);</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>  pthread_detach(<a class="code" href="../../dd/daa/pepper__main_8c.html#ac7ab6e59ba2cc6e94c1e366cce25e5e5">instance_data</a>->th);</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  }</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  <a class="code" href="../../d2/d99/win32ole_8c.html#a18100522f0b19b5e9b9875f5737a9386">free</a>(message);</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span> }</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span> </div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span> PP_EXPORT int32_t</div><div class="line"><a name="l00621"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#a0db770443ce690e9297a10283b01ff6a"> 621</a></span> <a class="code" href="../../dd/daa/pepper__main_8c.html#a0db770443ce690e9297a10283b01ff6a">PPP_InitializeModule</a>(PP_Module a_module_id, PPB_GetInterface get_browser_interface)</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span> {</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  <a class="code" href="../../dd/daa/pepper__main_8c.html#a91350345b91bd6f3dea8665f7a203df9">module_id</a> = a_module_id;</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>  <a class="code" href="../../dd/daa/pepper__main_8c.html#a91f94620c22725285b27d3f5b3b8f639">core_interface</a> = (PPB_Core*)(get_browser_interface(PPB_CORE_INTERFACE));</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  <span class="keywordflow">if</span> (<a class="code" href="../../dd/daa/pepper__main_8c.html#a91f94620c22725285b27d3f5b3b8f639">core_interface</a> == <a class="code" href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>) <span class="keywordflow">return</span> PP_ERROR_NOINTERFACE;</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span> </div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>  <a class="code" href="../../dd/daa/pepper__main_8c.html#a6f75132fd783752578455a2bb90f1b80">var_interface</a> = (PPB_Var*)(get_browser_interface(PPB_VAR_INTERFACE));</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>  <span class="keywordflow">if</span> (<a class="code" href="../../dd/daa/pepper__main_8c.html#a6f75132fd783752578455a2bb90f1b80">var_interface</a> == <a class="code" href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>) <span class="keywordflow">return</span> PP_ERROR_NOINTERFACE;</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span> </div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>  <a class="code" href="../../dd/daa/pepper__main_8c.html#a0d33bf87161dc521ce41fef63dd5ced9">messaging_interface</a> = (PPB_Messaging*)(get_browser_interface(PPB_MESSAGING_INTERFACE));</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>  <span class="keywordflow">if</span> (<a class="code" href="../../dd/daa/pepper__main_8c.html#a0d33bf87161dc521ce41fef63dd5ced9">messaging_interface</a> == <a class="code" href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>) <span class="keywordflow">return</span> PP_ERROR_NOINTERFACE;</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span> </div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>  <a class="code" href="../../dd/daa/pepper__main_8c.html#a80cf91f02e68f434ca40a9751a29f192">loader_interface</a> = (PPB_URLLoader*)(get_browser_interface(PPB_URLLOADER_INTERFACE));</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>  <span class="keywordflow">if</span> (<a class="code" href="../../dd/daa/pepper__main_8c.html#a80cf91f02e68f434ca40a9751a29f192">loader_interface</a> == <a class="code" href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>) <span class="keywordflow">return</span> PP_ERROR_NOINTERFACE;</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span> </div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>  <a class="code" href="../../dd/daa/pepper__main_8c.html#a6175b15ce78abc0548f8479f4c9cb0cc">request_interface</a> = (PPB_URLRequestInfo*)(get_browser_interface(PPB_URLREQUESTINFO_INTERFACE));</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>  <span class="keywordflow">if</span> (<a class="code" href="../../dd/daa/pepper__main_8c.html#a6175b15ce78abc0548f8479f4c9cb0cc">request_interface</a> == <a class="code" href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>) <span class="keywordflow">return</span> PP_ERROR_NOINTERFACE;</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>  <a class="code" href="../../dd/daa/pepper__main_8c.html#a1c9445b761f4a24f528b4e8d52edaf78">response_interface</a> = (PPB_URLResponseInfo*)(get_browser_interface(PPB_URLRESPONSEINFO_INTERFACE));</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>  <span class="keywordflow">if</span> (<a class="code" href="../../dd/daa/pepper__main_8c.html#a1c9445b761f4a24f528b4e8d52edaf78">response_interface</a> == <a class="code" href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>) <span class="keywordflow">return</span> PP_ERROR_NOINTERFACE;</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span> </div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>  <a class="code" href="../../dd/daa/pepper__main_8c.html#a8fc47673ef30ab73335c829d1beebae9">fileref_interface</a> = (PPB_FileRef*)(get_browser_interface(PPB_FILEREF_INTERFACE));</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>  <span class="keywordflow">if</span> (<a class="code" href="../../dd/daa/pepper__main_8c.html#a8fc47673ef30ab73335c829d1beebae9">fileref_interface</a> == <a class="code" href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>) <span class="keywordflow">return</span> PP_ERROR_NOINTERFACE;</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span> </div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>  <span class="keywordflow">return</span> <a class="code" href="../../dd/daa/pepper__main_8c.html#afcb80252ec86e396a284d7bf8d42c47d">pruby_init</a>() ? PP_ERROR_FAILED : PP_OK;</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span> }</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span> </div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span> PP_EXPORT <span class="keyword">const</span> <span class="keywordtype">void</span>*</div><div class="line"><a name="l00655"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#a7ca68eacc5ed31c524aaf49be1ccc5b0"> 655</a></span> <a class="code" href="../../dd/daa/pepper__main_8c.html#a7ca68eacc5ed31c524aaf49be1ccc5b0">PPP_GetInterface</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* interface_name)</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span> {</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>  <span class="keywordflow">if</span> (strcmp(interface_name, PPP_INSTANCE_INTERFACE) == 0) {</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>  <span class="keyword">static</span> PPP_Instance instance_interface = {</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>  &<a class="code" href="../../dd/daa/pepper__main_8c.html#ad41836ec2e5a6dea2d7786bfecd32baf">Instance_DidCreate</a>,</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>  &<a class="code" href="../../dd/daa/pepper__main_8c.html#a13a8314faf72066d27f4ddf4bc838cbd">Instance_DidDestroy</a>,</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>  &<a class="code" href="../../dd/daa/pepper__main_8c.html#a2e79eb8d9874470f97ca70405f5d7b36">Instance_DidChangeView</a>,</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>  &<a class="code" href="../../dd/daa/pepper__main_8c.html#aa633b6140426e3c515092a1be142f032">Instance_DidChangeFocus</a>,</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>  &<a class="code" href="../../dd/daa/pepper__main_8c.html#ada820b90ad52f1ff915b31bbdc0c19cf">Instance_HandleDocumentLoad</a></div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>  };</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>  <span class="keywordflow">return</span> &instance_interface;</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (strcmp(interface_name, PPP_MESSAGING_INTERFACE) == 0) {</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>  <span class="keyword">static</span> PPP_Messaging <a class="code" href="../../dd/daa/pepper__main_8c.html#a0d33bf87161dc521ce41fef63dd5ced9">messaging_interface</a> = {</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>  &<a class="code" href="../../dd/daa/pepper__main_8c.html#ad3553be55afdbd1ae103cf95fc59c967">Messaging_HandleMessage</a></div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>  };</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>  <span class="keywordflow">return</span> &<a class="code" href="../../dd/daa/pepper__main_8c.html#a0d33bf87161dc521ce41fef63dd5ced9">messaging_interface</a>;</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>  }</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>  <span class="keywordflow">return</span> <a class="code" href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</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> </div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span> PP_EXPORT <span class="keywordtype">void</span></div><div class="line"><a name="l00679"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#aee9d745904423e4b1acb76c84bb9fc99"> 679</a></span> <a class="code" href="../../dd/daa/pepper__main_8c.html#aee9d745904423e4b1acb76c84bb9fc99">PPP_ShutdownModule</a>()</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span> {</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>  <a class="code" href="../../de/d43/group__embed.html#gad9a4bb7e06e2ea58231480dc5b3abcdc">ruby_cleanup</a>(0);</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span> }</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span> </div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span> <span class="comment">/******************************************************************************</span></div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span> <span class="comment"> * Overwrites rb_file_load_ok</span></div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span> <span class="comment"> ******************************************************************************/</span></div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span> </div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00689"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#a7e9bcd58c78b0632846b543fc6828b46"> 689</a></span> <a class="code" href="../../dd/daa/pepper__main_8c.html#a7e9bcd58c78b0632846b543fc6828b46">load_ok_internal</a>(<span class="keywordtype">void</span>* data, int32_t unused)</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span> {</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>  <span class="comment">/* PPAPI main thread */</span></div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>  <span class="keyword">struct </span><a class="code" href="../../d2/d9b/struct_pepper_instance.html">PepperInstance</a>* <span class="keyword">const</span> <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a> = (<span class="keyword">struct </span><a class="code" href="../../d2/d9b/struct_pepper_instance.html">PepperInstance</a>*)data;</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<span class="keyword">const</span> path = (<span class="keyword">const</span> <span class="keywordtype">char</span>*)<a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->async_call_args;</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>  PP_Resource req;</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>  <span class="keywordtype">int</span> <a class="code" href="../../d8/d90/nkf_8c.html#a5ea5ac7abf5cce39283e422add1067d5">result</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>  <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->url_loader = <a class="code" href="../../dd/daa/pepper__main_8c.html#a80cf91f02e68f434ca40a9751a29f192">loader_interface</a>->Create(<a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->instance);</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>  req = <a class="code" href="../../dd/daa/pepper__main_8c.html#a6175b15ce78abc0548f8479f4c9cb0cc">request_interface</a>->Create(<a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->instance);</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>  <a class="code" href="../../dd/daa/pepper__main_8c.html#a6175b15ce78abc0548f8479f4c9cb0cc">request_interface</a>->SetProperty(</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>  req, PP_URLREQUESTPROPERTY_METHOD, <a class="code" href="../../dd/daa/pepper__main_8c.html#a87a46b5d31052af560407f8b0c342a09">pruby_cstr_to_var</a>(<span class="stringliteral">"HEAD"</span>));</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>  <a class="code" href="../../dd/daa/pepper__main_8c.html#a6175b15ce78abc0548f8479f4c9cb0cc">request_interface</a>->SetProperty(</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>  req, PP_URLREQUESTPROPERTY_URL, <a class="code" href="../../dd/daa/pepper__main_8c.html#a87a46b5d31052af560407f8b0c342a09">pruby_cstr_to_var</a>(path));</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="../../d8/d90/nkf_8c.html#a5ea5ac7abf5cce39283e422add1067d5">result</a> = <a class="code" href="../../dd/daa/pepper__main_8c.html#a80cf91f02e68f434ca40a9751a29f192">loader_interface</a>->Open(</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>  <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->url_loader, req,</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>  PP_MakeCompletionCallback(<a class="code" href="../../dd/daa/pepper__main_8c.html#abe891b4e150c031153e9ef9cbc3b7886">pruby_async_return_int</a>, <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>));</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d8/d90/nkf_8c.html#a5ea5ac7abf5cce39283e422add1067d5">result</a> != PP_OK_COMPLETIONPENDING) {</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>  <a class="code" href="../../dd/daa/pepper__main_8c.html#abe891b4e150c031153e9ef9cbc3b7886">pruby_async_return_int</a>(<a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>, <a class="code" href="../../d8/d90/nkf_8c.html#a5ea5ac7abf5cce39283e422add1067d5">result</a>);</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>  }</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span> }</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span> </div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00713"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#a41e40cc5f91ddb5b5cef75801c508db9"> 713</a></span> <a class="code" href="../../dd/daa/pepper__main_8c.html#a41e40cc5f91ddb5b5cef75801c508db9">pruby_file_fetch_check_response</a>(<span class="keywordtype">void</span>* data, int32_t unused)</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>  <span class="comment">/* PPAPI main thread */</span></div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>  PP_Resource res;</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>  <span class="keyword">struct </span><a class="code" href="../../d2/d9b/struct_pepper_instance.html">PepperInstance</a>* <span class="keyword">const</span> <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a> = (<span class="keyword">struct </span><a class="code" href="../../d2/d9b/struct_pepper_instance.html">PepperInstance</a>*)data;</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span> </div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>  res = <a class="code" href="../../dd/daa/pepper__main_8c.html#a80cf91f02e68f434ca40a9751a29f192">loader_interface</a>->GetResponseInfo(<a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->url_loader);</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>  <span class="keywordflow">if</span> (res) {</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>  <span class="keyword">struct </span>PP_Var status =</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>  <a class="code" href="../../dd/daa/pepper__main_8c.html#a1c9445b761f4a24f528b4e8d52edaf78">response_interface</a>->GetProperty(res, PP_URLRESPONSEPROPERTY_STATUSCODE);</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>  <span class="keywordflow">if</span> (status.type == PP_VARTYPE_INT32) {</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>  <a class="code" href="../../dd/daa/pepper__main_8c.html#abe891b4e150c031153e9ef9cbc3b7886">pruby_async_return_int</a>(instance, status.value.as_int / 100 == 2 ? PP_OK : PP_ERROR_FAILED);</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>  }</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>  <a class="code" href="../../dd/daa/pepper__main_8c.html#a0d33bf87161dc521ce41fef63dd5ced9">messaging_interface</a>->PostMessage(</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>  instance-><a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>, <a class="code" href="../../dd/daa/pepper__main_8c.html#a87a46b5d31052af560407f8b0c342a09">pruby_cstr_to_var</a>(<span class="stringliteral">"Unexpected type: ResponseInfoInterface::GetProperty"</span>));</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">else</span> {</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>  <a class="code" href="../../dd/daa/pepper__main_8c.html#a0d33bf87161dc521ce41fef63dd5ced9">messaging_interface</a>->PostMessage(</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>  instance-><a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>, <a class="code" href="../../dd/daa/pepper__main_8c.html#a87a46b5d31052af560407f8b0c342a09">pruby_cstr_to_var</a>(<span class="stringliteral">"Failed to open URL: URLLoaderInterface::GetResponseInfo"</span>));</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>  }</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>  <a class="code" href="../../dd/daa/pepper__main_8c.html#abe891b4e150c031153e9ef9cbc3b7886">pruby_async_return_int</a>(instance, PP_ERROR_FAILED);</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> </div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span> </div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span> <span class="keywordtype">int</span></div><div class="line"><a name="l00741"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#a51a06fdf0a4a71e29b2a83f3295da88e"> 741</a></span> <a class="code" href="../../dd/daa/pepper__main_8c.html#a51a06fdf0a4a71e29b2a83f3295da88e">rb_file_load_ok</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *path)</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">struct </span><a class="code" href="../../d2/d9b/struct_pepper_instance.html">PepperInstance</a>* <span class="keyword">const</span> <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a> = <a class="code" href="../../dd/daa/pepper__main_8c.html#ab22a565267c12827bf0ff47c8e1043f4">GET_PEPPER_INSTANCE</a>();</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>  <span class="keywordflow">if</span> (path[0] == <span class="charliteral">'.'</span> && path[1] == <span class="charliteral">'/'</span>) path += 2;</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>  <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->async_call_args = (<span class="keywordtype">void</span>*)path;</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>  <a class="code" href="../../dd/daa/pepper__main_8c.html#a91f94620c22725285b27d3f5b3b8f639">core_interface</a>->CallOnMainThread(</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>  0, PP_MakeCompletionCallback(<a class="code" href="../../dd/daa/pepper__main_8c.html#a7e9bcd58c78b0632846b543fc6828b46">load_ok_internal</a>, <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>), 0);</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>  <span class="keywordflow">if</span> (pthread_cond_wait(&<a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->cond, &<a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->mutex)) {</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>  perror(<span class="stringliteral">"pepper-ruby:pthread_cond_wait"</span>);</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>  }</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->async_call_result.as_int != PP_OK) {</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>  fprintf(stderr, <span class="stringliteral">"Failed to open URL: %d: %s\n"</span>,</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>  <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->async_call_result.as_int, path);</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>  }</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/daa/pepper__main_8c.html#a91f94620c22725285b27d3f5b3b8f639">core_interface</a>->CallOnMainThread(</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>  0, PP_MakeCompletionCallback(<a class="code" href="../../dd/daa/pepper__main_8c.html#a41e40cc5f91ddb5b5cef75801c508db9">pruby_file_fetch_check_response</a>, <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>), 0);</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>  <span class="keywordflow">if</span> (pthread_cond_wait(&<a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->cond, &<a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->mutex)) {</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>  perror(<span class="stringliteral">"pepper-ruby:pthread_cond_wait"</span>);</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>  }</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>  <span class="keywordflow">return</span> <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->async_call_result.as_int == PP_OK;</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> </div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span> <span class="comment">/******************************************************************************</span></div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span> <span class="comment"> * Overwrites rb_load_file</span></div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span> <span class="comment"> ******************************************************************************/</span></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> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00773"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#ac534d76014089f5c4550786455154a72"> 773</a></span> <a class="code" href="../../dd/daa/pepper__main_8c.html#ac534d76014089f5c4550786455154a72">load_file_internal</a>(<span class="keywordtype">void</span>* data, int32_t unused)</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span> {</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>  <span class="comment">/* PPAPI main thread */</span></div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>  <span class="keyword">struct </span><a class="code" href="../../d2/d9b/struct_pepper_instance.html">PepperInstance</a>* <span class="keyword">const</span> <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a> = (<span class="keyword">struct </span><a class="code" href="../../d2/d9b/struct_pepper_instance.html">PepperInstance</a>*)data;</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<span class="keyword">const</span> path = (<span class="keyword">const</span> <span class="keywordtype">char</span>*)<a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->async_call_args;</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>  PP_Resource req;</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>  <span class="keywordtype">int</span> <a class="code" href="../../d8/d90/nkf_8c.html#a5ea5ac7abf5cce39283e422add1067d5">result</a>;</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span> </div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>  <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->url_loader = <a class="code" href="../../dd/daa/pepper__main_8c.html#a80cf91f02e68f434ca40a9751a29f192">loader_interface</a>->Create(<a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->instance);</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>  req = <a class="code" href="../../dd/daa/pepper__main_8c.html#a6175b15ce78abc0548f8479f4c9cb0cc">request_interface</a>->Create(<a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->instance);</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>  <a class="code" href="../../dd/daa/pepper__main_8c.html#a6175b15ce78abc0548f8479f4c9cb0cc">request_interface</a>->SetProperty(</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>  req, PP_URLREQUESTPROPERTY_METHOD, <a class="code" href="../../dd/daa/pepper__main_8c.html#a87a46b5d31052af560407f8b0c342a09">pruby_cstr_to_var</a>(<span class="stringliteral">"GET"</span>));</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>  <a class="code" href="../../dd/daa/pepper__main_8c.html#a6175b15ce78abc0548f8479f4c9cb0cc">request_interface</a>->SetProperty(</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>  req, PP_URLREQUESTPROPERTY_URL, <a class="code" href="../../dd/daa/pepper__main_8c.html#a87a46b5d31052af560407f8b0c342a09">pruby_cstr_to_var</a>(path));</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span> </div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>  <a class="code" href="../../d8/d90/nkf_8c.html#a5ea5ac7abf5cce39283e422add1067d5">result</a> = <a class="code" href="../../dd/daa/pepper__main_8c.html#a80cf91f02e68f434ca40a9751a29f192">loader_interface</a>->Open(</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>  <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->url_loader, req,</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>  PP_MakeCompletionCallback(<a class="code" href="../../dd/daa/pepper__main_8c.html#abe891b4e150c031153e9ef9cbc3b7886">pruby_async_return_int</a>, <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>));</div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d8/d90/nkf_8c.html#a5ea5ac7abf5cce39283e422add1067d5">result</a> != PP_OK_COMPLETIONPENDING) {</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>  <a class="code" href="../../dd/daa/pepper__main_8c.html#abe891b4e150c031153e9ef9cbc3b7886">pruby_async_return_int</a>(<a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>, <a class="code" href="../../d8/d90/nkf_8c.html#a5ea5ac7abf5cce39283e422add1067d5">result</a>);</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>  }</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span> }</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span> </div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00797"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#aadad3d6fdbdd69c98c5c84af8e62d711"> 797</a></span> <a class="code" href="../../dd/daa/pepper__main_8c.html#aadad3d6fdbdd69c98c5c84af8e62d711">load_file_read_contents_callback</a>(<span class="keywordtype">void</span> *data, <span class="keywordtype">int</span> <a class="code" href="../../d8/d90/nkf_8c.html#a5ea5ac7abf5cce39283e422add1067d5">result</a>)</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span> {</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>  <span class="keyword">struct </span><a class="code" href="../../d2/d9b/struct_pepper_instance.html">PepperInstance</a>* <span class="keyword">const</span> <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a> = (<span class="keyword">struct </span><a class="code" href="../../d2/d9b/struct_pepper_instance.html">PepperInstance</a>*)data;</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d8/d90/nkf_8c.html#a5ea5ac7abf5cce39283e422add1067d5">result</a> > 0) {</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>  <a class="code" href="../../db/d2e/intern_8h.html#a4dff49e6d9aa925fd94fc5100b3c399b">rb_str_buf_cat</a>(<a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->async_call_result.as_value,</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>  <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->buf, <a class="code" href="../../d8/d90/nkf_8c.html#a5ea5ac7abf5cce39283e422add1067d5">result</a>);</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>  <a class="code" href="../../dd/daa/pepper__main_8c.html#a80cf91f02e68f434ca40a9751a29f192">loader_interface</a>->ReadResponseBody(</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>  <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->url_loader, <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->buf, 1000, PP_MakeCompletionCallback(<a class="code" href="../../dd/daa/pepper__main_8c.html#aadad3d6fdbdd69c98c5c84af8e62d711">load_file_read_contents_callback</a>, <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>));</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>  }</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="../../d8/d90/nkf_8c.html#a5ea5ac7abf5cce39283e422add1067d5">result</a> == 0) {</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>  <a class="code" href="../../dd/daa/pepper__main_8c.html#ae46acee2188abcb768d6e1426e833281">pruby_async_return_value</a>(data, <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->async_call_result.as_value);</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>  }</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>  <a class="code" href="../../dd/daa/pepper__main_8c.html#ae46acee2188abcb768d6e1426e833281">pruby_async_return_value</a>(data, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac55fae7f748afd3fc2533d0d7d06cf5a">INT2FIX</a>(<a class="code" href="../../d8/d90/nkf_8c.html#a5ea5ac7abf5cce39283e422add1067d5">result</a>));</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>  }</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span> }</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span> </div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00815"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#a626056ffa0735a9db1724ecdf1370cbb"> 815</a></span> <a class="code" href="../../dd/daa/pepper__main_8c.html#a626056ffa0735a9db1724ecdf1370cbb">load_file_read_contents</a>(<span class="keywordtype">void</span> *data, <span class="keywordtype">int</span> <a class="code" href="../../d8/d90/nkf_8c.html#a5ea5ac7abf5cce39283e422add1067d5">result</a>)</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span> {</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>  <span class="keyword">struct </span><a class="code" href="../../d2/d9b/struct_pepper_instance.html">PepperInstance</a>* <span class="keyword">const</span> <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a> = (<span class="keyword">struct </span><a class="code" href="../../d2/d9b/struct_pepper_instance.html">PepperInstance</a>*)data;</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>  <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->async_call_result.as_value = <a class="code" href="../../db/d2e/intern_8h.html#a48b2b873adb8b6a04254bd631c4b03c5">rb_str_new</a>(0, 0);</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>  <a class="code" href="../../dd/daa/pepper__main_8c.html#a80cf91f02e68f434ca40a9751a29f192">loader_interface</a>->ReadResponseBody(</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>  <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->url_loader, <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->buf, 1000, PP_MakeCompletionCallback(<a class="code" href="../../dd/daa/pepper__main_8c.html#aadad3d6fdbdd69c98c5c84af8e62d711">load_file_read_contents_callback</a>, <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>));</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span> }</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span> </div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span> <span class="keywordtype">void</span>*</div><div class="line"><a name="l00824"></a><span class="lineno"><a class="line" href="../../dd/daa/pepper__main_8c.html#a3b79209300b640cccbc9555620b2abad"> 824</a></span> <a class="code" href="../../dd/daa/pepper__main_8c.html#a3b79209300b640cccbc9555620b2abad">rb_load_file</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *path)</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span> {</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *real_path;</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>  <span class="keyword">struct </span><a class="code" href="../../d2/d9b/struct_pepper_instance.html">PepperInstance</a>* <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>;</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>  <span class="keywordflow">if</span> (path[0] != <span class="charliteral">'.'</span> || path[1] != <span class="charliteral">'/'</span>) path += 2;</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span> </div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>  <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a> = <a class="code" href="../../dd/daa/pepper__main_8c.html#ab22a565267c12827bf0ff47c8e1043f4">GET_PEPPER_INSTANCE</a>();</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>  <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->async_call_args = (<span class="keywordtype">void</span>*)path;</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>  <a class="code" href="../../dd/daa/pepper__main_8c.html#a91f94620c22725285b27d3f5b3b8f639">core_interface</a>->CallOnMainThread(</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>  0, PP_MakeCompletionCallback(<a class="code" href="../../dd/daa/pepper__main_8c.html#ac534d76014089f5c4550786455154a72">load_file_internal</a>, <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>), 0);</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>  <span class="keywordflow">if</span> (pthread_cond_wait(&<a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->cond, &<a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->mutex)) {</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>  perror(<span class="stringliteral">"pepper-ruby:pthread_cond_wait"</span>);</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>  }</div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->async_call_result.as_int != PP_OK) {</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span>  fprintf(stderr, <span class="stringliteral">"Failed to open URL: %d: %s\n"</span>,</div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>  <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->async_call_result.as_int, path);</div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>  <span class="keywordflow">return</span> 0;</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> </div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>  <a class="code" href="../../dd/daa/pepper__main_8c.html#a91f94620c22725285b27d3f5b3b8f639">core_interface</a>->CallOnMainThread(</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>  0, PP_MakeCompletionCallback(<a class="code" href="../../dd/daa/pepper__main_8c.html#a41e40cc5f91ddb5b5cef75801c508db9">pruby_file_fetch_check_response</a>, <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>), 0);</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>  <span class="keywordflow">if</span> (pthread_cond_wait(&<a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->cond, &<a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->mutex)) {</div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>  perror(<span class="stringliteral">"pepper-ruby:pthread_cond_wait"</span>);</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>  }</div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->async_call_result.as_int != PP_OK) <span class="keywordflow">return</span> 0;</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>  <a class="code" href="../../dd/daa/pepper__main_8c.html#a91f94620c22725285b27d3f5b3b8f639">core_interface</a>->CallOnMainThread(</div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>  0, PP_MakeCompletionCallback(<a class="code" href="../../dd/daa/pepper__main_8c.html#a626056ffa0735a9db1724ecdf1370cbb">load_file_read_contents</a>, <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>), 0);</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>  <span class="keywordflow">if</span> (pthread_cond_wait(&<a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->cond, &<a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->mutex)) {</div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span>  perror(<span class="stringliteral">"pepper-ruby:pthread_cond_wait"</span>);</div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span>  }</div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>  <span class="keywordflow">if</span> (<a class="code" href="../../de/de6/ruby_2ruby_8h.html#acf2fcf97dcf9c7c35452730eb3e2aeb2">FIXNUM_P</a>(<a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->async_call_result.as_value)) {</div><div class="line"><a name="l00860"></a><span class="lineno"> 860</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span>  }</div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac4f895997656c2abd27a29a8b8e982ca">RB_TYPE_P</a>(<a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->async_call_result.as_value, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a22a8c2a4bbaae9b68f65c9bb92fd4e39">T_STRING</a>)) {</div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> str = <a class="code" href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">instance</a>->async_call_result.as_value;</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span>  <span class="keyword">extern</span> <span class="keywordtype">void</span>* <a class="code" href="../../d5/d11/ripper_8c.html#a2cad62b3d9f04b9a9bfec854862ab1e5">rb_compile_cstr</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="../../d9/d2d/sprintf_8c.html#a7a51ed112e9b79f89e3e70beb8db8bf5">f</a>, <span class="keyword">const</span> <span class="keywordtype">char</span> *s, <span class="keywordtype">int</span> len, <span class="keywordtype">int</span> line);</div><div class="line"><a name="l00865"></a><span class="lineno"> 865</span>  <span class="keywordflow">return</span> <a class="code" href="../../d5/d11/ripper_8c.html#a2cad62b3d9f04b9a9bfec854862ab1e5">rb_compile_cstr</a>(path, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3f0e4e2b6d073369cc1c2ddde00b13bb">RSTRING_PTR</a>(str), <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a0d1c6e4431397f8bd285073af0d98d77">RSTRING_LEN</a>(str), 0);</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>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00868"></a><span class="lineno"> 868</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span>  }</div><div class="line"><a name="l00870"></a><span class="lineno"> 870</span> }</div><div class="ttc" id="struct_pepper_instance_html_ac8ae08730e601079e55f6f34c7770f80"><div class="ttname"><a href="../../d2/d9b/struct_pepper_instance.html#ac8ae08730e601079e55f6f34c7770f80">PepperInstance::async_call_result</a></div><div class="ttdeci">union PepperInstance::@128 async_call_result</div></div> <div class="ttc" id="struct_pepper_instance_html_ac10b6e75dc96f18c35139ea25cb4a320"><div class="ttname"><a href="../../d2/d9b/struct_pepper_instance.html#ac10b6e75dc96f18c35139ea25cb4a320">PepperInstance::as_value</a></div><div class="ttdeci">VALUE as_value</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00090">pepper_main.c:90</a></div></div> <div class="ttc" id="pepper__main_8c_html_aadad3d6fdbdd69c98c5c84af8e62d711"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#aadad3d6fdbdd69c98c5c84af8e62d711">load_file_read_contents_callback</a></div><div class="ttdeci">static void load_file_read_contents_callback(void *data, int result)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00797">pepper_main.c:797</a></div></div> <div class="ttc" id="pepper__main_8c_html_afcb80252ec86e396a284d7bf8d42c47d"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#afcb80252ec86e396a284d7bf8d42c47d">pruby_init</a></div><div class="ttdeci">static int pruby_init(void)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00405">pepper_main.c:405</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_a39cf94183e6d744167ae5f6a7bde0363"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#a39cf94183e6d744167ae5f6a7bde0363">rb_cData</a></div><div class="ttdeci">RUBY_EXTERN VALUE rb_cData</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l01568">ruby.h:1568</a></div></div> <div class="ttc" id="group__embed_html_gad9a4bb7e06e2ea58231480dc5b3abcdc"><div class="ttname"><a href="../../de/d43/group__embed.html#gad9a4bb7e06e2ea58231480dc5b3abcdc">ruby_cleanup</a></div><div class="ttdeci">int ruby_cleanup(volatile int ex)</div><div class="ttdoc">Destructs the VM. </div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d57/eval_8c_source.html#l00157">eval.c:157</a></div></div> <div class="ttc" id="pepper__main_8c_html_ae8af2f25465a1481368e5d8516cd9ba0"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#ae8af2f25465a1481368e5d8516cd9ba0">pepper_instance_data_type</a></div><div class="ttdeci">static const rb_data_type_t pepper_instance_data_type</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00077">pepper_main.c:77</a></div></div> <div class="ttc" id="struct_pepper_instance_html_a81e2e931090a90a9b5bb993d36879253"><div class="ttname"><a href="../../d2/d9b/struct_pepper_instance.html#a81e2e931090a90a9b5bb993d36879253">PepperInstance::as_int</a></div><div class="ttdeci">int32_t as_int</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00088">pepper_main.c:88</a></div></div> <div class="ttc" id="pepper__main_8c_html_aa633b6140426e3c515092a1be142f032"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#aa633b6140426e3c515092a1be142f032">Instance_DidChangeFocus</a></div><div class="ttdeci">static void Instance_DidChangeFocus(PP_Instance instance, PP_Bool has_focus)</div><div class="ttdoc">Notification that the given NaCl module has gained or lost focus. </div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00552">pepper_main.c:552</a></div></div> <div class="ttc" id="strchr_8c_html_a219836f542ce53545052bed5353820ca"><div class="ttname"><a href="../../d6/d7b/strchr_8c.html#a219836f542ce53545052bed5353820ca">strlen</a></div><div class="ttdeci">size_t strlen(const char *)</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#l00069">st.h:69</a></div></div> <div class="ttc" id="pepper__main_8c_html_a2d2717434dadc0a18d09ab41d08d63f7"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#a2d2717434dadc0a18d09ab41d08d63f7">pruby_unregister_instance</a></div><div class="ttdeci">int pruby_unregister_instance(PP_Instance instance)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00133">pepper_main.c:133</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="struct_pepper_instance_html_a42ffbc95424c3b2b6d64ce6c2a83ab76"><div class="ttname"><a href="../../d2/d9b/struct_pepper_instance.html#a42ffbc95424c3b2b6d64ce6c2a83ab76">PepperInstance::instance</a></div><div class="ttdeci">PP_Instance instance</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00083">pepper_main.c:83</a></div></div> <div class="ttc" id="pepper__main_8c_html_a1c9445b761f4a24f528b4e8d52edaf78"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#a1c9445b761f4a24f528b4e8d52edaf78">response_interface</a></div><div class="ttdeci">static PPB_URLResponseInfo * response_interface</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00062">pepper_main.c:62</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_a8dce6624396c492cdd1af3a4c5871556"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#a8dce6624396c492cdd1af3a4c5871556">TypedData_Get_Struct</a></div><div class="ttdeci">#define TypedData_Get_Struct(obj, type, data_type, sval)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l01041">ruby.h:1041</a></div></div> <div class="ttc" id="pepper__main_8c_html_a0b85b2cb59d6757752241b38c4b8a4dc"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#a0b85b2cb59d6757752241b38c4b8a4dc">pruby_register_instance</a></div><div class="ttdeci">struct PepperInstance * pruby_register_instance(PP_Instance instance)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00116">pepper_main.c:116</a></div></div> <div class="ttc" id="intern_8h_html_a2f12f7ad949fa2e6abb64f2311c6e2c5"><div class="ttname"><a href="../../db/d2e/intern_8h.html#a2f12f7ad949fa2e6abb64f2311c6e2c5">rb_str_concat</a></div><div class="ttdeci">VALUE rb_str_concat(VALUE, VALUE)</div><div class="ttdef"><b>Definition:</b> <a href="../../d1/db0/string_8c_source.html#l02339">string.c:2339</a></div></div> <div class="ttc" id="eval_8c_html_a6aa7fb1169ed41978a16375b6f921b0e"><div class="ttname"><a href="../../d3/d57/eval_8c.html#a6aa7fb1169ed41978a16375b6f921b0e">rb_protect</a></div><div class="ttdeci">VALUE rb_protect(VALUE(*proc)(VALUE), VALUE data, int *state)</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d57/eval_8c_source.html#l00807">eval.c:807</a></div></div> <div class="ttc" id="win32ole_8c_html_a6fb3b37b30ac3874008f653ed9765309"><div class="ttname"><a href="../../d2/d99/win32ole_8c.html#a6fb3b37b30ac3874008f653ed9765309">if</a></div><div class="ttdeci">if((ID)(DISPID) nameid !=nameid)</div><div class="ttdef"><b>Definition:</b> <a href="../../d2/d99/win32ole_8c_source.html#l00770">win32ole.c:770</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="verconf_8h_html"><div class="ttname"><a href="../../de/d9e/verconf_8h.html">verconf.h</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="struct_pepper_instance_html_aa4884406a63b685e751978b83e7c669c"><div class="ttname"><a href="../../d2/d9b/struct_pepper_instance.html#aa4884406a63b685e751978b83e7c669c">PepperInstance::cond</a></div><div class="ttdeci">pthread_cond_t cond</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00096">pepper_main.c:96</a></div></div> <div class="ttc" id="dmyext_8c_html_a7950db01edfb5beddf33ef6b78e880c9"><div class="ttname"><a href="../../d3/dfe/dmyext_8c.html#a7950db01edfb5beddf33ef6b78e880c9">Init_ext</a></div><div class="ttdeci">void Init_ext(void)</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/dfe/dmyext_8c_source.html#l00002">dmyext.c:2</a></div></div> <div class="ttc" id="pepper__main_8c_html_a559d5b65eb5fea0a5b6fbf1a4aa2327c"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#a559d5b65eb5fea0a5b6fbf1a4aa2327c">init_loadpath</a></div><div class="ttdeci">static void init_loadpath(void)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00342">pepper_main.c:342</a></div></div> <div class="ttc" id="pepper__main_8c_html_ad5091962c17aa17d96e84919de5f7a9a"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#ad5091962c17aa17d96e84919de5f7a9a">pruby_eval</a></div><div class="ttdeci">static void * pruby_eval(void *data)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00422">pepper_main.c:422</a></div></div> <div class="ttc" id="pepper__main_8c_html_a0fff3013eeb0c496901e2ad4addd657a"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#a0fff3013eeb0c496901e2ad4addd657a">current_instance</a></div><div class="ttdeci">static PP_Instance current_instance</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00068">pepper_main.c:68</a></div></div> <div class="ttc" id="pepper__main_8c_html_a8025ad33a14547b64b263f20fab2170d"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#a8025ad33a14547b64b263f20fab2170d">pruby_obj_to_var</a></div><div class="ttdeci">static struct PP_Var pruby_obj_to_var(volatile VALUE obj)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00266">pepper_main.c:266</a></div></div> <div class="ttc" id="pepper__main_8c_html_a7ca68eacc5ed31c524aaf49be1ccc5b0"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#a7ca68eacc5ed31c524aaf49be1ccc5b0">PPP_GetInterface</a></div><div class="ttdeci">PP_EXPORT const void * PPP_GetInterface(const char *interface_name)</div><div class="ttdoc">Returns an interface pointer for the interface of the given name, or NULL if the interface is not sup...</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00655">pepper_main.c:655</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_acf2fcf97dcf9c7c35452730eb3e2aeb2"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#acf2fcf97dcf9c7c35452730eb3e2aeb2">FIXNUM_P</a></div><div class="ttdeci">#define FIXNUM_P(f)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00347">ruby.h:347</a></div></div> <div class="ttc" id="pepper__main_8c_html_a2e79eb8d9874470f97ca70405f5d7b36"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#a2e79eb8d9874470f97ca70405f5d7b36">Instance_DidChangeView</a></div><div class="ttdeci">static void Instance_DidChangeView(PP_Instance instance, PP_Resource view_resource)</div><div class="ttdoc">Called when the position, the size, or the clip rect of the element in the browser that corresponds t...</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00529">pepper_main.c:529</a></div></div> <div class="ttc" id="pepper__main_8c_html_a3b79209300b640cccbc9555620b2abad"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#a3b79209300b640cccbc9555620b2abad">rb_load_file</a></div><div class="ttdeci">void * rb_load_file(const char *path)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00824">pepper_main.c:824</a></div></div> <div class="ttc" id="pepper__main_8c_html_a4735205bd94299248a596a486ef99e5a"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#a4735205bd94299248a596a486ef99e5a">pruby_async_return_str</a></div><div class="ttdeci">void pruby_async_return_str(void *data, const char *result)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00179">pepper_main.c:179</a></div></div> <div class="ttc" id="pepper__main_8c_html_ada820b90ad52f1ff915b31bbdc0c19cf"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#ada820b90ad52f1ff915b31bbdc0c19cf">Instance_HandleDocumentLoad</a></div><div class="ttdeci">static PP_Bool Instance_HandleDocumentLoad(PP_Instance instance, PP_Resource url_loader)</div><div class="ttdoc">Handler that gets called after a full-frame module is instantiated based on registered MIME types...</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00567">pepper_main.c:567</a></div></div> <div class="ttc" id="group__embed_html_ga396d18f1de73ca9b8f6a3896adb3067a"><div class="ttname"><a href="../../de/d43/group__embed.html#ga396d18f1de73ca9b8f6a3896adb3067a">ruby_incpush</a></div><div class="ttdeci">void ruby_incpush(const char *)</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d77/ruby_8c_source.html#l00337">ruby.c:337</a></div></div> <div class="ttc" id="intern_8h_html_a4dff49e6d9aa925fd94fc5100b3c399b"><div class="ttname"><a href="../../db/d2e/intern_8h.html#a4dff49e6d9aa925fd94fc5100b3c399b">rb_str_buf_cat</a></div><div class="ttdeci">VALUE rb_str_buf_cat(VALUE, const char *, long)</div><div class="ttdef"><b>Definition:</b> <a href="../../d1/db0/string_8c_source.html#l02123">string.c:2123</a></div></div> <div class="ttc" id="struct_pepper_instance_html_a712601b08be8ebe9018286df0fc2515c"><div class="ttname"><a href="../../d2/d9b/struct_pepper_instance.html#a712601b08be8ebe9018286df0fc2515c">PepperInstance::self</a></div><div class="ttdeci">VALUE self</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00085">pepper_main.c:85</a></div></div> <div class="ttc" id="struct_pepper_instance_html_a262b532157707ef08ca2b462c9f349c8"><div class="ttname"><a href="../../d2/d9b/struct_pepper_instance.html#a262b532157707ef08ca2b462c9f349c8">PepperInstance::mutex</a></div><div class="ttdeci">pthread_mutex_t mutex</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00095">pepper_main.c:95</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#l01672">ruby.h:1672</a></div></div> <div class="ttc" id="pepper__main_8c_html_a0b0e6534f499e1d95edd48dcfa2c9cbb"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#a0b0e6534f499e1d95edd48dcfa2c9cbb">pruby_var_equal_to_cstr_p</a></div><div class="ttdeci">int pruby_var_equal_to_cstr_p(struct PP_Var lhs, const char *rhs)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00281">pepper_main.c:281</a></div></div> <div class="ttc" id="pepper__main_8c_html_afc42d46cba3185feadc395112fe6799a"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#afc42d46cba3185feadc395112fe6799a">init_libraries_internal</a></div><div class="ttdeci">static VALUE init_libraries_internal(VALUE unused)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00350">pepper_main.c:350</a></div></div> <div class="ttc" id="pepper__main_8c_html_a0d33bf87161dc521ce41fef63dd5ced9"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#a0d33bf87161dc521ce41fef63dd5ced9">messaging_interface</a></div><div class="ttdeci">static PPB_Messaging * messaging_interface</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00058">pepper_main.c:58</a></div></div> <div class="ttc" id="hash_8c_html_ac477edf136d86a33bc06d1fbea67bb9a"><div class="ttname"><a href="../../d1/d04/hash_8c.html#ac477edf136d86a33bc06d1fbea67bb9a">rb_hash_aset</a></div><div class="ttdeci">VALUE rb_hash_aset(VALUE hash, VALUE key, VALUE val)</div><div class="ttdef"><b>Definition:</b> <a href="../../d1/d04/hash_8c_source.html#l01402">hash.c:1402</a></div></div> <div class="ttc" id="group__ruby1_html_ga2fe207a5a5fd5da2bf5948cb084a1c5b"><div class="ttname"><a href="../../d7/dce/group__ruby1.html#ga2fe207a5a5fd5da2bf5948cb084a1c5b">ruby_init</a></div><div class="ttdeci">void ruby_init(void)</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d57/eval_8c_source.html#l00073">eval.c:73</a></div></div> <div class="ttc" id="missing_8h_html_a695026fc69840c65da7ea58226006f69"><div class="ttname"><a href="../../d3/d90/missing_8h.html#a695026fc69840c65da7ea58226006f69">strstr</a></div><div class="ttdeci">RUBY_EXTERN char * strstr(const char *, const char *)</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d29/strstr_8c_source.html#l00008">strstr.c:8</a></div></div> <div class="ttc" id="intern_8h_html_acae5350f5d539c4654e4e33690256a9f"><div class="ttname"><a href="../../db/d2e/intern_8h.html#acae5350f5d539c4654e4e33690256a9f">rb_obj_as_string</a></div><div class="ttdeci">VALUE rb_obj_as_string(VALUE)</div><div class="ttdef"><b>Definition:</b> <a href="../../d1/db0/string_8c_source.html#l01011">string.c:1011</a></div></div> <div class="ttc" id="pepper__main_8c_html_aee9d745904423e4b1acb76c84bb9fc99"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#aee9d745904423e4b1acb76c84bb9fc99">PPP_ShutdownModule</a></div><div class="ttdeci">PP_EXPORT void PPP_ShutdownModule()</div><div class="ttdoc">Called before the plugin module is unloaded. </div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00679">pepper_main.c:679</a></div></div> <div class="ttc" id="pepper__main_8c_html_a52811b24ebb3f7b4f936ac6622b31658"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#a52811b24ebb3f7b4f936ac6622b31658">EVAL_PREFIX_LEN</a></div><div class="ttdeci">#define EVAL_PREFIX_LEN</div></div> <div class="ttc" id="strerror_8c_html_ae4f3f55be5de649fd367081b9d1b4b0c"><div class="ttname"><a href="../../d5/d04/strerror_8c.html#ae4f3f55be5de649fd367081b9d1b4b0c">msg</a></div><div class="ttdeci">static char msg[50]</div><div class="ttdef"><b>Definition:</b> <a href="../../d5/d04/strerror_8c_source.html#l00008">strerror.c:8</a></div></div> <div class="ttc" id="struct_pepper_instance_html_a39fc3bc153090b31bc99a5e12435ae3f"><div class="ttname"><a href="../../d2/d9b/struct_pepper_instance.html#a39fc3bc153090b31bc99a5e12435ae3f">PepperInstance::as_str</a></div><div class="ttdeci">const char * as_str</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00089">pepper_main.c:89</a></div></div> <div class="ttc" id="pepper__main_8c_html_a1e24a8fdd0caf7104c3deba4fa9531f8"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#a1e24a8fdd0caf7104c3deba4fa9531f8">pruby_str_to_var</a></div><div class="ttdeci">static struct PP_Var pruby_str_to_var(volatile VALUE str)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00249">pepper_main.c:249</a></div></div> <div class="ttc" id="pepper__main_8c_html_a897c636865cd10da6709116e982ab4ec"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#a897c636865cd10da6709116e982ab4ec">inst_mark</a></div><div class="ttdeci">static void inst_mark(void *const ptr)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00140">pepper_main.c:140</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="ruby_2ruby_8h_html_a394faf7191f18552a20cb17ce14226f0"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#a394faf7191f18552a20cb17ce14226f0">TYPE</a></div><div class="ttdeci">#define TYPE(x)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00505">ruby.h:505</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#l00131">ruby.c:131</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#l04923">gc.c:4923</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#l00114">win32.c:114</a></div></div> <div class="ttc" id="pepper__main_8c_html_aa958e9b1b5bbe3d9dfc223b05267869b"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#aa958e9b1b5bbe3d9dfc223b05267869b">pruby_get_instance</a></div><div class="ttdeci">struct PepperInstance * pruby_get_instance(PP_Instance instance)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00100">pepper_main.c:100</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="ripper_8c_html_a2cad62b3d9f04b9a9bfec854862ab1e5"><div class="ttname"><a href="../../d5/d11/ripper_8c.html#a2cad62b3d9f04b9a9bfec854862ab1e5">rb_compile_cstr</a></div><div class="ttdeci">NODE * rb_compile_cstr(const char *f, const char *s, int len, int line)</div><div class="ttdef"><b>Definition:</b> <a href="../../d5/d11/ripper_8c_source.html#l12107">ripper.c:12107</a></div></div> <div class="ttc" id="pepper__main_8c_html_a529351626ac8da3fe3908c0c64c2b545"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#a529351626ac8da3fe3908c0c64c2b545">pruby_var_to_cstr</a></div><div class="ttdeci">static char * pruby_var_to_cstr(struct PP_Var var)</div><div class="ttdoc">Returns a mutable C string contained in the var or NULL if var is not string. </div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00233">pepper_main.c:233</a></div></div> <div class="ttc" id="pepper__main_8c_html_aff2d85dac238842527c0e770f2a64f7e"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#aff2d85dac238842527c0e770f2a64f7e">instance_table</a></div><div class="ttdeci">static VALUE instance_table</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00066">pepper_main.c:66</a></div></div> <div class="ttc" id="struct_pepper_instance_html"><div class="ttname"><a href="../../d2/d9b/struct_pepper_instance.html">PepperInstance</a></div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00082">pepper_main.c:82</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_a0d1c6e4431397f8bd285073af0d98d77"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#a0d1c6e4431397f8bd285073af0d98d77">RSTRING_LEN</a></div><div class="ttdeci">#define RSTRING_LEN(str)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00841">ruby.h:841</a></div></div> <div class="ttc" id="pepper__main_8c_html_a91350345b91bd6f3dea8665f7a203df9"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#a91350345b91bd6f3dea8665f7a203df9">module_id</a></div><div class="ttdeci">static PP_Module module_id</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00056">pepper_main.c:56</a></div></div> <div class="ttc" id="hash_8c_html_a70c8d95c2537fbdde12b368a8bfa94b1"><div class="ttname"><a href="../../d1/d04/hash_8c.html#a70c8d95c2537fbdde12b368a8bfa94b1">rb_hash_delete</a></div><div class="ttdeci">VALUE rb_hash_delete(VALUE hash, VALUE key)</div><div class="ttdef"><b>Definition:</b> <a href="../../d1/d04/hash_8c_source.html#l01005">hash.c:1005</a></div></div> <div class="ttc" id="strftime_8c_html_a2c212835823e3c54a8ab6d95c652660e"><div class="ttname"><a href="../../d8/d4e/strftime_8c.html#a2c212835823e3c54a8ab6d95c652660e">const</a></div><div class="ttdeci">#define const</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d4e/strftime_8c_source.html#l00102">strftime.c:102</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#l00096">ripper.c:96</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#l00307">hash.c:307</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#l06245">gc.c:6245</a></div></div> <div class="ttc" id="pepper__main_8c_html_ac7ab6e59ba2cc6e94c1e366cce25e5e5"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#ac7ab6e59ba2cc6e94c1e366cce25e5e5">instance_data</a></div><div class="ttdeci">static struct st_table * instance_data</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00064">pepper_main.c:64</a></div></div> <div class="ttc" id="pepper__main_8c_html_ad8a00d689e88df5b39159416ad411a6c"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#ad8a00d689e88df5b39159416ad411a6c">inst_memsize</a></div><div class="ttdeci">static size_t inst_memsize(void *const ptr)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00157">pepper_main.c:157</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#l00427">ruby.h:427</a></div></div> <div class="ttc" id="pepper__main_8c_html_a91f94620c22725285b27d3f5b3b8f639"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#a91f94620c22725285b27d3f5b3b8f639">core_interface</a></div><div class="ttdeci">static PPB_Core * core_interface</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00057">pepper_main.c:57</a></div></div> <div class="ttc" id="pepper__main_8c_html_a8fc47673ef30ab73335c829d1beebae9"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#a8fc47673ef30ab73335c829d1beebae9">fileref_interface</a></div><div class="ttdeci">static PPB_FileRef * fileref_interface</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00063">pepper_main.c:63</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_a3c1d4bfc6a81af60bdcb48744c35f760"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="ttdeci">unsigned long VALUE</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00088">ruby.h:88</a></div></div> <div class="ttc" id="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="pepper__main_8c_html_a01f9913ee6ecef0ba90902ff6a702729"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#a01f9913ee6ecef0ba90902ff6a702729">init_libraries_if_necessary</a></div><div class="ttdeci">static int init_libraries_if_necessary(void)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00387">pepper_main.c:387</a></div></div> <div class="ttc" id="pepper__main_8c_html_af6cde458a52cf2593ffc2ebcc856a477"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#af6cde458a52cf2593ffc2ebcc856a477">pruby_post_value</a></div><div class="ttdeci">void pruby_post_value(void *data)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00327">pepper_main.c:327</a></div></div> <div class="ttc" id="memcmp_8c_html_a1499ab2d0a3da86cbc3e688294f60a48"><div class="ttname"><a href="../../d5/d21/memcmp_8c.html#a1499ab2d0a3da86cbc3e688294f60a48">memcmp</a></div><div class="ttdeci">int memcmp(const void *s1, const void *s2, size_t len)</div><div class="ttdef"><b>Definition:</b> <a href="../../d5/d21/memcmp_8c_source.html#l00007">memcmp.c:7</a></div></div> <div class="ttc" id="version_8h_html"><div class="ttname"><a href="../../df/dfc/version_8h.html">version.h</a></div></div> <div class="ttc" id="sha2_8h_html_a435d1572bf3f880d55459d9805097f62"><div class="ttname"><a href="../../db/d4d/sha2_8h.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a></div><div class="ttdeci">unsigned int uint32_t</div><div class="ttdef"><b>Definition:</b> <a href="../../db/d4d/sha2_8h_source.html#l00101">sha2.h:101</a></div></div> <div class="ttc" id="struct_pepper_instance_html_ab8f62c5c128c2164fe6157ebcc0b684f"><div class="ttname"><a href="../../d2/d9b/struct_pepper_instance.html#ab8f62c5c128c2164fe6157ebcc0b684f">PepperInstance::url_loader</a></div><div class="ttdeci">PP_Resource url_loader</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00084">pepper_main.c:84</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#l00845">ruby.h:845</a></div></div> <div class="ttc" id="defines_8h_html_a88a5f2518a95ad0105db35166afe6220"><div class="ttname"><a href="../../d8/db0/defines_8h.html#a88a5f2518a95ad0105db35166afe6220">RUBY_PLATFORM</a></div><div class="ttdeci">#define RUBY_PLATFORM</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/db0/defines_8h_source.html#l00299">defines.h:299</a></div></div> <div class="ttc" id="pepper__main_8c_html_a0db770443ce690e9297a10283b01ff6a"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#a0db770443ce690e9297a10283b01ff6a">PPP_InitializeModule</a></div><div class="ttdeci">PP_EXPORT int32_t PPP_InitializeModule(PP_Module a_module_id, PPB_GetInterface get_browser_interface)</div><div class="ttdoc">Entry points for the module. </div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00621">pepper_main.c:621</a></div></div> <div class="ttc" id="pepper__main_8c_html_ab22a565267c12827bf0ff47c8e1043f4"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#ab22a565267c12827bf0ff47c8e1043f4">GET_PEPPER_INSTANCE</a></div><div class="ttdeci">#define GET_PEPPER_INSTANCE()</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00113">pepper_main.c:113</a></div></div> <div class="ttc" id="sprintf_8c_html_a7a51ed112e9b79f89e3e70beb8db8bf5"><div class="ttname"><a href="../../d9/d2d/sprintf_8c.html#a7a51ed112e9b79f89e3e70beb8db8bf5">f</a></div><div class="ttdeci">#define f</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#l00231">ruby.h:231</a></div></div> <div class="ttc" id="eval_8c_html_a4484d744216a0afdf26dce14f1190973"><div class="ttname"><a href="../../d3/d57/eval_8c.html#a4484d744216a0afdf26dce14f1190973">rb_set_errinfo</a></div><div class="ttdeci">void rb_set_errinfo(VALUE err)</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d57/eval_8c_source.html#l01517">eval.c:1517</a></div></div> <div class="ttc" id="pepper__main_8c_html_a87a46b5d31052af560407f8b0c342a09"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#a87a46b5d31052af560407f8b0c342a09">pruby_cstr_to_var</a></div><div class="ttdeci">static struct PP_Var pruby_cstr_to_var(const char *str)</div><div class="ttdoc">Creates a new string PP_Var from C string. </div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00211">pepper_main.c:211</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#l00966">ruby.h:966</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#l00706">hash.c:706</a></div></div> <div class="ttc" id="pepper__main_8c_html_a13a8314faf72066d27f4ddf4bc838cbd"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#a13a8314faf72066d27f4ddf4bc838cbd">Instance_DidDestroy</a></div><div class="ttdeci">static void Instance_DidDestroy(PP_Instance instance)</div><div class="ttdoc">Called when the NaCl module is destroyed. </div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00502">pepper_main.c:502</a></div></div> <div class="ttc" id="vm__eval_8c_html_a7e09478e783d5d2c779f9d6a0e2b3eb6"><div class="ttname"><a href="../../d3/d80/vm__eval_8c.html#a7e09478e783d5d2c779f9d6a0e2b3eb6">ruby_eval_string_from_file_protect</a></div><div class="ttdeci">VALUE ruby_eval_string_from_file_protect(const char *str, const char *filename, int *state)</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d80/vm__eval_8c_source.html#l01390">vm_eval.c:1390</a></div></div> <div class="ttc" id="missing_8h_html_afd46339e0e35acab03772ba959071313"><div class="ttname"><a href="../../d3/d90/missing_8h.html#afd46339e0e35acab03772ba959071313">strerror</a></div><div class="ttdeci">RUBY_EXTERN char * strerror(int)</div><div class="ttdef"><b>Definition:</b> <a href="../../d5/d04/strerror_8c_source.html#l00011">strerror.c:11</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_a117741045763c090b26e30a85bd0e0a6"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#a117741045763c090b26e30a85bd0e0a6">RTEST</a></div><div class="ttdeci">#define RTEST(v)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00437">ruby.h:437</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_a22a8c2a4bbaae9b68f65c9bb92fd4e39"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#a22a8c2a4bbaae9b68f65c9bb92fd4e39">T_STRING</a></div><div class="ttdeci">#define T_STRING</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00482">ruby.h:482</a></div></div> <div class="ttc" id="pepper__main_8c_html_a3fd1054111e98240863eb622eb759515"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#a3fd1054111e98240863eb622eb759515">pruby_post_cstr</a></div><div class="ttdeci">void pruby_post_cstr(void *data)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00315">pepper_main.c:315</a></div></div> <div class="ttc" id="pepper__main_8c_html_adc00d8f27cda214153231f33b1698c58"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#adc00d8f27cda214153231f33b1698c58">pruby_var_prefixed_p</a></div><div class="ttdeci">int pruby_var_prefixed_p(struct PP_Var var, const char *prefix)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00294">pepper_main.c:294</a></div></div> <div class="ttc" id="pepper__main_8c_html_a6175b15ce78abc0548f8479f4c9cb0cc"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#a6175b15ce78abc0548f8479f4c9cb0cc">request_interface</a></div><div class="ttdeci">static PPB_URLRequestInfo * request_interface</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00061">pepper_main.c:61</a></div></div> <div class="ttc" id="pepper__main_8c_html_a41e40cc5f91ddb5b5cef75801c508db9"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#a41e40cc5f91ddb5b5cef75801c508db9">pruby_file_fetch_check_response</a></div><div class="ttdeci">static void pruby_file_fetch_check_response(void *data, int32_t unused)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00713">pepper_main.c:713</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="pepper__main_8c_html_ab934b8cd8bb524c063c1d220a70185e1"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#ab934b8cd8bb524c063c1d220a70185e1">init_libraries</a></div><div class="ttdeci">static void * init_libraries(void *data)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00362">pepper_main.c:362</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#l01030">ruby.h:1030</a></div></div> <div class="ttc" id="group__ruby1_html_ga17c49ad88928c1e079350dcceb8d1578"><div class="ttname"><a href="../../d7/dce/group__ruby1.html#ga17c49ad88928c1e079350dcceb8d1578">RUBY_INIT_STACK</a></div><div class="ttdeci">#define RUBY_INIT_STACK</div><div class="ttdoc">A convenience macro to call ruby_init_stack(). </div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l01835">ruby.h:1835</a></div></div> <div class="ttc" id="pepper__main_8c_html_a51a06fdf0a4a71e29b2a83f3295da88e"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#a51a06fdf0a4a71e29b2a83f3295da88e">rb_file_load_ok</a></div><div class="ttdeci">int rb_file_load_ok(const char *path)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00741">pepper_main.c:741</a></div></div> <div class="ttc" id="dmyext_8c_html_a2eb1c7452da49391801c244eb05c130a"><div class="ttname"><a href="../../d3/dfe/dmyext_8c.html#a2eb1c7452da49391801c244eb05c130a">Init_enc</a></div><div class="ttdeci">void Init_enc(void)</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/dfe/dmyext_8c_source.html#l00007">dmyext.c:7</a></div></div> <div class="ttc" id="tcltklib_8c_html_a89cd18829599d193ee75073219cc42c4"><div class="ttname"><a href="../../d5/d9d/tcltklib_8c.html#a89cd18829599d193ee75073219cc42c4">rb_errinfo</a></div><div class="ttdeci">#define rb_errinfo()</div><div class="ttdef"><b>Definition:</b> <a href="../../d5/d9d/tcltklib_8c_source.html#l00090">tcltklib.c:90</a></div></div> <div class="ttc" id="struct_pepper_instance_html_af0e3c411d7cb6cdde11bd2b7ce71ae0b"><div class="ttname"><a href="../../d2/d9b/struct_pepper_instance.html#af0e3c411d7cb6cdde11bd2b7ce71ae0b">PepperInstance::async_call_args</a></div><div class="ttdeci">void * async_call_args</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00086">pepper_main.c:86</a></div></div> <div class="ttc" id="pepper__main_8c_html_a7e9bcd58c78b0632846b543fc6828b46"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#a7e9bcd58c78b0632846b543fc6828b46">load_ok_internal</a></div><div class="ttdeci">static void load_ok_internal(void *data, int32_t unused)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00689">pepper_main.c:689</a></div></div> <div class="ttc" id="pepper__main_8c_html_ad3553be55afdbd1ae103cf95fc59c967"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#ad3553be55afdbd1ae103cf95fc59c967">Messaging_HandleMessage</a></div><div class="ttdeci">void Messaging_HandleMessage(PP_Instance instance, struct PP_Var var_message)</div><div class="ttdoc">Handler for messages coming in from the browser via postMessage. </div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00590">pepper_main.c:590</a></div></div> <div class="ttc" id="pepper__main_8c_html_a943ed084905ba638819fa85406672436"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#a943ed084905ba638819fa85406672436">inst_free</a></div><div class="ttdeci">static void inst_free(void *const ptr)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00151">pepper_main.c:151</a></div></div> <div class="ttc" id="pepper__main_8c_html_a6f75132fd783752578455a2bb90f1b80"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#a6f75132fd783752578455a2bb90f1b80">var_interface</a></div><div class="ttdeci">static PPB_Var * var_interface</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00059">pepper_main.c:59</a></div></div> <div class="ttc" id="struct_pepper_instance_html_af99b002ce196dc05488814c0a3714b5f"><div class="ttname"><a href="../../d2/d9b/struct_pepper_instance.html#af99b002ce196dc05488814c0a3714b5f">PepperInstance::buf</a></div><div class="ttdeci">char buf[1000]</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00092">pepper_main.c:92</a></div></div> <div class="ttc" id="pepper__main_8c_html_ae46acee2188abcb768d6e1426e833281"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#ae46acee2188abcb768d6e1426e833281">pruby_async_return_value</a></div><div class="ttdeci">void pruby_async_return_value(void *data, VALUE value)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00190">pepper_main.c:190</a></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#l00428">ruby.h:428</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="pepper__main_8c_html_ad41836ec2e5a6dea2d7786bfecd32baf"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#ad41836ec2e5a6dea2d7786bfecd32baf">Instance_DidCreate</a></div><div class="ttdeci">static PP_Bool Instance_DidCreate(PP_Instance instance, uint32_t argc, const char *argn[], const char *argv[])</div><div class="ttdoc">Called when the NaCl module is instantiated on the web page. </div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00487">pepper_main.c:487</a></div></div> <div class="ttc" id="struct_pepper_instance_html_a6daf5ecb16a308f71f3a7b10e3e6da8a"><div class="ttname"><a href="../../d2/d9b/struct_pepper_instance.html#a6daf5ecb16a308f71f3a7b10e3e6da8a">PepperInstance::th</a></div><div class="ttdeci">pthread_t th</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00094">pepper_main.c:94</a></div></div> <div class="ttc" id="pepper__main_8c_html_ac534d76014089f5c4550786455154a72"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#ac534d76014089f5c4550786455154a72">load_file_internal</a></div><div class="ttdeci">static void load_file_internal(void *data, int32_t unused)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00773">pepper_main.c:773</a></div></div> <div class="ttc" id="pepper__main_8c_html_a626056ffa0735a9db1724ecdf1370cbb"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#a626056ffa0735a9db1724ecdf1370cbb">load_file_read_contents</a></div><div class="ttdeci">static void load_file_read_contents(void *data, int result)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00815">pepper_main.c:815</a></div></div> <div class="ttc" id="intern_8h_html_a14cee14f3a9a89e96144482560957ea0"><div class="ttname"><a href="../../db/d2e/intern_8h.html#a14cee14f3a9a89e96144482560957ea0">rb_usascii_str_new_cstr</a></div><div class="ttdeci">VALUE rb_usascii_str_new_cstr(const char *)</div><div class="ttdef"><b>Definition:</b> <a href="../../d1/db0/string_8c_source.html#l00569">string.c:569</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#l00132">ruby.c:132</a></div></div> <div class="ttc" id="pepper__main_8c_html_abe891b4e150c031153e9ef9cbc3b7886"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#abe891b4e150c031153e9ef9cbc3b7886">pruby_async_return_int</a></div><div class="ttdeci">void pruby_async_return_int(void *data, int32_t result)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00168">pepper_main.c:168</a></div></div> <div class="ttc" id="intern_8h_html_a48b2b873adb8b6a04254bd631c4b03c5"><div class="ttname"><a href="../../db/d2e/intern_8h.html#a48b2b873adb8b6a04254bd631c4b03c5">rb_str_new</a></div><div class="ttdeci">VALUE rb_str_new(const char *, long)</div><div class="ttdef"><b>Definition:</b> <a href="../../d1/db0/string_8c_source.html#l00534">string.c:534</a></div></div> <div class="ttc" id="pepper__main_8c_html_a80cf91f02e68f434ca40a9751a29f192"><div class="ttname"><a href="../../dd/daa/pepper__main_8c.html#a80cf91f02e68f434ca40a9751a29f192">loader_interface</a></div><div class="ttdeci">static PPB_URLLoader * loader_interface</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/daa/pepper__main_8c_source.html#l00060">pepper_main.c:60</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