Move unicode_funcs to buffer
diff --git a/src/hb-buffer.c b/src/hb-buffer.c
index 93b51e5..1b5f2fb 100644
--- a/src/hb-buffer.c
+++ b/src/hb-buffer.c
@@ -31,7 +31,9 @@
static hb_buffer_t _hb_buffer_nil = {
- HB_REFERENCE_COUNT_INVALID /* ref_count */
+ HB_REFERENCE_COUNT_INVALID, /* ref_count */
+
+ &_hb_unicode_funcs_nil /* unicode */
};
/* Here is how the buffer works internally:
@@ -84,6 +86,8 @@
if (pre_alloc_size)
hb_buffer_ensure(buffer, pre_alloc_size);
+ buffer->unicode = &_hb_unicode_funcs_nil;
+
return buffer;
}
@@ -104,12 +108,45 @@
{
HB_OBJECT_DO_DESTROY (buffer);
+ hb_unicode_funcs_destroy (buffer->unicode);
+
free (buffer->in_string);
free (buffer->positions);
free (buffer);
}
+
+void
+hb_buffer_set_unicode_funcs (hb_buffer_t *buffer,
+ hb_unicode_funcs_t *unicode)
+{
+ hb_unicode_funcs_reference (unicode);
+ hb_unicode_funcs_destroy (buffer->unicode);
+ buffer->unicode = unicode;
+}
+
+hb_unicode_funcs_t *
+hb_buffer_get_unicode_funcs (hb_buffer_t *buffer)
+{
+ return buffer->unicode;
+}
+
+void
+hb_buffer_set_direction (hb_buffer_t *buffer,
+ hb_direction_t direction)
+
+{
+ buffer->direction = direction;
+}
+
+hb_direction_t
+hb_buffer_get_direction (hb_buffer_t *buffer)
+{
+ return buffer->direction;
+}
+
+
void
hb_buffer_clear (hb_buffer_t *buffer)
{
@@ -171,14 +208,6 @@
buffer->in_length++;
}
-void
-hb_buffer_set_direction (hb_buffer_t *buffer,
- hb_direction_t direction)
-
-{
- buffer->direction = direction;
-}
-
/* HarfBuzz-Internal API */