Commit Graph

302 Commits

Author SHA1 Message Date
Behdad Esfahbod f9a3eab810 Add explicit_operator
Fixes https://github.com/harfbuzz/harfbuzz/issues/1127
2018-08-12 12:21:56 -07:00
Behdad Esfahbod 25147ff808 Move Null system to hb-null.hh 2018-08-06 05:01:52 -07:00
Behdad Esfahbod 19e0091299 Minor 2018-08-06 04:54:31 -07:00
Behdad Esfahbod 37be774af9 Minor 2018-08-06 04:52:12 -07:00
Behdad Esfahbod be336dadc0 Move some more code around 2018-08-06 04:32:51 -07:00
Behdad Esfahbod 92806ee055 Move null data definitions to hb-static.cc
Also remove "    " null data for Tag.  Just use zeroes.
2018-08-05 21:41:52 -07:00
Behdad Esfahbod 4bc16aca47 [atomic] Add get_relaxed / set_relaxed
To help TSan and be more "correct".
2018-07-31 21:29:18 -07:00
Behdad Esfahbod 94759d4cf8 Fix visibility on mingw32
Should fix bots again.
2018-07-23 15:08:32 -07:00
Behdad Esfahbod e22a48ac95 One more visibility trick
Should fix Windows build again.
2018-07-23 13:24:26 -07:00
Behdad Esfahbod 2aae617a84 Move _hb_alignof later again
It uses constexpr...
2018-07-11 17:27:23 +02:00
Behdad Esfahbod 44999f8b75 Align NullPool and CrapPool to HB_VECTOR_SIZE 2018-07-11 17:21:32 +02:00
Behdad Esfahbod 20a318d06a Fix return type of alignof() fallback 2018-07-11 17:00:13 +02:00
Behdad Esfahbod 25aa411ac5 Put back include dependencies 2018-07-10 16:05:03 +02:00
Behdad Esfahbod 491d93bf74 Move more stuff from hb-private.hh to hb-dsalgs.hh 2018-07-10 16:03:31 +02:00
Behdad Esfahbod f477765661 Move more stuff to hb-dsalgs.hh 2018-07-10 15:49:05 +02:00
Behdad Esfahbod be7f664f72 Move hb_bytes_t to hb-dsalgs.hh 2018-07-10 15:23:08 +02:00
Behdad Esfahbod be458eb059 Include more basic internal headers from hb-private.hh 2018-07-10 14:41:04 +02:00
Behdad Esfahbod bddeb2b10c Minor renamings of internal inline functions 2018-07-10 14:13:21 +02:00
Behdad Esfahbod d652ef299d Move hb_vector_t and hb_lockable_set_t to hb-dsalgs.hh 2018-07-10 14:05:00 +02:00
Behdad Esfahbod 9e53b08329 Move hb_stable_sort to hb-dsalgs.hh
Also, include hb-dsalgs.hh from end of hb-pricate.hh
2018-07-10 14:03:58 +02:00
Behdad Esfahbod 39f11d8e72 Minor 2018-07-10 14:01:39 +02:00
Behdad Esfahbod 763f878cc0 Fix syntax
Oops.
2018-07-10 13:47:41 +02:00
Behdad Esfahbod 83ea277178 Add posix_memalign() fallback 2018-07-10 13:17:27 +02:00
Behdad Esfahbod 292c100d61 Always compile (but not use) alignof() and round() fallback codes
Catches compile-errors in them better.
2018-07-10 13:16:52 +02:00
Behdad Esfahbod 27c5317d91 Fix alignof impl 2018-07-10 13:03:42 +02:00
Behdad Esfahbod bca83618cd Add fallback implementation for constexpr and alignof 2018-07-10 12:59:13 +02:00
Behdad Esfahbod 1ebaa090d8 Disable vectorization
Disable vectorization for now.  To correctly use them, we should
use posix_memalign() to allocate them.  Otherwise, can cause
misaligned access.

https://bugs.chromium.org/p/chromium/issues/detail?id=860184
2018-07-05 14:04:13 +04:30
Behdad Esfahbod 058708a665 Allow disabling vector_size use 2018-07-05 13:16:00 +04:30
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