[bindings] Use hb_glib_blob_create() in sample
authorBehdad Esfahbod <behdad@behdad.org>
Wed, 7 Jan 2015 03:16:38 +0000 (19:16 -0800)
committerBehdad Esfahbod <behdad@behdad.org>
Wed, 7 Jan 2015 03:16:38 +0000 (19:16 -0800)
hb_blob_create() is considered C-only API.

src/hb-blob.cc
src/sample.py

index 51ea20d..8759a25 100644 (file)
@@ -78,12 +78,12 @@ _hb_blob_destroy_user_data (hb_blob_t *blob)
 }
 
 /**
- * hb_blob_create: (Xconstructor)
- * @data: (array length=length) (element-type uint8_t) (closure user_data) (destroy destroy) (scope notified) (transfer none): Pointer to blob data.
+ * hb_blob_create: (skip)
+ * @data: Pointer to blob data.
  * @length: Length of @data in bytes.
  * @mode: Memory mode for @data.
- * @user_data: (nullable): Data parameter to pass to @destroy.
- * @destroy: (nullable): Callback to call when @data is not needed anymore.
+ * @user_data: Data parameter to pass to @destroy.
+ * @destroy: Callback to call when @data is not needed anymore.
  *
  * Creates a new "blob" object wrapping @data.  The @mode parameter is used
  * to negotiate ownership and lifecycle of @data.
index 5a76f91..86ab8a3 100755 (executable)
@@ -4,6 +4,7 @@
 from __future__ import print_function
 import sys
 from gi.repository import HarfBuzz as hb
+from gi.repository import GLib
 
 # Python 2/3 compatibility
 try:
@@ -17,25 +18,23 @@ def tounicode(s, encoding='utf-8'):
        else:
                return s
 
-
-def nothing(data):
-       print(data)
-
 fontdata = open (sys.argv[1], 'rb').read ()
-
-blob = hb.blob_create (fontdata, hb.memory_mode_t.DUPLICATE, 1234, None)
-buf = hb.buffer_create ()
-hb.buffer_add_utf8 (buf, tounicode("Hello بهداد").encode('utf-8'), 0, -1)
-hb.buffer_guess_segment_properties (buf)
-
+blob = hb.glib_blob_create (GLib.Bytes.new (fontdata))
 face = hb.face_create (blob, 0)
+del blob
 font = hb.font_create (face)
 upem = hb.face_get_upem (face)
+del face
 hb.font_set_scale (font, upem, upem)
 #hb.ft_font_set_funcs (font)
 hb.ot_font_set_funcs (font)
 
+buf = hb.buffer_create ()
+hb.buffer_add_utf8 (buf, tounicode("Hello بهداد").encode('utf-8'), 0, -1)
+hb.buffer_guess_segment_properties (buf)
+
 hb.shape (font, buf, [])
+del font
 
 infos = hb.buffer_get_glyph_infos (buf)
 positions = hb.buffer_get_glyph_positions (buf)