Behdad Esfahbod [Thu, 5 May 2011 16:39:51 +0000 (12:39 -0400)]
Make array/map implementation more generic
Behdad Esfahbod [Thu, 5 May 2011 04:21:16 +0000 (00:21 -0400)]
Make hb_mutex_*() macros take a pointer
More intuitive.
Behdad Esfahbod [Thu, 5 May 2011 04:17:43 +0000 (00:17 -0400)]
Add hb_static_mutex_t
Behdad Esfahbod [Wed, 4 May 2011 23:27:37 +0000 (19:27 -0400)]
Move code around
Mutex (and Windows.h by extension) are fairly isolated now.
Behdad Esfahbod [Tue, 3 May 2011 05:03:53 +0000 (01:03 -0400)]
[ft] Fix font->face handling
Don't use _cached()
Behdad Esfahbod [Tue, 3 May 2011 04:49:06 +0000 (00:49 -0400)]
Move Win32 thread-safety stuff to hb-object-private.h
The Win32 definitions for LONG, ULONG, etc conflicts with
hb-open-type.h. Avoid that by making sure hb-object-private.h
and hb-open-type.h are not included in the same compilation unit.
Behdad Esfahbod [Tue, 3 May 2011 04:35:53 +0000 (00:35 -0400)]
Refactor to keep hb-object-private.h and hb-open-type.h separate
Needed to be able to include <Windows.h> from hb-object-private.h.
Behdad Esfahbod [Tue, 3 May 2011 04:19:18 +0000 (00:19 -0400)]
[blob] Implement sub_blob() in terms of create()
Fixes problem with uninitialized sub_blob->mutex among other things.
Reported by Bradley Grainger.
Behdad Esfahbod [Tue, 3 May 2011 04:09:16 +0000 (00:09 -0400)]
Implement win32 thread-safety stuff
Patch from Bradley Grainger.
Behdad Esfahbod [Tue, 3 May 2011 00:57:28 +0000 (20:57 -0400)]
Add hb_mutex_free() and use it
Based on patch by Bradley Grainger.
Behdad Esfahbod [Tue, 3 May 2011 00:52:21 +0000 (20:52 -0400)]
Cosmetic
Behdad Esfahbod [Tue, 3 May 2011 00:46:32 +0000 (20:46 -0400)]
[API] Make hb_font_create() take a face and reference it
Behdad Esfahbod [Tue, 3 May 2011 00:18:58 +0000 (20:18 -0400)]
Protect NULL in a couple places
Behdad Esfahbod [Mon, 2 May 2011 23:54:29 +0000 (19:54 -0400)]
Fix bug in array growth implementation
With this, test/object is now passing. Yay!
Behdad Esfahbod [Mon, 2 May 2011 23:54:17 +0000 (19:54 -0400)]
Fix bug in map implementation
Behdad Esfahbod [Mon, 2 May 2011 23:53:39 +0000 (19:53 -0400)]
[object] Fix bug in get_user_data() implementation
Behdad Esfahbod [Mon, 2 May 2011 23:52:47 +0000 (19:52 -0400)]
[test/object] Add test for object lifecycle stuff
Revealed many bugs in the (untested and known buggy) user_data
support.
Behdad Esfahbod [Mon, 2 May 2011 23:52:32 +0000 (19:52 -0400)]
Cosmetic
Behdad Esfahbod [Mon, 2 May 2011 23:36:39 +0000 (19:36 -0400)]
[API] Rename hb_blob_create_empty() to hb_blob_get_empty()
Behdad Esfahbod [Mon, 2 May 2011 23:35:53 +0000 (19:35 -0400)]
[face] Return nil face if blob is inert
Behdad Esfahbod [Mon, 2 May 2011 23:35:05 +0000 (19:35 -0400)]
[buffer] Fail in _create() if we cannot pre-allocate the requested size
Behdad Esfahbod [Mon, 2 May 2011 20:54:05 +0000 (16:54 -0400)]
Cosmetic
Behdad Esfahbod [Mon, 2 May 2011 19:59:57 +0000 (15:59 -0400)]
[unicode] Make _get_parent() return _nil object instead of NULL
Behdad Esfahbod [Mon, 2 May 2011 18:58:04 +0000 (14:58 -0400)]
[test/unicode] Add script roundtrip tests for glib and ICU
Behdad Esfahbod [Mon, 2 May 2011 18:33:53 +0000 (14:33 -0400)]
[test/unicode] Better test chainup
Behdad Esfahbod [Mon, 2 May 2011 18:21:30 +0000 (14:21 -0400)]
[test/unicode] Port the _custom test to test all property setters
Behdad Esfahbod [Mon, 2 May 2011 18:03:55 +0000 (14:03 -0400)]
[test/unicode] Test Unicode 5.2+ but don't fail
Behdad Esfahbod [Mon, 2 May 2011 17:52:17 +0000 (13:52 -0400)]
[test/buffer] Clean up testing
Getting the hang of how to cleanly use gtest.
Behdad Esfahbod [Mon, 2 May 2011 16:38:54 +0000 (12:38 -0400)]
Minor
Behdad Esfahbod [Mon, 2 May 2011 16:37:45 +0000 (12:37 -0400)]
[icu] Make sure we return script UNKNOWN instead of INVALID
Behdad Esfahbod [Mon, 2 May 2011 16:35:14 +0000 (12:35 -0400)]
ISO 15924 fixes
Update to http://unicode.org/iso15924
Fixes some of the test failures in test-unicode with ICU. Still
one more to fix before the test passes.
Behdad Esfahbod [Mon, 2 May 2011 16:06:18 +0000 (12:06 -0400)]
[test/unicode] Add log messages
Use with --verbose to see what's failing
Behdad Esfahbod [Mon, 2 May 2011 00:04:01 +0000 (20:04 -0400)]
Minor
Behdad Esfahbod [Fri, 29 Apr 2011 20:49:57 +0000 (16:49 -0400)]
[test/unicode] Add testing of all unicode properties
ICU fails for now.
Behdad Esfahbod [Fri, 29 Apr 2011 16:17:09 +0000 (12:17 -0400)]
[test/unicode] Test is/make_immutable()
Behdad Esfahbod [Fri, 29 Apr 2011 16:00:38 +0000 (12:00 -0400)]
[test/unicode] Use text fixture instead of static variables
Behdad Esfahbod [Thu, 28 Apr 2011 23:44:45 +0000 (19:44 -0400)]
[test/buffer] Add UTF-16 tests
Behdad Esfahbod [Thu, 28 Apr 2011 23:37:51 +0000 (19:37 -0400)]
[test/buffer] Add more extensive UTF-8 test data from glib
Behdad Esfahbod [Thu, 28 Apr 2011 22:34:42 +0000 (18:34 -0400)]
[test/buffer] Add initial utf-8 tests
Behdad Esfahbod [Thu, 28 Apr 2011 21:10:44 +0000 (17:10 -0400)]
Add test suite infrastructure
Wraps around glib for convenience and ease of use.
Behdad Esfahbod [Thu, 28 Apr 2011 20:03:29 +0000 (16:03 -0400)]
[API Remove hb_font_funcs_copy()
Will be adding font_funcs subclassing instead.
Behdad Esfahbod [Thu, 28 Apr 2011 20:02:40 +0000 (16:02 -0400)]
[TODO] Remove finished items
Behdad Esfahbod [Thu, 28 Apr 2011 20:01:01 +0000 (16:01 -0400)]
Add _hb_unsigned_int_mul_overflows
Behdad Esfahbod [Thu, 28 Apr 2011 19:54:16 +0000 (15:54 -0400)]
Desable possibly lethal test on 64-bit machines
Behdad Esfahbod [Thu, 28 Apr 2011 18:24:16 +0000 (14:24 -0400)]
[test/buffer] Test pre_allocate() and allocation_successful()
Behdad Esfahbod [Thu, 28 Apr 2011 16:58:28 +0000 (12:58 -0400)]
Fix possible but improbable overflow in hb_array_t
Behdad Esfahbod [Thu, 28 Apr 2011 16:56:49 +0000 (12:56 -0400)]
[buffer] More error handling
Should be all set now.
Behdad Esfahbod [Thu, 28 Apr 2011 16:28:54 +0000 (12:28 -0400)]
[test/buffer] Add test pre_alloc(); hangs in the buffer code right now
Because the following loop overflows:
while (size > new_allocated)
new_allocated += (new_allocated >> 1) + 32;
Behdad Esfahbod [Thu, 28 Apr 2011 16:15:24 +0000 (12:15 -0400)]
[test/buffer] Test reset(), set_length(), and set/get_unicode_data()
Behdad Esfahbod [Thu, 28 Apr 2011 15:56:29 +0000 (11:56 -0400)]
[test/buffer] Test reverse() and reverse_clusters()
Behdad Esfahbod [Thu, 28 Apr 2011 01:46:01 +0000 (21:46 -0400)]
[API] Add _set/get_user_data() for all objects
Behdad Esfahbod [Thu, 28 Apr 2011 01:45:51 +0000 (21:45 -0400)]
Move code around
Behdad Esfahbod [Thu, 28 Apr 2011 01:22:32 +0000 (21:22 -0400)]
Add initial implementation of user_data to objects
Behdad Esfahbod [Wed, 27 Apr 2011 20:38:03 +0000 (16:38 -0400)]
[object] Remove unnecessary use of macros
Behdad Esfahbod [Wed, 27 Apr 2011 20:14:04 +0000 (16:14 -0400)]
[blob] Use HB_FUNC instead of __FUNCTION__
Behdad Esfahbod [Wed, 27 Apr 2011 20:12:12 +0000 (16:12 -0400)]
[object] Add tracing support back in
Behdad Esfahbod [Wed, 27 Apr 2011 19:10:12 +0000 (15:10 -0400)]
GNOME Bug 612402 - (hb-arm) HarfBuzz compilation fix for arm
With gcc on arm, request 8-bit structure alignment.
Behdad Esfahbod [Wed, 27 Apr 2011 18:48:19 +0000 (14:48 -0400)]
[API] Add hb_direction_from/to_string()
And hb-view --direction argument.
Behdad Esfahbod [Wed, 27 Apr 2011 16:15:06 +0000 (12:15 -0400)]
Rename hb-view.c and test.c to .cc files
Behdad Esfahbod [Wed, 27 Apr 2011 16:14:53 +0000 (12:14 -0400)]
[TODO] Add hb-view items
Behdad Esfahbod [Wed, 27 Apr 2011 13:33:58 +0000 (09:33 -0400)]
Make buffer size growth start from 32 instead of 8
Behdad Esfahbod [Wed, 27 Apr 2011 13:24:37 +0000 (09:24 -0400)]
[API] Add hb_unicode_funcs_get_default()
Behdad Esfahbod [Wed, 27 Apr 2011 05:49:03 +0000 (01:49 -0400)]
Replace simple macros with inline functions for better type safety
Now that we use C++ for all source code, lets benefit from it!
The hb_be_int16/32_get/put/eq() macros grow code size if replaced with
inline functions, so leave them as is.
Behdad Esfahbod [Wed, 27 Apr 2011 05:48:56 +0000 (01:48 -0400)]
Add TODO item
Behdad Esfahbod [Wed, 27 Apr 2011 05:41:24 +0000 (01:41 -0400)]
Don't return in void function
Would have been nice if gcc had warned...
Behdad Esfahbod [Thu, 21 Apr 2011 22:35:58 +0000 (18:35 -0400)]
Further simplify object handling
Behdad Esfahbod [Thu, 21 Apr 2011 22:24:02 +0000 (18:24 -0400)]
Add hb_object_header_t which is the common part of all objects
Makes way for adding arbitrary user_data support.
Behdad Esfahbod [Thu, 21 Apr 2011 21:18:22 +0000 (17:18 -0400)]
Move hb_reference_count_t to hb-private.h
Behdad Esfahbod [Thu, 21 Apr 2011 21:14:28 +0000 (17:14 -0400)]
Update Copyright headers
Behdad Esfahbod [Thu, 21 Apr 2011 20:59:10 +0000 (16:59 -0400)]
[hb-view] Accept numbers in feature tag name
Reported by Adam Twardoch.
Behdad Esfahbod [Thu, 21 Apr 2011 20:55:17 +0000 (16:55 -0400)]
Remove obsolete comment
Talking to Ryan Lortie, he thinks my comment doesn't make sense.
So I'm making the getter const. Note that g_atomic_int_get()
casts that away itself, so we don't need to worry about that
(which kinda makes me uncomfortable actually).
Behdad Esfahbod [Thu, 21 Apr 2011 20:34:22 +0000 (16:34 -0400)]
Add ASSERT_STATIC_EXPR macro
Unused right now.
Behdad Esfahbod [Thu, 21 Apr 2011 20:16:21 +0000 (16:16 -0400)]
Cleanup hb_refrence_count_t
Behdad Esfahbod [Thu, 21 Apr 2011 20:03:59 +0000 (16:03 -0400)]
[TODO] Remove finished items
Behdad Esfahbod [Thu, 21 Apr 2011 19:08:01 +0000 (15:08 -0400)]
[API] Allow negative font x_scale/y_scale
I was reconsidering whether y should grow down, since all three/four
times I've used this API I was tricked and got that wrong in my use.
So I was very inclined to make y grow down instead of up. However,
considering that the font space has y up and it would be very confusing
for callbacks to work against that, I decided that what I really want
is for the user to be able to set y_scale to a negative number to imply
that user-space y grows down.
Changing x_scale/y_scale from unsigned int to int allows that, and I've
made pango to use that instead of negating glyph y_offset later. hb-ft
however still has y group up. I *guess* that's how FreeType works?
I'm not sure, FreeType docs don't make this clear...
I'm happy with the resolution :-).
Behdad Esfahbod [Thu, 21 Apr 2011 18:58:23 +0000 (14:58 -0400)]
[icu] Remove big script switch(), rely on reverse-lookup
Behdad Esfahbod [Wed, 20 Apr 2011 22:59:10 +0000 (18:59 -0400)]
Move hb_reference_count_t from macros to inline methods
Behdad Esfahbod [Wed, 20 Apr 2011 22:50:27 +0000 (18:50 -0400)]
Rename all private sources and headers to C++ files
So we can liberally use the simple features of C++ that parts of the
codebase is already using.
Behdad Esfahbod [Wed, 20 Apr 2011 22:25:56 +0000 (18:25 -0400)]
Rename hb-blob.c to hb-blob.cc in preparation of more changes
Behdad Esfahbod [Wed, 20 Apr 2011 21:24:03 +0000 (17:24 -0400)]
[TODO] Remove done items
Behdad Esfahbod [Wed, 20 Apr 2011 21:21:23 +0000 (17:21 -0400)]
[API] Make hb_face_reference_table() return empty blob instead of NULL
The idea here is that:
- Like pretty much all other API in harfbuzz, user does not have to
check for NULL.
- In any caller code, the case of missing table should be handled
exactly the same way that a too-short table is handled. Turning
a non-existent talbe into a table of size 0 makes the user code
safer.
Behdad Esfahbod [Wed, 20 Apr 2011 21:03:00 +0000 (17:03 -0400)]
[API] Rename hb_face_get_table() to hb_face_reference_table()
That correctly reflects the reference ownership transfer happening.
Behdad Esfahbod [Wed, 20 Apr 2011 20:40:56 +0000 (16:40 -0400)]
[TODO] Remove done items
Behdad Esfahbod [Wed, 20 Apr 2011 19:49:31 +0000 (15:49 -0400)]
[API] Remove hb_*_get_reference_count()
This was a bizzare piece of API that I inherited from cairo. It has
been wrong adding them to cairo in the first place. Remove them before
someone uses them!
Behdad Esfahbod [Wed, 20 Apr 2011 18:20:00 +0000 (14:20 -0400)]
[OT] Fix script to ot-script-tag conversion
Behdad Esfahbod [Wed, 20 Apr 2011 18:13:23 +0000 (14:13 -0400)]
Minor
Behdad Esfahbod [Wed, 20 Apr 2011 07:15:31 +0000 (03:15 -0400)]
[test] Add test for headers included from C and C++
Behdad Esfahbod [Wed, 20 Apr 2011 07:04:56 +0000 (03:04 -0400)]
[test] Add todo items
Behdad Esfahbod [Wed, 20 Apr 2011 07:03:32 +0000 (03:03 -0400)]
[API] font: move user_data before destroy()
This is the common convention for language binding tools.
Behdad Esfahbod [Wed, 20 Apr 2011 06:59:28 +0000 (02:59 -0400)]
[API] blob: move user_data before destroy()
This is the common convention for language binding tools.
Behdad Esfahbod [Wed, 20 Apr 2011 06:56:39 +0000 (02:56 -0400)]
[test] Rename test-types to test-common
Behdad Esfahbod [Wed, 20 Apr 2011 06:54:42 +0000 (02:54 -0400)]
[icu] Add two-way script conversion functions
Also optimizes the common-direction script lookup.
Behdad Esfahbod [Wed, 20 Apr 2011 06:44:29 +0000 (02:44 -0400)]
[glib] Add two-way script conversion functions
Also optimizes the common-direction script lookup to be an array lookup.
Behdad Esfahbod [Wed, 20 Apr 2011 06:29:22 +0000 (02:29 -0400)]
Remove verbose comments
Behdad Esfahbod [Wed, 20 Apr 2011 06:00:47 +0000 (02:00 -0400)]
unicode: Cleanup implementation
Behdad Esfahbod [Wed, 20 Apr 2011 05:34:51 +0000 (01:34 -0400)]
Cosmetic
Ryan Lortie [Wed, 20 Apr 2011 04:19:20 +0000 (00:19 -0400)]
[API] unicode: rework virtual functions for subclassing
Unicode data providers can now be subclassed, including support for
chain-up. The interface should now be nicely bindable, as well.
Also fix glib unicode funcs that where broken after hb_script_t
changes. Nicely caught by the test-unicode.c added in this commit.
Behdad Esfahbod [Tue, 19 Apr 2011 04:38:01 +0000 (00:38 -0400)]
[API] Rename hb_buffer_add_glyph() to hb_buffer_add()
Behdad Esfahbod [Tue, 19 Apr 2011 04:32:19 +0000 (00:32 -0400)]
[API] Add hb_buffer_allocation_successful()
Returns the error status of the buffer.
Ryan Lortie [Fri, 15 Apr 2011 22:34:45 +0000 (18:34 -0400)]
[API] Rename hb_buffer_ensure() to hb_buffer_pre_allocate()
The new name is self-documenting.