]> git.mdlowis.com Git - archive/tide-ocaml.git/commitdiff
switched glyph cache from a map to a hashtable
authorMichael D. Lowis <mike.lowis@gentex.com>
Tue, 7 Nov 2017 13:28:46 +0000 (08:28 -0500)
committerMichael D. Lowis <mike.lowis@gentex.com>
Tue, 7 Nov 2017 13:28:46 +0000 (08:28 -0500)
docs/Draw.Cursor.html
docs/X11.html
docs/index.html
docs/index_modules.html
docs/index_values.html
docs/type_Draw.Cursor.html
lib/x11.ml

index 38ece7b3d5c4269c62eef2d116a7c09aadefa6a1..d2fe5f0a947e7e1e50433c3a362d528eca454692 100644 (file)
@@ -79,5 +79,5 @@
 <pre><span id="VALhas_next_line"><span class="keyword">val</span> has_next_line</span> : <code class="type"><a href="Draw.Cursor.html#TYPEt">t</a> -> bool</code></pre>
 <pre><span id="VALdraw_tab"><span class="keyword">val</span> draw_tab</span> : <code class="type"><a href="Draw.Cursor.html#TYPEt">t</a> -> unit</code></pre>
 <pre><span id="VALplace_glyph"><span class="keyword">val</span> place_glyph</span> : <code class="type"><a href="Draw.Cursor.html#TYPEt">t</a> -> <a href="X11.html#TYPEglyph">X11.glyph</a> -> unit</code></pre>
-<pre><span id="VALdraw_glyph"><span class="keyword">val</span> draw_glyph</span> : <code class="type"><a href="Draw.Cursor.html#TYPEt">t</a> -> X11.GlyphMap.key -> unit</code></pre>
-<pre><span id="VALnext_glyph"><span class="keyword">val</span> next_glyph</span> : <code class="type"><a href="Draw.Cursor.html#TYPEt">t</a> -> X11.GlyphMap.key -> bool</code></pre></body></html>
\ No newline at end of file
+<pre><span id="VALdraw_glyph"><span class="keyword">val</span> draw_glyph</span> : <code class="type"><a href="Draw.Cursor.html#TYPEt">t</a> -> int -> unit</code></pre>
+<pre><span id="VALnext_glyph"><span class="keyword">val</span> next_glyph</span> : <code class="type"><a href="Draw.Cursor.html#TYPEt">t</a> -> int -> bool</code></pre></body></html>
\ No newline at end of file
index 26979292e9a9b86d77c3a44587fcc9425f879e85..130a69df46834ae45d5922b7b3a54dd4d4ebd710 100644 (file)
@@ -27,7 +27,9 @@
 </div>
 <h1>Module <a href="type_X11.html">X11</a></h1>
 
-<pre><span class="keyword">module</span> X11: <code class="code">sig</code> <a href="X11.html">..</a> <code class="code">end</code></pre><hr width="100%">
+<pre><span class="keyword">module</span> X11: <code class="code">sig</code> <a href="X11.html">..</a> <code class="code">end</code></pre><div class="info module top">
+</div>
+<hr width="100%">
 
 <pre><span id="TYPExatom"><span class="keyword">type</span> <code class="type"></code>xatom</span> </pre>
 
 <pre><span id="VALfont_load"><span class="keyword">val</span> font_load</span> : <code class="type">string -> <a href="X11.html#TYPEfont">font</a></code></pre>
 <pre><span id="VALfont_glyph"><span class="keyword">val</span> font_glyph</span> : <code class="type"><a href="X11.html#TYPEfont">font</a> -> int -> <a href="X11.html#TYPEglyph">glyph</a></code></pre>
 <pre><span id="VALdraw_glyph"><span class="keyword">val</span> draw_glyph</span> : <code class="type">int -> <a href="X11.html#TYPEglyph">glyph</a> -> int * int -> int</code></pre>
-<pre><span id="VALglyph_cache"><span class="keyword">val</span> glyph_cache</span> : <code class="type"><a href="X11.html#TYPEglyph">glyph</a> GlyphMap.t Pervasives.ref</code></pre>
-<pre><span id="VALcache_update"><span class="keyword">val</span> cache_update</span> : <code class="type">GlyphMap.key -> <a href="X11.html#TYPEglyph">glyph</a> -> <a href="X11.html#TYPEglyph">glyph</a></code></pre>
-<pre><span id="VALget_glyph"><span class="keyword">val</span> get_glyph</span> : <code class="type"><a href="X11.html#TYPEfont">font</a> -> GlyphMap.key -> <a href="X11.html#TYPEglyph">glyph</a></code></pre>
-<pre><span id="VALdraw_rune"><span class="keyword">val</span> draw_rune</span> : <code class="type"><a href="X11.html#TYPEfont">font</a> -> int -> GlyphMap.key -> int * int -> int</code></pre>
+<pre><span id="VALglyph_cache"><span class="keyword">val</span> glyph_cache</span> : <code class="type">(int, <a href="X11.html#TYPEglyph">glyph</a>) Hashtbl.t</code></pre><div class="info ">
+</div>
+
+<pre><span id="VALcache_update"><span class="keyword">val</span> cache_update</span> : <code class="type">int -> <a href="X11.html#TYPEglyph">glyph</a> -> <a href="X11.html#TYPEglyph">glyph</a></code></pre>
+<pre><span id="VALget_glyph"><span class="keyword">val</span> get_glyph</span> : <code class="type"><a href="X11.html#TYPEfont">font</a> -> int -> <a href="X11.html#TYPEglyph">glyph</a></code></pre>
+<pre><span id="VALdraw_rune"><span class="keyword">val</span> draw_rune</span> : <code class="type"><a href="X11.html#TYPEfont">font</a> -> int -> int -> int * int -> int</code></pre>
 <pre><span id="VALdraw_char"><span class="keyword">val</span> draw_char</span> : <code class="type"><a href="X11.html#TYPEfont">font</a> -> int -> char -> int * int -> int</code></pre>
 <pre><span id="VALdraw_stringi"><span class="keyword">val</span> draw_stringi</span> : <code class="type"><a href="X11.html#TYPEfont">font</a> -> int -> string -> int * int -> int -> unit</code></pre>
 <pre><span id="VALdraw_string"><span class="keyword">val</span> draw_string</span> : <code class="type"><a href="X11.html#TYPEfont">font</a> -> int -> string -> int * int -> unit</code></pre>
index 995df80330c7cfc01488d80241804a372d88b044..316de90cb081a73cc34d2babd6b1317dda1dd2b1 100644 (file)
@@ -28,7 +28,9 @@
 <br/><br>
 <table class="indextable">
 <tr><td class="module"><a href="Misc.html">Misc</a></td><td></td></tr>
-<tr><td class="module"><a href="X11.html">X11</a></td><td></td></tr>
+<tr><td class="module"><a href="X11.html">X11</a></td><td><div class="info">
+</div>
+</td></tr>
 <tr><td class="module"><a href="Cfg.html">Cfg</a></td><td></td></tr>
 <tr><td class="module"><a href="Rope.html">Rope</a></td><td></td></tr>
 <tr><td class="module"><a href="Buf.html">Buf</a></td><td></td></tr>
index f7ab3ae95def26c04a63427cdc6cc0e6e90e0a1b..1cb5199f77f3b1901ff299feac53b8467638940d 100644 (file)
@@ -54,7 +54,9 @@
 <td></td></tr>
 <tr><td align="left"><br>X</td></tr>
 <tr><td><a href="X11.html">X11</a> </td>
-<td></td></tr>
+<td><div class="info">
+</div>
+</td></tr>
 </table>
 </body>
 </html>
\ No newline at end of file
index 4ad49944e0c5477dd58af202c65ff1ddf9bc98c6..527dc7e6ce6943ee867d07cb8e94e53d9911591b 100644 (file)
 <tr><td><a href="Rope.html#VALgets">gets</a> [<a href="Rope.html">Rope</a>]</td>
 <td></td></tr>
 <tr><td><a href="X11.html#VALglyph_cache">glyph_cache</a> [<a href="X11.html">X11</a>]</td>
-<td></td></tr>
+<td><div class="info">
+</div>
+</td></tr>
 <tr><td><a href="Draw.html#VALglyph_width">glyph_width</a> [<a href="Draw.html">Draw</a>]</td>
 <td></td></tr>
 <tr><td><a href="Buf.Cursor.html#VALgoto">goto</a> [<a href="Buf.Cursor.html">Buf.Cursor</a>]</td>
index da3868f71d93aec48881dedbf6a1089ece7687a8..060e5144db453e2df7cb7c37db2c58621e0bdee7 100644 (file)
@@ -32,6 +32,6 @@
 &nbsp;&nbsp;<span class="keyword">val</span>&nbsp;has_next_line&nbsp;:&nbsp;<span class="constructor">Draw</span>.<span class="constructor">Cursor</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;bool<br>
 &nbsp;&nbsp;<span class="keyword">val</span>&nbsp;draw_tab&nbsp;:&nbsp;<span class="constructor">Draw</span>.<span class="constructor">Cursor</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
 &nbsp;&nbsp;<span class="keyword">val</span>&nbsp;place_glyph&nbsp;:&nbsp;<span class="constructor">Draw</span>.<span class="constructor">Cursor</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">X11</span>.glyph&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
-&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;draw_glyph&nbsp;:&nbsp;<span class="constructor">Draw</span>.<span class="constructor">Cursor</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">X11</span>.<span class="constructor">GlyphMap</span>.key&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
-&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;next_glyph&nbsp;:&nbsp;<span class="constructor">Draw</span>.<span class="constructor">Cursor</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">X11</span>.<span class="constructor">GlyphMap</span>.key&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;bool<br>
+&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;draw_glyph&nbsp;:&nbsp;<span class="constructor">Draw</span>.<span class="constructor">Cursor</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
+&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;next_glyph&nbsp;:&nbsp;<span class="constructor">Draw</span>.<span class="constructor">Cursor</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;bool<br>
 <span class="keyword">end</span></code></body></html>
\ No newline at end of file
index f7c42814f28829b93ddb36fb8eacce4d17a4e44f..5893d844c5f8175e78c86535ba6b76a6afe10d2a 100644 (file)
@@ -109,15 +109,15 @@ external font_glyph : font -> int -> glyph
 external draw_glyph : int -> glyph -> (int * int) -> int
                     = "x11_draw_glyph"
 
-let glyph_cache = ref GlyphMap.empty
+let glyph_cache = Hashtbl.create 127
 
 let cache_update rune glyph =
-  glyph_cache := GlyphMap.add rune glyph !glyph_cache;
+  Hashtbl.replace glyph_cache rune glyph;
   glyph
 
 let get_glyph (font : font) rune =
   try
-    let glyph = GlyphMap.find rune !glyph_cache in
+    let glyph = Hashtbl.find glyph_cache rune in
     if (glyph.font != font.font) then
       cache_update rune glyph
     else