Commit Graph

274 Commits

Author SHA1 Message Date
Behdad Esfahbod 01dff1ea1a Make round() fallback portable to systems that do have round()
Makes compiling without HAVE_ROUND on systems that do have it work.
2018-06-26 18:00:58 -04:00
Behdad Esfahbod c4d0d11c55 [vector] Always 0-fill new items 2018-06-12 01:17:00 -04:00
prrace 498e4373dc Fix SunStudio 12.6 build (#1053) 2018-06-10 03:34:28 +04:30
Behdad Esfahbod 78d92e0f27 Minorish 2018-06-06 15:24:43 -07:00
Behdad Esfahbod 676b19f0d1 Compiler gymnastics
Part of https://github.com/harfbuzz/harfbuzz/issues/630
2018-06-06 15:23:35 -07:00
Behdad Esfahbod 0a5952e8dd Move prime_for back into map
This was causing problem on systems without visibility when map was used
from both libharfbuzz and libharfbuzz-subset. Sigh.

https://ci.appveyor.com/project/harfbuzz/harfbuzz/build/1.0.1669/job/dey47nmff0770vp3
2018-06-06 14:56:21 -07:00
Behdad Esfahbod 58400a2ad8 Remove DISALLOW_* from vector, set, and map
Some of the build bots, still fail on this.  I suppose mine pass because
I enable C++11...

Anyway, remove these again.
2018-06-02 20:30:09 -07:00
Behdad Esfahbod f7515769fd [vector] Use Crap pool in push() as well 2018-06-01 17:48:37 -07:00
Behdad Esfahbod 975bdd5ef5 [vector] Keep success status 2018-06-01 17:37:13 -07:00
Behdad Esfahbod 1ab3c3ed1b [vector] Whitespace 2018-06-01 17:34:24 -07:00
Behdad Esfahbod fb07d1a3ce Another attempt at making every compiler happy...
Sigh.
2018-06-01 17:32:07 -07:00
Behdad Esfahbod 4f76f956bb [map] Move prime_for to hb-static 2018-06-01 17:28:47 -07:00
Behdad Esfahbod 4ca211bce1 Fix hb_vector_size_t 2018-06-01 17:19:05 -07:00
Behdad Esfahbod a7dd90f519 Revert "Remove HB_DISALLOW_COPY_AND_ASSIGN"
This reverts commit ff92de766b.

Revert that and remove ASSERT_POD. Let's see which bots are
unhappy with this configuration...
2018-06-01 16:10:45 -07:00
Behdad Esfahbod 7b50bf52f2 Use NullPool for _hb_set_nil and _hb_map_nil 2018-05-31 20:20:17 -07:00
Behdad Esfahbod 353f4d2efc Fix a whitespace inconsistency
Null() and Crap() are only places that there's no space before '('...
2018-05-31 19:52:16 -07:00
Behdad Esfahbod d600e844aa Add CrapOrNull 2018-05-30 16:25:57 -07:00
Behdad Esfahbod ff92de766b Remove HB_DISALLOW_COPY_AND_ASSIGN
llvm-gcc-4.2 bot had this problem:
hb-private.hh:812: error: initializer specified for non-virtual method 'void hb_vector_t<Type, StaticSize>::operator=(const hb_vector_t<Type, StaticSize>&) [with Type = hb_user_data_array_t::hb_user_data_item_t, unsigned int StaticSize = 1u]'

Removing the delete didn't work with a constructor. So, remove constructor.
Just disallow assignment.  Still better than nothing.
2018-05-29 18:48:45 -07:00
Behdad Esfahbod efbab6ba3f Disable use of thread_local
Clang build was failing with:

/usr/bin/ld: .libs/libharfbuzz_la-hb-blob.o: relocation R_X86_64_PC32 against undefined hidden symbol `_ZTH12_hb_CrapPool' can not be used when making a shared object

Instead of fighting it, just disable use of it.
2018-05-29 18:21:55 -07:00
Behdad Esfahbod 6c2227640b Add HB_DISALLOW_COPY_AND_ASSIGN 2018-05-25 16:21:27 -07:00
Behdad Esfahbod 7f7b1370d3 Fix Uniscribe build
If a pointer type was passed to Null(), reinterpret_cast<> was
complaining about qualifiers being removed. Turns out I need the const on
the other side of "Type" to fix that.  Also remove unused const from
NullPool type.
2018-05-24 14:09:04 -07:00
Behdad Esfahbod 31c4236d96 Underflow protection in hb_vector_t 2018-05-24 13:53:02 -07:00
Behdad Esfahbod f83e992c8b Mark CrapPool thread_local
Not sure if I like to keep it. For now, aim for correctness.
2018-05-24 13:53:02 -07:00
Behdad Esfahbod 5d80129891 Add CrapPool
Common Regoin for Access Protection.  Like the NullPool, but writable.
2018-05-24 13:53:02 -07:00
Behdad Esfahbod 673b764de0 Move code around 2018-05-24 13:53:02 -07:00
Behdad Esfahbod 65aeabd622 Add hb_vector_t::push(const Type &v)
Makes for cleaner code.
2018-05-24 13:53:02 -07:00
Behdad Esfahbod 6c818c5516 Actually enable vectorized operations
Fixup for previous commit. Was accidentally turned off.
2018-05-22 22:00:05 -07:00
Behdad Esfahbod f56a250b04 Another try at smart vectorization
Make clang happy. Also, don't use anonymous union.
2018-05-22 21:36:07 -07:00
Behdad Esfahbod b995b501ef Try enabling vectorization smartly
We'll see if this sticks to the bots.
2018-05-22 21:06:22 -07:00
Behdad Esfahbod 191c4edc54 Reinstante DEFINE_NULL_DATA
Seems like I messed up; buffer overrun got reported.
2018-05-09 15:31:57 -07:00
Behdad Esfahbod 63f57f4dab Mark more unsized array's as arrayZ 2018-05-08 16:56:11 -07:00
Behdad Esfahbod abc12f7b81 Move null pool to hb-private 2018-05-08 02:23:36 -07:00
Behdad Esfahbod 08e280fd84 Rename hb_string_t to hb_bytes_t 2018-05-08 01:57:27 -07:00
Behdad Esfahbod bd021a6720 Minor 2018-05-08 01:50:30 -07:00
Behdad Esfahbod 5c3112aec8 s/hb_prealloced_array_t/hb_vector_t/g
Part of https://github.com/harfbuzz/harfbuzz/issues/1017
2018-05-01 19:07:04 -04:00
Behdad Esfahbod 4a01eb1234 Add hb_auto_t
Part of https://github.com/harfbuzz/harfbuzz/issues/1017
2018-05-01 19:05:58 -04:00
Behdad Esfahbod a60ba7964e s/finish/fini
For consistency.
2018-05-01 19:01:25 -04:00
Tor Andersson 8f4c12308a Reinstate support for Visual Studio 2005 2018-04-13 23:01:54 +04:30
Ebrahim Byagowi 632713babb
Always enable atexit on Android (#971)
Obviously one can use a newer NDK for building an updated HarfBuzz
instead that now pretty old version however I am concerned if that
version checking is working with clang that is used with the newer
NDK versions.
2018-04-12 14:17:03 +04:30
Ebrahim Byagowi f24b0b9728 Update the links and revive the dead ones 2018-04-12 13:44:32 +04:30
Behdad Esfahbod c14b24fcd0 Add HB_NO_ATEXIT 2018-03-26 10:44:54 -07:00
Behdad Esfahbod ebccd01974 More ULL fixes
Fixes https://github.com/harfbuzz/harfbuzz/issues/901
2018-03-24 17:51:55 -07:00
Behdad Esfahbod 7ec3ba21f0 Define uint64_t constants with ULL suffix
Fixes https://github.com/harfbuzz/harfbuzz/issues/901
2018-03-24 14:12:12 -07:00
Chun-wei Fan 19256bef9d hb-private.hh: Add fallback implementation for round()
For pre-C99 compilers that do not support round(), we need to have a
simplistic implementation for it, when it is not detected during build
configuration, either via CMake or autotools, by using floor() and
ceil(), which are provided in the pre-C99 compilers.

Please see discussion at commit 86a0ac2 for more details for re-adding
this patch.
2018-03-23 15:52:33 -07:00
Behdad Esfahbod 86a0ac284f Revert "hb-private.hh: Add fallback implementation for round()"
This reverts commit b9dcbb1f83.

This is gross. Should be only done if a specific macro is defined. Not the other way
around. This fails my build as autotools companions where not added anyway.
2018-03-15 07:47:02 -07:00
Chun-wei Fan b9dcbb1f83 hb-private.hh: Add fallback implementation for round()
Add a simplistic round() implementation for our purposes, used when the
compiler does not support round() directly.
2018-03-13 20:17:52 +08:00
Behdad Esfahbod 97a7110215 Fix BitScanForward() usage
Should fix Win64 bot.
2018-02-18 10:50:24 -08:00
Behdad Esfahbod cd11107bb4 Another bitops fallback fix
I'm confident that all bugs are hashed out now.
2018-02-16 18:28:58 -08:00
Behdad Esfahbod 4e517ecb6b Another bitops fallback impl fix 2018-02-16 18:20:12 -08:00
Behdad Esfahbod 6a91a2eb04 Fix wide bitops implemenetation 2018-02-16 17:49:41 -08:00