Commit Graph

1287 Commits

Author SHA1 Message Date
Behdad Esfahbod
45bfa99034 Fix set implementation to be truly threadsafe even with destroy() callbacks
The test/object test is passing again, instead of deadlocking.
2011-05-10 19:15:49 -04:00
Behdad Esfahbod
0c2ec1d78b [test] Always initialize gthread such that our mutex() stuff is tested
Now the test/object test deadlocks as expected.  Fix coming.
2011-05-10 19:11:52 -04:00
Behdad Esfahbod
6a9093cc48 [test/object] Test user_data with destroy() callback that calls user_data
Exposes the non-atomicity of user_data opertaions at this time because
we call finish() while still locked and modifying the object.  In fact,
I'm surprised that it doesn't deadlock.  It should.
2011-05-10 19:00:07 -04:00
Behdad Esfahbod
abe636b876 Add DOAP file 2011-05-10 17:55:40 -04:00
Behdad Esfahbod
f82c186304 [test/blob] Fix bug in test 2011-05-10 17:48:34 -04:00
Behdad Esfahbod
785d23acd0 [test/blob] Add create_sub_blob() 2011-05-10 17:41:44 -04:00
Behdad Esfahbod
0617b15582 [test] Test blob API 2011-05-10 17:37:08 -04:00
Behdad Esfahbod
1c9f8717eb [API] Simplify blob API, remove lock 2011-05-06 22:59:42 -04:00
Behdad Esfahbod
71cef14ac3 Add -Bsymbolic-functions to linker flags 2011-05-06 19:30:59 -04:00
Behdad Esfahbod
ab428aeab7 [TODO] Update 2011-05-06 19:30:46 -04:00
Behdad Esfahbod
a0f337a1cc Remove unused hb_blob_try_writable_inplace() 2011-05-06 19:20:52 -04:00
Behdad Esfahbod
08611d5194 Add note re deadlocks 2011-05-06 16:28:10 -04:00
Behdad Esfahbod
34fb5521a5 [API] Add hb_language_get_default()
It uses locale information to detect default language.  It's used by
hb_shape() whenever language is not set on the buffer.

Not sure how to properly test it in the test suite.  Tested by observing
that with DejaVu Sans we select the proper local glyph version for U+431
under Serbian locale.  See http://www.pango.org/ScriptGallery
2011-05-06 00:05:08 -04:00
Behdad Esfahbod
c78f448558 [API] Add version macros and functions
Step version up to 0.5.0.

Also, fix to pass "make distcheck"
2011-05-05 21:31:04 -04:00
Behdad Esfahbod
9ff819f657 Add disable-static libtool flag
No one who builds harfbuzz static uses the autotools build system to do it.
2011-05-05 19:47:59 -04:00
Behdad Esfahbod
7ca7571ef9 Remove win32-dll libtool flag
Since we're not win32-dll clean the way libtool docs define it.
2011-05-05 19:47:12 -04:00
Behdad Esfahbod
174e3fe89b Add AC_CANONICAL_HOST 2011-05-05 19:37:53 -04:00
Behdad Esfahbod
e6a5b88c01 Fix build with older glib 2011-05-05 16:24:42 -04:00
Behdad Esfahbod
3935af1c0d [buffer] Remove wrong optimization
While the cluster fields of the glyph string are usually sorted, they
wouldn't be in special cases (for example for non-native direction).
Blindly using bsearch is plain wrong.  If we want to reintroduce this
optimization we have to make sure we know the buffer clusters are
monotonic and in which direction.  Not sure it's worth it though.
2011-05-05 16:09:45 -04:00
Behdad Esfahbod
46df682851 Make user_data access threadsafe
For now, by taking a global user_data mutex.
2011-05-05 15:33:19 -04:00
Behdad Esfahbod
218e67b9ee Shrink code 2011-05-05 15:28:37 -04:00
Behdad Esfahbod
b8d6183ebc Use threadsafe set implementation for hb_language lookups
Note that the static variable has to be a global static, as gcc
implements local statics differently and that would require linking
to libstdc++, which we don't want.
2011-05-05 15:14:04 -04:00
Behdad Esfahbod
d37486d87b Add hb_threadsafe_set_t 2011-05-05 15:07:54 -04:00
Behdad Esfahbod
b45f32ee4e Use hb_array_t for hb_language_t mapping 2011-05-05 15:00:43 -04:00
Behdad Esfahbod
21d2c92fdf Move code around 2011-05-05 14:47:53 -04:00
Behdad Esfahbod
448ea9bf63 [TODO] Remove done items 2011-05-05 14:39:24 -04:00
Behdad Esfahbod
265ac614ea Replace fixed-size lookup_maps array with hb_array_t 2011-05-05 14:38:16 -04:00
Behdad Esfahbod
6843569d2c Replace fixed-size feature_maps array with hb_array_t 2011-05-05 14:30:51 -04:00
Behdad Esfahbod
44b0a4d2fc Replace fixed-size feature_infos array with hb_array_t 2011-05-05 13:42:19 -04:00
Behdad Esfahbod
b214ec3ac0 Minor 2011-05-05 13:24:07 -04:00
Behdad Esfahbod
811482bd65 Replace hb_map_t with hb_set_t which is more intuitive and flexible 2011-05-05 13:21:04 -04:00
Behdad Esfahbod
478a42536f Make array/map implementation more generic 2011-05-05 12:39:51 -04:00
Behdad Esfahbod
b81bd42951 Make hb_mutex_*() macros take a pointer
More intuitive.
2011-05-05 00:21:16 -04:00
Behdad Esfahbod
a4b1900913 Add hb_static_mutex_t 2011-05-05 00:17:43 -04:00
Behdad Esfahbod
56eb5ad6f9 Move code around
Mutex (and Windows.h by extension) are fairly isolated now.
2011-05-04 19:27:37 -04:00
Behdad Esfahbod
d292885893 [ft] Fix font->face handling
Don't use _cached()
2011-05-03 01:03:53 -04:00
Behdad Esfahbod
2000179487 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.
2011-05-03 00:49:06 -04:00
Behdad Esfahbod
266b34418c 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.
2011-05-03 00:35:53 -04:00
Behdad Esfahbod
d4141a44b9 [blob] Implement sub_blob() in terms of create()
Fixes problem with uninitialized sub_blob->mutex among other things.

Reported by Bradley Grainger.
2011-05-03 00:19:18 -04:00
Behdad Esfahbod
fc52e9e44c Implement win32 thread-safety stuff
Patch from Bradley Grainger.
2011-05-03 00:09:16 -04:00
Behdad Esfahbod
f55272ecde Add hb_mutex_free() and use it
Based on patch by Bradley Grainger.
2011-05-02 20:57:28 -04:00
Behdad Esfahbod
8d5186484b Cosmetic 2011-05-02 20:52:21 -04:00
Behdad Esfahbod
72657e4ce7 [API] Make hb_font_create() take a face and reference it 2011-05-02 20:47:23 -04:00
Behdad Esfahbod
cec6611c5c Protect NULL in a couple places 2011-05-02 20:18:58 -04:00
Behdad Esfahbod
5a5030366e Fix bug in array growth implementation
With this, test/object is now passing.  Yay!
2011-05-02 19:54:29 -04:00
Behdad Esfahbod
16123e1070 Fix bug in map implementation 2011-05-02 19:54:17 -04:00
Behdad Esfahbod
1cd5969f25 [object] Fix bug in get_user_data() implementation 2011-05-02 19:53:39 -04:00
Behdad Esfahbod
db99589529 [test/object] Add test for object lifecycle stuff
Revealed many bugs in the (untested and known buggy) user_data
support.
2011-05-02 19:52:47 -04:00
Behdad Esfahbod
f74d6c81f1 Cosmetic 2011-05-02 19:52:32 -04:00
Behdad Esfahbod
4911062d5b [API] Rename hb_blob_create_empty() to hb_blob_get_empty() 2011-05-02 19:36:39 -04:00