Behdad Esfahbod
b368a0736b
[atomic] Remove IBM/AIX implementation
...
The C++11 implementation shall be enough for everyone.
2021-02-22 17:24:09 -07:00
Behdad Esfahbod
52f9126960
[atomic] Remove Windows implementation
...
Since we require C++11 now, there's no point to do a macro version check.
Which means we don't hit the MSVC issue defining __cplusplus wrongly.
2021-02-22 17:22:09 -07:00
Behdad Esfahbod
a666fe64a9
[atomic] Comment
2021-02-22 17:21:27 -07:00
Behdad Esfahbod
3528a21e8d
[atomic] Remove Apple implementation
...
Continuation of https://github.com/harfbuzz/harfbuzz/pull/676
2021-02-22 17:19:43 -07:00
Behdad Esfahbod
140797d4a2
[constexpr] hb_atomic_int_t
2021-02-22 17:19:26 -07:00
Behdad Esfahbod
2ec802b42a
[object] Simplify reference_count_t
2021-02-22 17:18:47 -07:00
Behdad Esfahbod
12a283d513
m[ft] No need to use atomic ops for cached_x_scale
...
We have added a mutex since, so no need for atomicity.
2021-02-22 12:51:09 -07:00
Behdad Esfahbod
a3c35aee30
m Move HB_SCRIPT_MYANMAR_ZAWGYI
2021-02-20 15:45:34 -07:00
Behdad Esfahbod
c55bf55154
Remove HB_CONST_FUNC and HB_PURE_FUNC
...
They are not necessary for inline functions.
2021-02-20 15:45:12 -07:00
Behdad Esfahbod
cba9893ac5
m[algs] Move roundf() here
2021-02-20 15:44:47 -07:00
Behdad Esfahbod
f0947717ff
m[machinery] Move HB_VAR_ARRAY here
2021-02-20 15:44:25 -07:00
Behdad Esfahbod
69464e9da0
[algs] Another try at fixing BEInt constexpr
...
../src/hb-algs.hh:120:3: error: body of constexpr function ‘constexpr BEInt<Type, 2>::operator Type() const [with Type = short unsigned int]’ not a return-statement
2021-02-20 15:42:44 -07:00
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 08ed9e3f77
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
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
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
Garret Rieger
5ca353a2d0
[subset] fix heap buffer overflow found by fuzzer.
2021-02-16 12:43:02 -07:00
David Corbett
751ed68fee
[indic] Fix shaping of U+0B55 ORIYA SIGN OVERLINE
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/2849
2021-02-14 12:47:34 -05:00
Behdad Esfahbod
7a60f4e3a4
[subset] Remove debug burden
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/2360
2021-02-12 14:14:17 -07:00
Garret Rieger
08a4997fde
[subset] Add subset support for Extension lookups (GPOS 9, GSUB 7).
2021-02-11 13:41:31 -07:00
Behdad Esfahbod
bbbea3dbd8
[minor] Rewrite set operation in OS/2 subsetting
...
This patch could be nicer:
https://github.com/harfbuzz/harfbuzz/pull/2572/files
Just tiny touchup now.
2021-02-11 12:23:33 -07:00
Behdad Esfahbod
cdb9197b41
[khmer] Remove more unused code
...
Prodded by https://github.com/harfbuzz/harfbuzz/pull/2583
These are leftovers from when we forked Khmer shaper from the Indic shaper.
2021-02-11 11:33:47 -07:00
Behdad Esfahbod
dfa9d7acdc
[minor] Use serializer->propagate_error() to simplify code
2021-02-11 11:19:51 -07:00
Behdad Esfahbod
5faae8260a
[post] Remove unneeded error check
2021-02-11 10:58:02 -07:00
Behdad Esfahbod
d7e2a51de2
[minor] Add unlikely() when checking for error
2021-02-11 10:55:03 -07:00
Behdad Esfahbod
c7d232ce4e
Merge pull request #2701 from googlefonts/Mark-To-Ligature_grieger
...
[subset] GPOS 5 MarkToLigature subsetting support
2021-02-10 18:13:38 -07:00
Khaled Hosny
7b9e23f28b
[introspection] Fix g-ir-scanner syntax errors
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/2851
2021-02-10 23:37:43 +02:00
Behdad Esfahbod
1da75afbe8
[minor] Add unlikely()
2021-02-10 00:03:41 -07:00
Behdad Esfahbod
6e1afac64b
[minor] Rename internal variable
...
To address review comment:
https://github.com/harfbuzz/harfbuzz/pull/2699#discussion_r573370781
2021-02-09 18:48:46 -07:00
Behdad Esfahbod
836814a571
[array] Swap order of args to hb_equal()
...
Prioritizes Key::cmp() over table's cmp.
2021-02-09 18:48:05 -07:00
Behdad Esfahbod
98374cebe1
Conditionalize IntType::cmp() so it never fails to compile
...
Useful with lfind() since that calls hb_equal() which SFINAEs which
cmp() to use.
2021-02-09 18:48:05 -07:00
Behdad Esfahbod
ed04174a64
Whitespace
2021-02-09 18:48:05 -07:00
Behdad Esfahbod
6a3fd94f3b
Merge pull request #2699 from googlefonts/gpos_8
...
[subset] Add a more complex layout subsetting test case and fix the issues it exposed.
2021-02-09 20:49:04 -05:00
Garret Rieger
8f47dd5779
[subset] don't set lookup visited in closure_lookups_context_t::recurse.
...
- Lookup::closure_lookups also checks if the lookups visited and sets the lookup to visited. If we set visited in 'recurse' then Lookup::closure_lookups will fail to recurse into the children of the lookup.
- Also when copying ChainRule's skip LookupRecord's that point to lookups which aren't retained. This matches FontTool's behaviour.
2021-02-09 20:34:52 -05:00
josephshen
d9e0244cdf
remove duplicate file names
2021-02-02 09:23:41 -08:00
Behdad Esfahbod
dad41c07e4
[use] Typo
2021-02-01 11:30:39 -08:00
Behdad Esfahbod
63a716c540
[indic] Use lfind()
2021-02-01 11:30:39 -08:00
Behdad Esfahbod
921b4e46b0
[algs] Add hb_equal()
...
Use in hb_array_t::lfind()
2021-02-01 11:30:39 -08:00
Behdad Esfahbod
f4ed3bf20b
[indic] Remove categorization of Khmer Ra
...
Khmer goes through its own shaper these days.
2021-02-01 11:30:39 -08:00
Behdad Esfahbod
676d1e6adf
[indic] Spell out INDIC_TABLE_ELEMENT_TYPE
2021-02-01 11:30:39 -08:00
Behdad Esfahbod
769c2b19a3
[indic/khmer/myanmar/use] Minor shuffling of found_syllable() macros
2021-02-01 11:30:39 -08:00
Behdad Esfahbod
59721c2f37
[use] Move data table into same compilation unit
2021-02-01 11:30:39 -08:00
Behdad Esfahbod
d9b167da3d
[use] Remove hb-ot-shape-complex-use.hh
...
Inline into ragel machine.
2021-02-01 11:30:39 -08:00
Behdad Esfahbod
3bb2653a5e
[use] Reuse category numbers exported from ragel machine
...
Part of https://github.com/harfbuzz/harfbuzz/pull/2726
2021-02-01 11:30:39 -08:00
Behdad Esfahbod
c417e0d2f9
[indic/khmer/myanmar/use] Move enum category around
...
Such that the generated -machine.hh headers are independent.
2021-02-01 11:30:39 -08:00
Behdad Esfahbod
675b6c2994
[indic/khmer/myanmar/use] Remove unused dump-*-data programs
...
In prep for streamlining tables.
2021-02-01 11:30:39 -08:00
Behdad Esfahbod
0a5c631140
[use] Rename internal enum joinint_form_t members
...
To ease upcoming change.
2021-02-01 11:30:39 -08:00
Behdad Esfahbod
880fdb7460
[indic/khmer/myanmar/use] Export categories from Ragel source
...
Not hooked up yet.
Part of alternative approach to
https://github.com/harfbuzz/harfbuzz/pull/2726
2021-02-01 11:30:39 -08:00
ckitagawa
b198d94489
use {} rather than {0}
2021-01-25 14:07:52 -08:00
ckitagawa
2e50b517e1
Nicer more idiomatic fix
2021-01-25 14:07:52 -08:00
ckitagawa
8f6559a373
[subet/COLR] Default initialize firstLayerIdx
2021-01-25 14:07:52 -08:00
Behdad Esfahbod
a650243d39
[sanitize] Fix typo
2021-01-24 13:30:06 -07:00
Behdad Esfahbod
881ad720fe
[algs] Remove passthru declaration
...
Let compiler figure it out.
2021-01-21 14:27:45 -07:00
Behdad Esfahbod
ca0b7afee9
[set] Use hb_fill()
2021-01-21 12:22:00 -07:00
Behdad Esfahbod
5fce8898e0
[iter] Allow passing rvalue iters to hb_fill()
2021-01-21 12:15:10 -07:00
Behdad Esfahbod
6463ee02d6
Speed up ClassDef/Coverage intersect methods
...
Just avoiding overhead as measured by Garret.
Should rewrite as dagger in the future and confirm that it has the
same benefits. Later on, rewrite as lfind() maybe.
Fixes https://github.com/harfbuzz/harfbuzz/issues/2826
2021-01-21 11:16:04 -08:00
Garret Rieger
33368a12b7
uint32_t to unsigned in hb-set.hh
2021-01-21 12:12:05 -07:00
Garret Rieger
2a0d0b901f
Make set clear work even when set is in failed state.
2021-01-21 12:12:05 -07:00
Garret Rieger
0ba73e980c
[ENOMEM] handle allocation failures during page compaction.
2021-01-21 12:12:05 -07:00
Garret Rieger
a4c3732f59
[ENOMEM] fix set clear() causing corruption if the set is in_error().
2021-01-21 12:12:05 -07:00