framework/uifw/harfbuzz.git
13 years agoReplace hb_map_t with hb_set_t which is more intuitive and flexible
Behdad Esfahbod [Thu, 5 May 2011 17:21:04 +0000 (13:21 -0400)]
Replace hb_map_t with hb_set_t which is more intuitive and flexible

13 years agoMake array/map implementation more generic
Behdad Esfahbod [Thu, 5 May 2011 16:39:51 +0000 (12:39 -0400)]
Make array/map implementation more generic

13 years agoMake hb_mutex_*() macros take a pointer
Behdad Esfahbod [Thu, 5 May 2011 04:21:16 +0000 (00:21 -0400)]
Make hb_mutex_*() macros take a pointer

More intuitive.

13 years agoAdd hb_static_mutex_t
Behdad Esfahbod [Thu, 5 May 2011 04:17:43 +0000 (00:17 -0400)]
Add hb_static_mutex_t

13 years agoMove code around
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.

13 years ago[ft] Fix font->face handling
Behdad Esfahbod [Tue, 3 May 2011 05:03:53 +0000 (01:03 -0400)]
[ft] Fix font->face handling

Don't use _cached()

13 years agoMove Win32 thread-safety stuff to hb-object-private.h
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.

13 years agoRefactor to keep hb-object-private.h and hb-open-type.h separate
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.

13 years ago[blob] Implement sub_blob() in terms of create()
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.

13 years agoImplement win32 thread-safety stuff
Behdad Esfahbod [Tue, 3 May 2011 04:09:16 +0000 (00:09 -0400)]
Implement win32 thread-safety stuff

Patch from Bradley Grainger.

13 years agoAdd hb_mutex_free() and use it
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.

13 years agoCosmetic
Behdad Esfahbod [Tue, 3 May 2011 00:52:21 +0000 (20:52 -0400)]
Cosmetic

13 years ago[API] Make hb_font_create() take a face and reference it
Behdad Esfahbod [Tue, 3 May 2011 00:46:32 +0000 (20:46 -0400)]
[API] Make hb_font_create() take a face and reference it

13 years agoProtect NULL in a couple places
Behdad Esfahbod [Tue, 3 May 2011 00:18:58 +0000 (20:18 -0400)]
Protect NULL in a couple places

13 years agoFix bug in array growth implementation
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!

13 years agoFix bug in map implementation
Behdad Esfahbod [Mon, 2 May 2011 23:54:17 +0000 (19:54 -0400)]
Fix bug in map implementation

13 years ago[object] Fix bug in get_user_data() implementation
Behdad Esfahbod [Mon, 2 May 2011 23:53:39 +0000 (19:53 -0400)]
[object] Fix bug in get_user_data() implementation

13 years ago[test/object] Add test for object lifecycle stuff
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.

13 years agoCosmetic
Behdad Esfahbod [Mon, 2 May 2011 23:52:32 +0000 (19:52 -0400)]
Cosmetic

13 years ago[API] Rename hb_blob_create_empty() to hb_blob_get_empty()
Behdad Esfahbod [Mon, 2 May 2011 23:36:39 +0000 (19:36 -0400)]
[API] Rename hb_blob_create_empty() to hb_blob_get_empty()

13 years ago[face] Return nil face if blob is inert
Behdad Esfahbod [Mon, 2 May 2011 23:35:53 +0000 (19:35 -0400)]
[face] Return nil face if blob is inert

13 years ago[buffer] Fail in _create() if we cannot pre-allocate the requested size
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

13 years agoCosmetic
Behdad Esfahbod [Mon, 2 May 2011 20:54:05 +0000 (16:54 -0400)]
Cosmetic

13 years ago[unicode] Make _get_parent() return _nil object instead of NULL
Behdad Esfahbod [Mon, 2 May 2011 19:59:57 +0000 (15:59 -0400)]
[unicode] Make _get_parent() return _nil object instead of NULL

13 years ago[test/unicode] Add script roundtrip tests for glib and ICU
Behdad Esfahbod [Mon, 2 May 2011 18:58:04 +0000 (14:58 -0400)]
[test/unicode] Add script roundtrip tests for glib and ICU

13 years ago[test/unicode] Better test chainup
Behdad Esfahbod [Mon, 2 May 2011 18:33:53 +0000 (14:33 -0400)]
[test/unicode] Better test chainup

13 years ago[test/unicode] Port the _custom test to test all property setters
Behdad Esfahbod [Mon, 2 May 2011 18:21:30 +0000 (14:21 -0400)]
[test/unicode] Port the _custom test to test all property setters

13 years ago[test/unicode] Test Unicode 5.2+ but don't fail
Behdad Esfahbod [Mon, 2 May 2011 18:03:55 +0000 (14:03 -0400)]
[test/unicode] Test Unicode 5.2+ but don't fail

13 years ago[test/buffer] Clean up testing
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.

13 years agoMinor
Behdad Esfahbod [Mon, 2 May 2011 16:38:54 +0000 (12:38 -0400)]
Minor

13 years ago[icu] Make sure we return script UNKNOWN instead of INVALID
Behdad Esfahbod [Mon, 2 May 2011 16:37:45 +0000 (12:37 -0400)]
[icu] Make sure we return script UNKNOWN instead of INVALID

13 years agoISO 15924 fixes
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.

13 years ago[test/unicode] Add log messages
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

13 years agoMinor
Behdad Esfahbod [Mon, 2 May 2011 00:04:01 +0000 (20:04 -0400)]
Minor

13 years ago[test/unicode] Add testing of all unicode properties
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.

13 years ago[test/unicode] Test is/make_immutable()
Behdad Esfahbod [Fri, 29 Apr 2011 16:17:09 +0000 (12:17 -0400)]
[test/unicode] Test is/make_immutable()

13 years ago[test/unicode] Use text fixture instead of static variables
Behdad Esfahbod [Fri, 29 Apr 2011 16:00:38 +0000 (12:00 -0400)]
[test/unicode] Use text fixture instead of static variables

13 years ago[test/buffer] Add UTF-16 tests
Behdad Esfahbod [Thu, 28 Apr 2011 23:44:45 +0000 (19:44 -0400)]
[test/buffer] Add UTF-16 tests

13 years ago[test/buffer] Add more extensive UTF-8 test data from glib
Behdad Esfahbod [Thu, 28 Apr 2011 23:37:51 +0000 (19:37 -0400)]
[test/buffer] Add more extensive UTF-8 test data from glib

13 years ago[test/buffer] Add initial utf-8 tests
Behdad Esfahbod [Thu, 28 Apr 2011 22:34:42 +0000 (18:34 -0400)]
[test/buffer] Add initial utf-8 tests

13 years agoAdd test suite infrastructure
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.

13 years ago[API Remove hb_font_funcs_copy()
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.

13 years ago[TODO] Remove finished items
Behdad Esfahbod [Thu, 28 Apr 2011 20:02:40 +0000 (16:02 -0400)]
[TODO] Remove finished items

13 years agoAdd _hb_unsigned_int_mul_overflows
Behdad Esfahbod [Thu, 28 Apr 2011 20:01:01 +0000 (16:01 -0400)]
Add _hb_unsigned_int_mul_overflows

13 years agoDesable possibly lethal test on 64-bit machines
Behdad Esfahbod [Thu, 28 Apr 2011 19:54:16 +0000 (15:54 -0400)]
Desable possibly lethal test on 64-bit machines

13 years ago[test/buffer] Test pre_allocate() and allocation_successful()
Behdad Esfahbod [Thu, 28 Apr 2011 18:24:16 +0000 (14:24 -0400)]
[test/buffer] Test pre_allocate() and allocation_successful()

13 years agoFix possible but improbable overflow in hb_array_t
Behdad Esfahbod [Thu, 28 Apr 2011 16:58:28 +0000 (12:58 -0400)]
Fix possible but improbable overflow in hb_array_t

13 years ago[buffer] More error handling
Behdad Esfahbod [Thu, 28 Apr 2011 16:56:49 +0000 (12:56 -0400)]
[buffer] More error handling

Should be all set now.

13 years ago[test/buffer] Add test pre_alloc(); hangs in the buffer code right 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;

13 years ago[test/buffer] Test reset(), set_length(), and set/get_unicode_data()
Behdad Esfahbod [Thu, 28 Apr 2011 16:15:24 +0000 (12:15 -0400)]
[test/buffer] Test reset(), set_length(), and set/get_unicode_data()

13 years ago[test/buffer] Test reverse() and reverse_clusters()
Behdad Esfahbod [Thu, 28 Apr 2011 15:56:29 +0000 (11:56 -0400)]
[test/buffer] Test reverse() and reverse_clusters()

13 years ago[API] Add _set/get_user_data() for all objects
Behdad Esfahbod [Thu, 28 Apr 2011 01:46:01 +0000 (21:46 -0400)]
[API] Add _set/get_user_data() for all objects

13 years agoMove code around
Behdad Esfahbod [Thu, 28 Apr 2011 01:45:51 +0000 (21:45 -0400)]
Move code around

13 years agoAdd initial implementation of user_data to objects
Behdad Esfahbod [Thu, 28 Apr 2011 01:22:32 +0000 (21:22 -0400)]
Add initial implementation of user_data to objects

13 years ago[object] Remove unnecessary use of macros
Behdad Esfahbod [Wed, 27 Apr 2011 20:38:03 +0000 (16:38 -0400)]
[object] Remove unnecessary use of macros

13 years ago[blob] Use HB_FUNC instead of __FUNCTION__
Behdad Esfahbod [Wed, 27 Apr 2011 20:14:04 +0000 (16:14 -0400)]
[blob] Use HB_FUNC instead of __FUNCTION__

13 years ago[object] Add tracing support back in
Behdad Esfahbod [Wed, 27 Apr 2011 20:12:12 +0000 (16:12 -0400)]
[object] Add tracing support back in

13 years agoGNOME Bug 612402 - (hb-arm) HarfBuzz compilation fix for arm
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.

13 years ago[API] Add hb_direction_from/to_string()
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.

13 years agoRename hb-view.c and test.c to .cc files
Behdad Esfahbod [Wed, 27 Apr 2011 16:15:06 +0000 (12:15 -0400)]
Rename hb-view.c and test.c to .cc files

13 years ago[TODO] Add hb-view items
Behdad Esfahbod [Wed, 27 Apr 2011 16:14:53 +0000 (12:14 -0400)]
[TODO] Add hb-view items

13 years agoMake buffer size growth start from 32 instead of 8
Behdad Esfahbod [Wed, 27 Apr 2011 13:33:58 +0000 (09:33 -0400)]
Make buffer size growth start from 32 instead of 8

13 years ago[API] Add hb_unicode_funcs_get_default()
Behdad Esfahbod [Wed, 27 Apr 2011 13:24:37 +0000 (09:24 -0400)]
[API] Add hb_unicode_funcs_get_default()

13 years agoReplace simple macros with inline functions for better type safety
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.

13 years agoAdd TODO item
Behdad Esfahbod [Wed, 27 Apr 2011 05:48:56 +0000 (01:48 -0400)]
Add TODO item

13 years agoDon't return in void function
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...

13 years agoFurther simplify object handling
Behdad Esfahbod [Thu, 21 Apr 2011 22:35:58 +0000 (18:35 -0400)]
Further simplify object handling

13 years agoAdd hb_object_header_t which is the common part of all objects
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.

13 years agoMove hb_reference_count_t to hb-private.h
Behdad Esfahbod [Thu, 21 Apr 2011 21:18:22 +0000 (17:18 -0400)]
Move hb_reference_count_t to hb-private.h

13 years agoUpdate Copyright headers
Behdad Esfahbod [Thu, 21 Apr 2011 21:14:28 +0000 (17:14 -0400)]
Update Copyright headers

13 years ago[hb-view] Accept numbers in feature tag name
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.

13 years agoRemove obsolete comment
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).

13 years agoAdd ASSERT_STATIC_EXPR macro
Behdad Esfahbod [Thu, 21 Apr 2011 20:34:22 +0000 (16:34 -0400)]
Add ASSERT_STATIC_EXPR macro

Unused right now.

13 years agoCleanup hb_refrence_count_t
Behdad Esfahbod [Thu, 21 Apr 2011 20:16:21 +0000 (16:16 -0400)]
Cleanup hb_refrence_count_t

13 years ago[TODO] Remove finished items
Behdad Esfahbod [Thu, 21 Apr 2011 20:03:59 +0000 (16:03 -0400)]
[TODO] Remove finished items

13 years ago[API] Allow negative font x_scale/y_scale
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 :-).

13 years ago[icu] Remove big script switch(), rely on reverse-lookup
Behdad Esfahbod [Thu, 21 Apr 2011 18:58:23 +0000 (14:58 -0400)]
[icu] Remove big script switch(), rely on reverse-lookup

13 years agoMove hb_reference_count_t from macros to inline methods
Behdad Esfahbod [Wed, 20 Apr 2011 22:59:10 +0000 (18:59 -0400)]
Move hb_reference_count_t from macros to inline methods

13 years agoRename all private sources and headers to C++ files
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.

13 years agoRename hb-blob.c to hb-blob.cc in preparation of more changes
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

13 years ago[TODO] Remove done items
Behdad Esfahbod [Wed, 20 Apr 2011 21:24:03 +0000 (17:24 -0400)]
[TODO] Remove done items

13 years ago[API] Make hb_face_reference_table() return empty blob instead of NULL
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.

13 years ago[API] Rename hb_face_get_table() to hb_face_reference_table()
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.

13 years ago[TODO] Remove done items
Behdad Esfahbod [Wed, 20 Apr 2011 20:40:56 +0000 (16:40 -0400)]
[TODO] Remove done items

13 years ago[API] Remove hb_*_get_reference_count()
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!

13 years ago[OT] Fix script to ot-script-tag conversion
Behdad Esfahbod [Wed, 20 Apr 2011 18:20:00 +0000 (14:20 -0400)]
[OT] Fix script to ot-script-tag conversion

13 years agoMinor
Behdad Esfahbod [Wed, 20 Apr 2011 18:13:23 +0000 (14:13 -0400)]
Minor

13 years ago[test] Add test for headers included from C and C++
Behdad Esfahbod [Wed, 20 Apr 2011 07:15:31 +0000 (03:15 -0400)]
[test] Add test for headers included from C and C++

13 years ago[test] Add todo items
Behdad Esfahbod [Wed, 20 Apr 2011 07:04:56 +0000 (03:04 -0400)]
[test] Add todo items

13 years ago[API] font: move user_data before destroy()
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.

13 years ago[API] blob: move user_data before destroy()
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.

13 years ago[test] Rename test-types to test-common
Behdad Esfahbod [Wed, 20 Apr 2011 06:56:39 +0000 (02:56 -0400)]
[test] Rename test-types to test-common

13 years ago[icu] Add two-way script conversion functions
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.

13 years ago[glib] Add two-way script conversion functions
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.

13 years agoRemove verbose comments
Behdad Esfahbod [Wed, 20 Apr 2011 06:29:22 +0000 (02:29 -0400)]
Remove verbose comments

13 years agounicode: Cleanup implementation
Behdad Esfahbod [Wed, 20 Apr 2011 06:00:47 +0000 (02:00 -0400)]
unicode: Cleanup implementation

13 years agoCosmetic
Behdad Esfahbod [Wed, 20 Apr 2011 05:34:51 +0000 (01:34 -0400)]
Cosmetic

13 years ago[API] unicode: rework virtual functions for subclassing
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.

13 years ago[API] Rename hb_buffer_add_glyph() to hb_buffer_add()
Behdad Esfahbod [Tue, 19 Apr 2011 04:38:01 +0000 (00:38 -0400)]
[API] Rename hb_buffer_add_glyph() to hb_buffer_add()

13 years ago[API] Add hb_buffer_allocation_successful()
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.