Current File : //usr/share/gtk-doc/html/harfbuzz/object-model-blobs.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Blobs: HarfBuzz Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="index.html" title="HarfBuzz Manual">
<link rel="up" href="object-model.html" title="The HarfBuzz object model">
<link rel="prev" href="object-model-user-data.html" title="User data">
<link rel="next" href="buffers-language-script-and-direction.html" title="Buffers, language, script and direction">
<meta name="generator" content="GTK-Doc V1.32 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts"></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="object-model.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="object-model-user-data.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="buffers-language-script-and-direction.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="object-model-blobs"></a>Blobs</h2></div></div></div>
<p>
While most of HarfBuzz's object types are specific to the
shaping process, <span class="emphasis"><em>blobs</em></span> are somewhat
different.
</p>
<p>
Blobs are an abstraction desgined to negotiate lifecycle and
permissions for raw pieces of data. For example, when you load
the raw font data into memory and want to pass it to HarfBuzz,
you do so in a <code class="literal">hb_blob_t</code> wrapper.
</p>
<p>
This allows you to take advantage of HarffBuzz's
reference-counting and <code class="function">destroy</code>
callbacks. If you allocated the memory for the data using
<code class="function">malloc()</code>, you would create the blob using
</p>
<pre class="programlisting">
hb_blob_create (data, length, HB_MEMORY_MODE_WRITABLE, data, free)
</pre>
<p>
That way, HarfBuzz will call <code class="function">free()</code> on the
allocated memory whenever the blob drops its last reference and
is deconstructed. Consequently, the user code can stop worrying
about freeing memory and let the reference-counting machinery
take care of that.
</p>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.32</div>
</body>
</html>
Mr. DellatioNx196 GaLers xh3LL Backd00r 1.0, Coded By Mr. DellatioNx196 - Bogor BlackHat