Revert "Imported Upstream version 1.2.7"
[platform/upstream/harfbuzz.git] / docs / reference / html / harfbuzz-hb-blob.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5 <title>hb-blob</title>
6 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
7 <link rel="home" href="index.html" title="HarfBuzz Reference Manual">
8 <link rel="up" href="ch01.html" title="[Insert title here]">
9 <link rel="prev" href="harfbuzz-hb-buffer.html" title="hb-buffer">
10 <link rel="next" href="harfbuzz-hb-face.html" title="hb-face">
11 <meta name="generator" content="GTK-Doc V1.20.1 (XML mode)">
12 <link rel="stylesheet" href="style.css" type="text/css">
13 </head>
14 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
15 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
16 <td width="100%" align="left" class="shortcuts">
17 <a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
18                   <a href="#harfbuzz-hb-blob.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
19                   <a href="#harfbuzz-hb-blob.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
20 </td>
21 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
22 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
23 <td><a accesskey="p" href="harfbuzz-hb-buffer.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
24 <td><a accesskey="n" href="harfbuzz-hb-face.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
25 </tr></table>
26 <div class="refentry">
27 <a name="harfbuzz-hb-blob"></a><div class="titlepage"></div>
28 <div class="refnamediv"><table width="100%"><tr>
29 <td valign="top">
30 <h2><span class="refentrytitle"><a name="harfbuzz-hb-blob.top_of_page"></a>hb-blob</span></h2>
31 <p>hb-blob</p>
32 </td>
33 <td class="gallery_image" valign="top" align="right"></td>
34 </tr></table></div>
35 <div class="refsect1">
36 <a name="harfbuzz-hb-blob.functions"></a><h2>Functions</h2>
37 <div class="informaltable"><table width="100%" border="0">
38 <colgroup>
39 <col width="150px" class="functions_return">
40 <col class="functions_name">
41 </colgroup>
42 <tbody>
43 <tr>
44 <td class="function_type">
45 <a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
46 </td>
47 <td class="function_name">
48 <a class="link" href="harfbuzz-hb-blob.html#hb-blob-create" title="hb_blob_create ()">hb_blob_create</a> <span class="c_punctuation">()</span>
49 </td>
50 </tr>
51 <tr>
52 <td class="function_type">
53 <a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
54 </td>
55 <td class="function_name">
56 <a class="link" href="harfbuzz-hb-blob.html#hb-blob-create-sub-blob" title="hb_blob_create_sub_blob ()">hb_blob_create_sub_blob</a> <span class="c_punctuation">()</span>
57 </td>
58 </tr>
59 <tr>
60 <td class="function_type">
61 <span class="returnvalue">void</span>
62 </td>
63 <td class="function_name">
64 <a class="link" href="harfbuzz-hb-blob.html#hb-blob-destroy" title="hb_blob_destroy ()">hb_blob_destroy</a> <span class="c_punctuation">()</span>
65 </td>
66 </tr>
67 <tr>
68 <td class="function_type">const <span class="returnvalue">char</span> *
69 </td>
70 <td class="function_name">
71 <a class="link" href="harfbuzz-hb-blob.html#hb-blob-get-data" title="hb_blob_get_data ()">hb_blob_get_data</a> <span class="c_punctuation">()</span>
72 </td>
73 </tr>
74 <tr>
75 <td class="function_type">
76 <span class="returnvalue">char</span> *
77 </td>
78 <td class="function_name">
79 <a class="link" href="harfbuzz-hb-blob.html#hb-blob-get-data-writable" title="hb_blob_get_data_writable ()">hb_blob_get_data_writable</a> <span class="c_punctuation">()</span>
80 </td>
81 </tr>
82 <tr>
83 <td class="function_type">
84 <a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
85 </td>
86 <td class="function_name">
87 <a class="link" href="harfbuzz-hb-blob.html#hb-blob-get-empty" title="hb_blob_get_empty ()">hb_blob_get_empty</a> <span class="c_punctuation">()</span>
88 </td>
89 </tr>
90 <tr>
91 <td class="function_type">unsigned <span class="returnvalue">int</span>
92 </td>
93 <td class="function_name">
94 <a class="link" href="harfbuzz-hb-blob.html#hb-blob-get-length" title="hb_blob_get_length ()">hb_blob_get_length</a> <span class="c_punctuation">()</span>
95 </td>
96 </tr>
97 <tr>
98 <td class="function_type">
99 <span class="returnvalue">void</span> *
100 </td>
101 <td class="function_name">
102 <a class="link" href="harfbuzz-hb-blob.html#hb-blob-get-user-data" title="hb_blob_get_user_data ()">hb_blob_get_user_data</a> <span class="c_punctuation">()</span>
103 </td>
104 </tr>
105 <tr>
106 <td class="function_type">
107 <a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
108 </td>
109 <td class="function_name">
110 <a class="link" href="harfbuzz-hb-blob.html#hb-blob-is-immutable" title="hb_blob_is_immutable ()">hb_blob_is_immutable</a> <span class="c_punctuation">()</span>
111 </td>
112 </tr>
113 <tr>
114 <td class="function_type">
115 <span class="returnvalue">void</span>
116 </td>
117 <td class="function_name">
118 <a class="link" href="harfbuzz-hb-blob.html#hb-blob-make-immutable" title="hb_blob_make_immutable ()">hb_blob_make_immutable</a> <span class="c_punctuation">()</span>
119 </td>
120 </tr>
121 <tr>
122 <td class="function_type">
123 <a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
124 </td>
125 <td class="function_name">
126 <a class="link" href="harfbuzz-hb-blob.html#hb-blob-reference" title="hb_blob_reference ()">hb_blob_reference</a> <span class="c_punctuation">()</span>
127 </td>
128 </tr>
129 <tr>
130 <td class="function_type">
131 <a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
132 </td>
133 <td class="function_name">
134 <a class="link" href="harfbuzz-hb-blob.html#hb-blob-set-user-data" title="hb_blob_set_user_data ()">hb_blob_set_user_data</a> <span class="c_punctuation">()</span>
135 </td>
136 </tr>
137 </tbody>
138 </table></div>
139 </div>
140 <a name="hb-blob-t"></a><div class="refsect1">
141 <a name="harfbuzz-hb-blob.other"></a><h2>Types and Values</h2>
142 <div class="informaltable"><table width="100%" border="0">
143 <colgroup>
144 <col width="150px" class="name">
145 <col class="description">
146 </colgroup>
147 <tbody>
148 <tr>
149 <td class="typedef_keyword">typedef</td>
150 <td class="function_name"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t">hb_blob_t</a></td>
151 </tr>
152 <tr>
153 <td class="datatype_keyword">enum</td>
154 <td class="function_name"><a class="link" href="harfbuzz-hb-blob.html#hb-memory-mode-t" title="enum hb_memory_mode_t">hb_memory_mode_t</a></td>
155 </tr>
156 </tbody>
157 </table></div>
158 </div>
159 <div class="refsect1">
160 <a name="harfbuzz-hb-blob.object-hierarchy"></a><h2>Object Hierarchy</h2>
161 <pre class="screen">    GBoxed
162     <span class="lineart">╰──</span> hb_blob_t
163     GEnum
164     <span class="lineart">╰──</span> hb_memory_mode_t
165 </pre>
166 </div>
167 <div class="refsect1">
168 <a name="harfbuzz-hb-blob.description"></a><h2>Description</h2>
169 <p>
170 </p>
171 </div>
172 <div class="refsect1">
173 <a name="harfbuzz-hb-blob.functions_details"></a><h2>Functions</h2>
174 <div class="refsect2">
175 <a name="hb-blob-create"></a><h3>hb_blob_create ()</h3>
176 <pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
177 hb_blob_create (<em class="parameter"><code>const <span class="type">char</span> *data</code></em>,
178                 <em class="parameter"><code>unsigned <span class="type">int</span> length</code></em>,
179                 <em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-memory-mode-t" title="enum hb_memory_mode_t"><span class="type">hb_memory_mode_t</span></a> mode</code></em>,
180                 <em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
181                 <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
182 <p>Creates a new "blob" object wrapping <em class="parameter"><code>data</code></em>
183 .  The <em class="parameter"><code>mode</code></em>
184  parameter is used
185 to negotiate ownership and lifecycle of <em class="parameter"><code>data</code></em>
186 .</p>
187 <div class="refsect3">
188 <a name="idp17456912"></a><h4>Parameters</h4>
189 <div class="informaltable"><table width="100%" border="0">
190 <colgroup>
191 <col width="150px" class="parameters_name">
192 <col class="parameters_description">
193 <col width="200px" class="parameters_annotations">
194 </colgroup>
195 <tbody>
196 <tr>
197 <td class="parameter_name"><p>data</p></td>
198 <td class="parameter_description"><p>Pointer to blob data.</p></td>
199 <td class="parameter_annotations"> </td>
200 </tr>
201 <tr>
202 <td class="parameter_name"><p>length</p></td>
203 <td class="parameter_description"><p>Length of <em class="parameter"><code>data</code></em>
204 in bytes.</p></td>
205 <td class="parameter_annotations"> </td>
206 </tr>
207 <tr>
208 <td class="parameter_name"><p>mode</p></td>
209 <td class="parameter_description"><p>Memory mode for <em class="parameter"><code>data</code></em>
210 .</p></td>
211 <td class="parameter_annotations"> </td>
212 </tr>
213 <tr>
214 <td class="parameter_name"><p>user_data</p></td>
215 <td class="parameter_description"><p>Data parameter to pass to <em class="parameter"><code>destroy</code></em>
216 .</p></td>
217 <td class="parameter_annotations"> </td>
218 </tr>
219 <tr>
220 <td class="parameter_name"><p>destroy</p></td>
221 <td class="parameter_description"><p>Callback to call when <em class="parameter"><code>data</code></em>
222 is not needed anymore.</p></td>
223 <td class="parameter_annotations"> </td>
224 </tr>
225 </tbody>
226 </table></div>
227 </div>
228 <div class="refsect3">
229 <a name="idp18906304"></a><h4>Returns</h4>
230 <p> New blob, or the empty blob if something failed or if <em class="parameter"><code>length</code></em>
231 is
232 zero.  Destroy with <a class="link" href="harfbuzz-hb-blob.html#hb-blob-destroy" title="hb_blob_destroy ()"><code class="function">hb_blob_destroy()</code></a>.</p>
233 <p></p>
234 </div>
235 <p class="since">Since 1.0</p>
236 </div>
237 <hr>
238 <div class="refsect2">
239 <a name="hb-blob-create-sub-blob"></a><h3>hb_blob_create_sub_blob ()</h3>
240 <pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
241 hb_blob_create_sub_blob (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *parent</code></em>,
242                          <em class="parameter"><code>unsigned <span class="type">int</span> offset</code></em>,
243                          <em class="parameter"><code>unsigned <span class="type">int</span> length</code></em>);</pre>
244 <p>Returns a blob that represents a range of bytes in <em class="parameter"><code>parent</code></em>
245 .  The new
246 blob is always created with <a class="link" href="harfbuzz-hb-blob.html#HB-MEMORY-MODE-READONLY:CAPS"><code class="literal">HB_MEMORY_MODE_READONLY</code></a>, meaning that it
247 will never modify data in the parent blob.  The parent data is not
248 expected to be modified, and will result in undefined behavior if it
249 is.</p>
250 <p>Makes <em class="parameter"><code>parent</code></em>
251  immutable.</p>
252 <div class="refsect3">
253 <a name="idp13979952"></a><h4>Parameters</h4>
254 <div class="informaltable"><table width="100%" border="0">
255 <colgroup>
256 <col width="150px" class="parameters_name">
257 <col class="parameters_description">
258 <col width="200px" class="parameters_annotations">
259 </colgroup>
260 <tbody>
261 <tr>
262 <td class="parameter_name"><p>parent</p></td>
263 <td class="parameter_description"><p>Parent blob.</p></td>
264 <td class="parameter_annotations"> </td>
265 </tr>
266 <tr>
267 <td class="parameter_name"><p>offset</p></td>
268 <td class="parameter_description"><p>Start offset of sub-blob within <em class="parameter"><code>parent</code></em>
269 , in bytes.</p></td>
270 <td class="parameter_annotations"> </td>
271 </tr>
272 <tr>
273 <td class="parameter_name"><p>length</p></td>
274 <td class="parameter_description"><p>Length of sub-blob.</p></td>
275 <td class="parameter_annotations"> </td>
276 </tr>
277 </tbody>
278 </table></div>
279 </div>
280 <div class="refsect3">
281 <a name="idp20653328"></a><h4>Returns</h4>
282 <p> New blob, or the empty blob if something failed or if
283 <em class="parameter"><code>length</code></em>
284 is zero or <em class="parameter"><code>offset</code></em>
285 is beyond the end of <em class="parameter"><code>parent</code></em>
286 's data.  Destroy
287 with <a class="link" href="harfbuzz-hb-blob.html#hb-blob-destroy" title="hb_blob_destroy ()"><code class="function">hb_blob_destroy()</code></a>.</p>
288 <p></p>
289 </div>
290 <p class="since">Since 1.0</p>
291 </div>
292 <hr>
293 <div class="refsect2">
294 <a name="hb-blob-destroy"></a><h3>hb_blob_destroy ()</h3>
295 <pre class="programlisting"><span class="returnvalue">void</span>
296 hb_blob_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *blob</code></em>);</pre>
297 <p>Descreases the reference count on <em class="parameter"><code>blob</code></em>
298 , and if it reaches zero, destroys
299 <em class="parameter"><code>blob</code></em>
300 , freeing all memory, possibly calling the destroy-callback the blob
301 was created for if it has not been called already.</p>
302 <p>See TODO:link object types for more information.</p>
303 <div class="refsect3">
304 <a name="idp21977536"></a><h4>Parameters</h4>
305 <div class="informaltable"><table width="100%" border="0">
306 <colgroup>
307 <col width="150px" class="parameters_name">
308 <col class="parameters_description">
309 <col width="200px" class="parameters_annotations">
310 </colgroup>
311 <tbody><tr>
312 <td class="parameter_name"><p>blob</p></td>
313 <td class="parameter_description"><p>a blob.</p></td>
314 <td class="parameter_annotations"> </td>
315 </tr></tbody>
316 </table></div>
317 </div>
318 <p class="since">Since 1.0</p>
319 </div>
320 <hr>
321 <div class="refsect2">
322 <a name="hb-blob-get-data"></a><h3>hb_blob_get_data ()</h3>
323 <pre class="programlisting">const <span class="returnvalue">char</span> *
324 hb_blob_get_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *blob</code></em>,
325                   <em class="parameter"><code>unsigned <span class="type">int</span> *length</code></em>);</pre>
326 <div class="refsect3">
327 <a name="idp21995504"></a><h4>Parameters</h4>
328 <div class="informaltable"><table width="100%" border="0">
329 <colgroup>
330 <col width="150px" class="parameters_name">
331 <col class="parameters_description">
332 <col width="200px" class="parameters_annotations">
333 </colgroup>
334 <tbody>
335 <tr>
336 <td class="parameter_name"><p>blob</p></td>
337 <td class="parameter_description"><p>a blob.</p></td>
338 <td class="parameter_annotations"> </td>
339 </tr>
340 <tr>
341 <td class="parameter_name"><p>length</p></td>
342 <td class="parameter_description"><p>. </p></td>
343 <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
344 </tr>
345 </tbody>
346 </table></div>
347 </div>
348 <div class="refsect3">
349 <a name="idp22007616"></a><h4>Returns</h4>
350 <p>. </p>
351 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=length]</span></p>
352 </div>
353 <p class="since">Since 1.0</p>
354 </div>
355 <hr>
356 <div class="refsect2">
357 <a name="hb-blob-get-data-writable"></a><h3>hb_blob_get_data_writable ()</h3>
358 <pre class="programlisting"><span class="returnvalue">char</span> *
359 hb_blob_get_data_writable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *blob</code></em>,
360                            <em class="parameter"><code>unsigned <span class="type">int</span> *length</code></em>);</pre>
361 <p>Tries to make blob data writable (possibly copying it) and
362 return pointer to data.</p>
363 <p>Fails if blob has been made immutable, or if memory allocation
364 fails.</p>
365 <div class="refsect3">
366 <a name="idp22021568"></a><h4>Parameters</h4>
367 <div class="informaltable"><table width="100%" border="0">
368 <colgroup>
369 <col width="150px" class="parameters_name">
370 <col class="parameters_description">
371 <col width="200px" class="parameters_annotations">
372 </colgroup>
373 <tbody>
374 <tr>
375 <td class="parameter_name"><p>blob</p></td>
376 <td class="parameter_description"><p>a blob.</p></td>
377 <td class="parameter_annotations"> </td>
378 </tr>
379 <tr>
380 <td class="parameter_name"><p>length</p></td>
381 <td class="parameter_description"><p> output length of the writable data. </p></td>
382 <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
383 </tr>
384 </tbody>
385 </table></div>
386 </div>
387 <div class="refsect3">
388 <a name="idp22033696"></a><h4>Returns</h4>
389 <p> Writable blob data,
390 or <code class="literal">NULL</code> if failed. </p>
391 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=length]</span></p>
392 </div>
393 <p class="since">Since 1.0</p>
394 </div>
395 <hr>
396 <div class="refsect2">
397 <a name="hb-blob-get-empty"></a><h3>hb_blob_get_empty ()</h3>
398 <pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
399 hb_blob_get_empty (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
400 <p>Returns the singleton empty blob.</p>
401 <p>See TODO:link object types for more information.</p>
402 <div class="refsect3">
403 <a name="idp22046512"></a><h4>Returns</h4>
404 <p> the empty blob. </p>
405 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
406 </div>
407 <p class="since">Since 1.0</p>
408 </div>
409 <hr>
410 <div class="refsect2">
411 <a name="hb-blob-get-length"></a><h3>hb_blob_get_length ()</h3>
412 <pre class="programlisting">unsigned <span class="returnvalue">int</span>
413 hb_blob_get_length (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *blob</code></em>);</pre>
414 <div class="refsect3">
415 <a name="idp22057312"></a><h4>Parameters</h4>
416 <div class="informaltable"><table width="100%" border="0">
417 <colgroup>
418 <col width="150px" class="parameters_name">
419 <col class="parameters_description">
420 <col width="200px" class="parameters_annotations">
421 </colgroup>
422 <tbody><tr>
423 <td class="parameter_name"><p>blob</p></td>
424 <td class="parameter_description"><p>a blob.</p></td>
425 <td class="parameter_annotations"> </td>
426 </tr></tbody>
427 </table></div>
428 </div>
429 <div class="refsect3">
430 <a name="idp22065712"></a><h4>Returns</h4>
431 <p> the length of blob data in bytes.</p>
432 <p></p>
433 </div>
434 <p class="since">Since 1.0</p>
435 </div>
436 <hr>
437 <div class="refsect2">
438 <a name="hb-blob-get-user-data"></a><h3>hb_blob_get_user_data ()</h3>
439 <pre class="programlisting"><span class="returnvalue">void</span> *
440 hb_blob_get_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *blob</code></em>,
441                        <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>);</pre>
442 <div class="refsect3">
443 <a name="idp22076912"></a><h4>Parameters</h4>
444 <div class="informaltable"><table width="100%" border="0">
445 <colgroup>
446 <col width="150px" class="parameters_name">
447 <col class="parameters_description">
448 <col width="200px" class="parameters_annotations">
449 </colgroup>
450 <tbody>
451 <tr>
452 <td class="parameter_name"><p>blob</p></td>
453 <td class="parameter_description"><p>a blob.</p></td>
454 <td class="parameter_annotations"> </td>
455 </tr>
456 <tr>
457 <td class="parameter_name"><p>key</p></td>
458 <td class="parameter_description"><p>key for data to get.</p></td>
459 <td class="parameter_annotations"> </td>
460 </tr>
461 </tbody>
462 </table></div>
463 </div>
464 <div class="refsect3">
465 <a name="idp22087920"></a><h4>Returns</h4>
466 <p>. </p>
467 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
468 </div>
469 <p class="since">Since 1.0</p>
470 </div>
471 <hr>
472 <div class="refsect2">
473 <a name="hb-blob-is-immutable"></a><h3>hb_blob_is_immutable ()</h3>
474 <pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
475 hb_blob_is_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *blob</code></em>);</pre>
476 <div class="refsect3">
477 <a name="idp22098576"></a><h4>Parameters</h4>
478 <div class="informaltable"><table width="100%" border="0">
479 <colgroup>
480 <col width="150px" class="parameters_name">
481 <col class="parameters_description">
482 <col width="200px" class="parameters_annotations">
483 </colgroup>
484 <tbody><tr>
485 <td class="parameter_name"><p>blob</p></td>
486 <td class="parameter_description"><p>a blob.</p></td>
487 <td class="parameter_annotations"> </td>
488 </tr></tbody>
489 </table></div>
490 </div>
491 <div class="refsect3">
492 <a name="idp21531488"></a><h4>Returns</h4>
493 <p> TODO</p>
494 <p></p>
495 </div>
496 <p class="since">Since 1.0</p>
497 </div>
498 <hr>
499 <div class="refsect2">
500 <a name="hb-blob-make-immutable"></a><h3>hb_blob_make_immutable ()</h3>
501 <pre class="programlisting"><span class="returnvalue">void</span>
502 hb_blob_make_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *blob</code></em>);</pre>
503 <div class="refsect3">
504 <a name="idp21541040"></a><h4>Parameters</h4>
505 <div class="informaltable"><table width="100%" border="0">
506 <colgroup>
507 <col width="150px" class="parameters_name">
508 <col class="parameters_description">
509 <col width="200px" class="parameters_annotations">
510 </colgroup>
511 <tbody><tr>
512 <td class="parameter_name"><p>blob</p></td>
513 <td class="parameter_description"><p>a blob.</p></td>
514 <td class="parameter_annotations"> </td>
515 </tr></tbody>
516 </table></div>
517 </div>
518 <p class="since">Since 1.0</p>
519 </div>
520 <hr>
521 <div class="refsect2">
522 <a name="hb-blob-reference"></a><h3>hb_blob_reference ()</h3>
523 <pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
524 hb_blob_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *blob</code></em>);</pre>
525 <p>Increases the reference count on <em class="parameter"><code>blob</code></em>
526 .</p>
527 <p>See TODO:link object types for more information.</p>
528 <div class="refsect3">
529 <a name="idp21558896"></a><h4>Parameters</h4>
530 <div class="informaltable"><table width="100%" border="0">
531 <colgroup>
532 <col width="150px" class="parameters_name">
533 <col class="parameters_description">
534 <col width="200px" class="parameters_annotations">
535 </colgroup>
536 <tbody><tr>
537 <td class="parameter_name"><p>blob</p></td>
538 <td class="parameter_description"><p>a blob.</p></td>
539 <td class="parameter_annotations"> </td>
540 </tr></tbody>
541 </table></div>
542 </div>
543 <div class="refsect3">
544 <a name="idp21567296"></a><h4>Returns</h4>
545 <p> <em class="parameter"><code>blob</code></em>
546 .</p>
547 <p></p>
548 </div>
549 <p class="since">Since 1.0</p>
550 </div>
551 <hr>
552 <div class="refsect2">
553 <a name="hb-blob-set-user-data"></a><h3>hb_blob_set_user_data ()</h3>
554 <pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
555 hb_blob_set_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *blob</code></em>,
556                        <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>,
557                        <em class="parameter"><code><span class="type">void</span> *data</code></em>,
558                        <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>,
559                        <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="type">hb_bool_t</span></a> replace</code></em>);</pre>
560 <div class="refsect3">
561 <a name="idp21584240"></a><h4>Parameters</h4>
562 <div class="informaltable"><table width="100%" border="0">
563 <colgroup>
564 <col width="150px" class="parameters_name">
565 <col class="parameters_description">
566 <col width="200px" class="parameters_annotations">
567 </colgroup>
568 <tbody>
569 <tr>
570 <td class="parameter_name"><p>blob</p></td>
571 <td class="parameter_description"><p>a blob.</p></td>
572 <td class="parameter_annotations"> </td>
573 </tr>
574 <tr>
575 <td class="parameter_name"><p>key</p></td>
576 <td class="parameter_description"><p>key for data to set.</p></td>
577 <td class="parameter_annotations"> </td>
578 </tr>
579 <tr>
580 <td class="parameter_name"><p>data</p></td>
581 <td class="parameter_description"><p>data to set.</p></td>
582 <td class="parameter_annotations"> </td>
583 </tr>
584 <tr>
585 <td class="parameter_name"><p>destroy</p></td>
586 <td class="parameter_description"><p>callback to call when <em class="parameter"><code>data</code></em>
587 is not needed anymore.</p></td>
588 <td class="parameter_annotations"> </td>
589 </tr>
590 <tr>
591 <td class="parameter_name"><p>replace</p></td>
592 <td class="parameter_description"><p>whether to replace an existing data with the same key.</p></td>
593 <td class="parameter_annotations"> </td>
594 </tr>
595 </tbody>
596 </table></div>
597 </div>
598 <div class="refsect3">
599 <a name="idp21603920"></a><h4>Returns</h4>
600 <p></p>
601 </div>
602 <p class="since">Since 1.0</p>
603 </div>
604 </div>
605 <div class="refsect1">
606 <a name="harfbuzz-hb-blob.other_details"></a><h2>Types and Values</h2>
607 <div class="refsect2">
608 <a name="hb-blob-t"></a><h3>hb_blob_t</h3>
609 <pre class="programlisting">typedef struct hb_blob_t hb_blob_t;
610 </pre>
611 <p>
612 </p>
613 </div>
614 <hr>
615 <div class="refsect2">
616 <a name="hb-memory-mode-t"></a><h3>enum hb_memory_mode_t</h3>
617 <p>
618 </p>
619 <div class="refsect3">
620 <a name="idp21615792"></a><h4>Members</h4>
621 <div class="informaltable"><table width="100%" border="0">
622 <colgroup>
623 <col width="300px" class="enum_members_name">
624 <col class="enum_members_description">
625 <col width="200px" class="enum_members_annotations">
626 </colgroup>
627 <tbody>
628 <tr>
629 <td class="enum_member_name"><p><a name="HB-MEMORY-MODE-DUPLICATE:CAPS"></a>HB_MEMORY_MODE_DUPLICATE</p></td>
630 <td class="enum_member_description"> </td>
631 <td class="enum_member_annotations"> </td>
632 </tr>
633 <tr>
634 <td class="enum_member_name"><p><a name="HB-MEMORY-MODE-READONLY:CAPS"></a>HB_MEMORY_MODE_READONLY</p></td>
635 <td class="enum_member_description"> </td>
636 <td class="enum_member_annotations"> </td>
637 </tr>
638 <tr>
639 <td class="enum_member_name"><p><a name="HB-MEMORY-MODE-WRITABLE:CAPS"></a>HB_MEMORY_MODE_WRITABLE</p></td>
640 <td class="enum_member_description"> </td>
641 <td class="enum_member_annotations"> </td>
642 </tr>
643 <tr>
644 <td class="enum_member_name"><p><a name="HB-MEMORY-MODE-READONLY-MAY-MAKE-WRITABLE:CAPS"></a>HB_MEMORY_MODE_READONLY_MAY_MAKE_WRITABLE</p></td>
645 <td class="enum_member_description"> </td>
646 <td class="enum_member_annotations"> </td>
647 </tr>
648 </tbody>
649 </table></div>
650 </div>
651 </div>
652 </div>
653 </div>
654 <div class="footer">
655 <hr>
656           Generated by GTK-Doc V1.20.1</div>
657 </body>
658 </html>