Commit Graph

11689 Commits

Author SHA1 Message Date
Behdad Esfahbod
ff7bf88192 m[algs] Fix BEInt -Wnarrowing errors 2021-02-20 15:39:29 -07:00
Behdad Esfahbod
a89d9f25b4 m Err on -Wnarrowing instead of -Wc++11-narrowing
On clang, -Wnarrowing is synonym for -Wc++11-narrowing.
On gcc it isn't. So, use the widely-available one
2021-02-20 15:38:05 -07:00
Behdad Esfahbod
e208f80449 Make constexpr BEInt<Type, 2>::operator Type() C++11-compatible
Multiple return values not permitted until C++14
2021-02-20 15:31:43 -07:00
Behdad Esfahbod
c2fc2aa44c [atomic] Remove Solaris intrinsics 2021-02-20 15:20:33 -07:00
Behdad Esfahbod
7099a6dca1 [atomic] Remove old Intel primitives implementation 2021-02-20 15:20:06 -07:00
Behdad Esfahbod
711c241f6c m[mutex] Remove busyloop mutex implemenation
Don't know why I ever added this. :)
2021-02-20 15:16:59 -07:00
Behdad Esfahbod
47f01c0726 m[algs] Move BEInt here 2021-02-20 15:14:50 -07:00
Behdad Esfahbod
e5b7bc424d m Add default value to BEInt<> Size template parameter 2021-02-20 15:14:15 -07:00
Behdad Esfahbod
2caae4a59a m Move class traits 2021-02-20 15:13:52 -07:00
Behdad Esfahbod
c2dbd6cc0f Remove static_assert of sizeof basic sized int types 2021-02-20 15:11:47 -07:00
Behdad Esfahbod
e1706ffecd m [algs] Move flags here 2021-02-20 15:11:26 -07:00
Behdad Esfahbod
017f6b0d24 m Move static_assert_expr<> 2021-02-20 15:11:14 -07:00
Behdad Esfahbod
61f8d0e57d m Rename ASSERT_STATIC_EXPR_ZERO to static_assert_expr 2021-02-20 15:08:19 -07:00
Behdad Esfahbod
59cfffb1af m Change ASSERT_STATIC_EXPR_ZERO template arg type to bool 2021-02-20 15:07:28 -07:00
Behdad Esfahbod
1981d83d7f [constexpr] HB_MARK_AS_FLAG_T 2021-02-20 15:07:14 -07:00
Behdad Esfahbod
a4a99de0eb [constexpr] bswap 2021-02-20 15:07:07 -07:00
Behdad Esfahbod
f8ebe1dacd [constexpr] BEInt 2021-02-20 15:06:12 -07:00
Behdad Esfahbod
2fbd34f89a m[set/map] Add operator bool()
Probably should use in places..
2021-02-19 18:40:48 -07:00
Behdad Esfahbod
bf75a0a03a m[dispatch] Use inline class member initialization
Let's see how bots like this...
2021-02-19 18:40:48 -07:00
Behdad Esfahbod
82928d9cf6 m[blob] Move immutable check to C API boundary
Similarly to 08ed9e3f779253e3b5f01c38d44d0e5db2d5e7aa
2021-02-19 18:40:48 -07:00
Behdad Esfahbod
4020c6b286 m[blob] An empty blob can always be made writable 2021-02-19 18:40:48 -07:00
Behdad Esfahbod
2d39031f7b [buffer/set/map] Move immutable check only to C API boundary
The immutable objects are a concept only enforced by the C API.
So move checks only to that region.

This does assume that the rest of the code is careful not getting
into these internal methods on immutable objects, which something
we do, but have no way of enforcing (currently).

.
2021-02-19 18:40:48 -07:00
Behdad Esfahbod
6d83d44052 m[set] Recover set from error in .reset() 2021-02-19 18:40:48 -07:00
Behdad Esfahbod
445efe8d04 m[vector] Recover vector from error in .reset() 2021-02-19 18:40:48 -07:00
Behdad Esfahbod
21433fa563 m[buffer] In hb_buffer_append() don't change until allocation success 2021-02-19 18:40:48 -07:00
Behdad Esfahbod
0f61a6213a m[vowels] Simplify
If we didn't "process" anything, swap_buffers() becomes a no-op.
2021-02-19 18:40:48 -07:00
Behdad Esfahbod
3b91e0b592 m[buffer] Rename internal variable 2021-02-19 18:40:48 -07:00
Behdad Esfahbod
9fcba109bf [buffer] Make swap_buffers() copy rest 2021-02-19 18:40:48 -07:00
Behdad Esfahbod
86993c09a1 Ignore -Wrange-loop-analysis
Fixes https://github.com/harfbuzz/harfbuzz/issues/2834
2021-02-19 17:10:06 -07:00
Behdad Esfahbod
6d94194497 Use auto in range-for-loop more 2021-02-19 17:10:06 -07:00
justvanrossum
1551f3d518 fixing more expected test results 2021-02-19 16:53:21 -07:00
justvanrossum
79e4f436e7 Apply rounding correctly when calculating glyph extents for CFF and CFF2; adjust expected test results 2021-02-19 16:53:21 -07:00
justvanrossum
d01ebeae21 calculate extents based on scaled then rounded values; undo two of the earlier test result adjustments 2021-02-19 16:53:21 -07:00
justvanrossum
1d02e9c63b two more adjusted expected extents results (still not convinced this is the right thing, though) 2021-02-19 16:53:21 -07:00
justvanrossum
cd0babe6a6 adjust expected test result 2021-02-19 16:53:21 -07:00
justvanrossum
1d8a89504b do not round added deltas; fixes #2866 2021-02-19 16:53:21 -07:00
Behdad Esfahbod
103ed7da83 [subset] Use dagger
Better fix for https://github.com/harfbuzz/harfbuzz/pull/2858
2021-02-19 16:48:30 -07:00
Behdad Esfahbod
d8ea552d10 [aat] Improve unsafe-to-break logic
Reduces false-positives.  See comments for new logic.

Fixes https://github.com/harfbuzz/harfbuzz/issues/2860

Adjusts run-tests.sh to allow unhashed absolute filenames.
2021-02-19 16:23:22 -07:00
Behdad Esfahbod
cf203936d7 [aat] Unbreak builds
Some compilers don't like this:

../src/hb-aat-layout-common.hh:732:9: error: declaration of 'using StateTable = struct AAT::StateTable<Types, EntryData>' changes meaning of 'StateTable' [-fpermissive]
732 |   using StateTable = StateTable<Types, EntryData>;
2021-02-18 12:03:26 -07:00
Behdad Esfahbod
b6fdaa6948 [minor:aat] Use injected class name 2021-02-18 11:16:37 -07:00
Behdad Esfahbod
e27420bb18 [minor:aat] Simplify template reference 2021-02-18 11:15:46 -07:00
Behdad Esfahbod
7b8a8adb7d [aat] Fix unsafe-to-break marking when end-of-text action kicks in
The state we are dealing with here is the previous state; so it should
cause unsafe_to_break before current glyph.

I'm surprised this wasn't caught by any tests. Guess we don't have any
fonts with fancy end-of-text forms.
2021-02-18 09:47:24 -07:00
Behdad Esfahbod
aa80c7c8b4 [aat] Add buffer->successful check before buffer->next_glyph() 2021-02-18 09:31:46 -07:00
Behdad Esfahbod
bcd10bf274 [normalize] Add buffer success check before ->next_glyph()
Speculative fix for:
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=27843
2021-02-17 13:58:56 -07:00
Behdad Esfahbod
505b3fc6cf [harfbuzz.cc] Fix OffsetTable name clash with Mac headers
There's no easy way to undo a "using namespace" in our sources, so by the time
we get to include hb-coretext.cc from harfbuzz.cc, we already have "using namespace OT"
active, which clashes with Mac headers.

Error was:
$ gcc -O3 -Wall -arch i386 -DHAVE_CORETEXT=1 -c harfbuzz.cc -o harfbuzz.o -std=c++11
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/TextUtils.h:288:3: error:
      reference to 'OffsetTable' is ambiguous
  OffsetTable     offsets,
  ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/IntlResources.h:115:41: note:
      candidate found by name lookup is 'OffsetTable'
typedef OffPair                         OffsetTable[3];
                                        ^
./hb-open-file.hh:81:16: note: candidate found by name lookup is 'OT::OffsetTable'
typedef struct OffsetTable
               ^
1 error generated.
2021-02-17 11:34:47 -07:00
Behdad Esfahbod
6a9f576fd4 [coretext] Silence CoreText deprecation warning
As suggested by Ned, just ignoring it.

warning: 'CTGetCoreTextVersion' is deprecated: first deprecated in macOS 11.0 - Use
      -[NSProcessInfo operatingSystemVersion] [-Wdeprecated-declarations]
2021-02-17 11:31:32 -07:00
Behdad Esfahbod
8e53c7c125 [coretext] Fix more CGFloat double-promotion warnings
The warning is:
warning: implicit conversion increases floating-point precision: 'CGFloat' (aka 'float') to
      'double' [-Wdouble-promotion]
2021-02-17 11:12:56 -07:00
Behdad Esfahbod
cd08c2528c Fix typo 2021-02-16 18:51:43 -07:00
Khaled Hosny
9c8032cb4b [meson] Don’t build FontConfig subproject from master
Pin it to a known working tag instead.
2021-02-16 22:20:26 +02:00
Garret Rieger
5ca353a2d0 [subset] fix heap buffer overflow found by fuzzer. 2021-02-16 12:43:02 -07:00