Behdad Esfahbod
62e312ead8
Use NULL instead of polyfill, if nullptr is not available
...
Part of fixing https://github.com/behdad/harfbuzz/issues/585
2017-10-27 09:29:20 -06:00
Behdad Esfahbod
2a74968044
Add hb-string-array.hh
...
Used to build static string arrays that use no relocation.
2017-10-26 20:32:16 -06:00
Behdad Esfahbod
6f08b12bc3
Minor
2017-10-26 18:23:03 -06:00
Behdad Esfahbod
2ee710e02f
Minor
2017-10-23 08:37:48 -04:00
Behdad Esfahbod
ced86da7dd
Another try at fixing mingw32 build bot fail
2017-10-22 17:06:10 -04:00
Behdad Esfahbod
d8adaa97fb
Another try at fixing build bots
...
hb-ot-shape.cc:287:18: error: comparison of constant 32 with expression of type 'hb_unicode_general_category_t' is always true [-Werror,-Wtautological-constant-out-of-range-compare]
2017-10-20 13:57:43 -04:00
Behdad Esfahbod
6058f98825
Remove FLAG_SAFE()
...
No flag is safe, over time... See previous commit.
2017-10-19 11:39:52 -07:00
Behdad Esfahbod
221ce6c18f
Fix bots
2017-10-15 17:58:58 -04:00
Behdad Esfahbod
56ef4e0c52
Simplify hb_prealloced_array_t initialization
2017-10-15 16:38:29 -04:00
Behdad Esfahbod
7737e87ac4
Properly detect vector_size attribute and use fallback otherwise
2017-10-15 16:21:03 -04:00
Behdad Esfahbod
deed4a48d1
Faster hb_set_t
...
Fixes https://github.com/behdad/harfbuzz/pull/23
2017-10-15 16:45:33 -03:00
Behdad Esfahbod
5e74044b6b
Add bfind() to prealloaced_array_t
2017-10-15 16:28:34 -03:00
Behdad Esfahbod
db5f7ef189
Inline another bsearch()
2017-10-15 16:28:34 -03:00
Behdad Esfahbod
6fb4ac73f9
Add popcount for 64bit ints
2017-10-15 16:00:09 +02:00
Behdad Esfahbod
3c13e153fe
Try fixing AppVeyor bots
2017-10-15 14:02:58 +02:00
Behdad Esfahbod
dbdbfe3d7b
Use nullptr instead of NULL
2017-10-15 12:11:08 +02:00
Behdad Esfahbod
c3448e8d21
Use static_assert instead of custom ASSERT_STATIC
2017-10-15 12:02:00 +02:00
Behdad Esfahbod
76dcbf8b23
Add polyfill for static_assert and nullptr
...
Also fix hb_assert_constant_t.
2017-10-15 11:24:35 +02:00
Ebrahim Byagowi
76c4873e8c
Support branch prediction helpers on clang compiles ( #491 )
2017-06-02 13:23:10 -04:00
Sebastian Rasmussen
92e2c4baaf
Avoid using strdup inside library. ( #488 )
...
If an application provides a malloc replacement through
hb_malloc_impl() it is important that it is used to allocate
everything, but the use of strdup() circumvents this and
causes system malloc() to be called instead. This pairs
badly with the custom hb_free_impl() being called later.
2017-05-29 10:53:30 -07:00
Behdad Esfahbod
df98ce5fc8
Improve debug output with really deep nesting
2016-12-21 19:27:30 -06:00
Steve Lhomme
0b8f3ab022
clang in MSVC mode doesn't like when we redefine __attribute__ ( #283 )
2016-07-11 12:57:26 -07:00
Konstantin Ritt
5069062d0a
Unbreak build on Windows CE
...
0475ef2f97
broke the build by using
vsnprintf(), which is not defined on Windows CE
2016-04-26 12:02:26 +04:00
Behdad Esfahbod
91dd115652
Add HB_NDEBUG
...
API changes:
- If NDEBUG is defined, define HB_NDEBUG
- Disable costlier sanity checks if HB_NDEBUG is defined.
In 1.2.3 introduced some code to disable costly sanity checks if
NDEBUG is defined. NDEBUG, however, disables all assert()s as
well. With HB_NDEBUG, one can disable costlier checks but keep
assert()s.
I'll probably add a way to define HB_NDEBUG automatically in
release tarballs. But for now, production systems that do NOT
define NDEBUG, are encouraged to define HB_NDEBUG for our build.
2016-02-25 13:56:47 +09:00
Steven R. Loomis
a13b023dbf
AIX fixes
...
- use '-w' instead of '\<...\>' for check-header-guards
grep manpage says these are the same
- put '-q' first in the grep options
- move VAR into hb-private.hh
- hb-font-private.hh - use [VAR] instead of [] for variable array
2015-12-12 17:44:44 -08:00
Behdad Esfahbod
766963adba
Merge pull request #114 from ThePhD/vc++-fixes
...
Fix all VC++ warnings and errors
2015-11-24 15:38:43 -06:00
Behdad Esfahbod
1dc32ea4d2
Whitespace
2015-11-20 13:24:19 -08:00
Behdad Esfahbod
f94c0ecbb1
Define HB_MARK_AS_FLAG_T as a macro instead of using templates
...
The generic template operator overloading was causing more problems than it
solved. Eg:
https://github.com/behdad/harfbuzz/pull/163
https://github.com/behdad/harfbuzz/issues/175
So, just use macros.
Fixes https://github.com/behdad/harfbuzz/issues/175
Fixes https://github.com/behdad/harfbuzz/pull/178
2015-11-20 13:21:29 -08:00
Behdad Esfahbod
e0082ae60d
Move things around
2015-11-17 18:42:13 -08:00
Chun-wei Fan
167c327177
Fix build on MSVC >= 2012
...
Use the DEFINE_ENUM_FLAG_OPERATORS macro in winnt.h on Visual Studio,
which defines the bitwise operators for the enumerations that we want to
mark as hb_mark_as_flags_t, which will take care of the situation on newer
Visual Studio (>= 2012), where the build breaks with C2057 errors as the
underlying types of the enumerations is not clear to the compiler when we
do a bitwise op within the declaration of the enumerations themselves.
Also disable the C4200 (nonstandard extension used : zero-sized array in
struct/union) and C4800 ('type' : forcing value to bool 'true' or 'false'
(performance warning)) warnings as the C4200 is the intended scenario and
C4800 is harmless but is so far an unavoidable side effect of using
DEFINE_ENUM_FLAG_OPERATORS.
2015-11-17 12:19:22 +08:00
Behdad Esfahbod
6986208ba3
Optimize runs without Default_Ignorable's
...
Now that we have a buffer-wide scratch flags facility, use it to
optimize away a few passes.
2015-11-04 18:46:41 -08:00
Behdad Esfahbod
aa7044de0c
Generalize flags types
2015-11-04 16:25:57 -08:00
Behdad Esfahbod
672ca3b4e6
Use templates for making sure expression is constant
2015-10-26 14:05:05 -07:00
Behdad Esfahbod
50e5750bd8
Avoid unnecessary cast to 64-bit
...
Fixes https://github.com/behdad/harfbuzz/issues/146
Or I think it should.
2015-10-21 11:10:40 -02:00
Behdad Esfahbod
305d2fbf5a
Add HB_FALLTHROUGH
...
Borrowed from https://bugzilla.mozilla.org/show_bug.cgi?id=1215411
2015-10-21 11:04:28 -02:00
Behdad Esfahbod
cc6ea308d4
Extern "C" custom-allocator declerations
2015-10-12 17:21:52 -04:00
Behdad Esfahbod
52b418555b
Allow compiling with custom allocators
...
User can define hb_malloc_impl, etc, to name of custom allocator functions
that have the same signature as malloc.
2015-10-03 13:20:55 +01:00
Behdad Esfahbod
b47159011c
Define return_trace()
...
Not functional change (expected!).
2015-09-29 14:57:02 +01:00
Behdad Esfahbod
93099748e3
Minor
2015-09-01 16:11:27 +01:00
Behdad Esfahbod
85846b3de7
Use insertion-sort instead of bubble-sort
...
Needed for upcoming merge-clusters fix.
2015-09-01 15:07:52 +01:00
ThePhD
5c99cf93d6
Merge branch 'master' into vc++-fixes
2015-08-14 01:02:00 -04:00
Behdad Esfahbod
5b5617e066
Add FLAG_UNSAFE()
...
Unused right now.
2015-07-21 15:52:15 +01:00
Behdad Esfahbod
f8160a4959
Add FLAG_SAFE() for values known to be small-enough
...
And add check to FLAG()
2015-07-21 15:50:02 +01:00
Behdad Esfahbod
366aeaad00
Add note re ASSERT_STATIC_EXPR_ZERO()
2015-07-21 15:45:48 +01:00
Behdad Esfahbod
d6adca9fbb
Remove unused macro ASSERT_STATIC_EXPR()
2015-07-21 15:17:27 +01:00
Behdad Esfahbod
1025e1a9e7
Use unsigned in FLAG()
2015-07-21 15:05:35 +01:00
ThePhD
8ad89f057d
Spelling words is not my strong point.
2015-06-23 09:09:24 -04:00
ThePhD
e0a828ecbd
Back to using regular `strdup`, with an `hb-private.hh` fix that special-cases VC++'s
...
definition and usage of the words
2015-06-23 09:07:17 -04:00
Behdad Esfahbod
a5e4f6d608
Fix warnings: "member call on null pointer of type"
...
https://bugzilla.mozilla.org/show_bug.cgi?id=1167119
2015-06-10 10:57:46 -07:00
Behdad Esfahbod
3029e8b59d
Revert "Add MSVC pragma for UTF-8 source code"
...
This reverts commit 89cbd4d953
.
See discussion:
https://bugzilla.gnome.org/show_bug.cgi?id=747772
2015-04-14 13:32:22 -07:00
Behdad Esfahbod
89cbd4d953
Add MSVC pragma for UTF-8 source code
...
Not sure we have any right now; motivated by this:
https://bugzilla.gnome.org/show_bug.cgi?id=747772
2015-04-13 12:27:08 -07:00
Konstantin Ritt
855a5d7cb8
Fix build on WEC2013
...
Based on patch from Björn Breitmeyer
2015-04-10 17:18:01 +04:00
Behdad Esfahbod
ce01ad7c2f
MSVC 2015 supports snprintf and not _snprintf
2015-04-01 11:05:59 -07:00
Behdad Esfahbod
560718862f
Move WinCE define to better place
2015-04-01 11:04:58 -07:00
Behdad Esfahbod
5f541f8f7b
Minor refactoring
2015-02-25 15:43:35 -08:00
Behdad Esfahbod
68e04afbb1
Typo
2015-02-25 15:43:34 -08:00
Behdad Esfahbod
55553699b3
Minor
2015-02-25 15:43:34 -08:00
Konstantin Ritt
9768e651be
Fix build with MSVC on CE
...
This code is C++ only. There isn't a single C++ compiler that fails to
understand the "inline" keyword, since it's required by C++98. Any
compiler older than C++98 is likely to choke on the template usage
further down, so this isn't necessary.
Moreover, the C++ standard says you cannot define macros.
[lib.macro.names] says "Nor shall such a translation unit define macros
for names lexically identical to keywords." -- technically, it's a
promise that the Standard Library headers won't do it, the wording means
that the entire translation unit won't do it, which implies no source
can do it.
MSVC complains about it:
fatal error C1189: #error : The C++ Standard Library forbids macroizing
keywords. Enable warning C4005 to find the forbidden macro.
Author: Thiago Macieira <thiago.macieira@intel.com>
2015-02-14 00:58:51 +04:00
Konstantin Ritt
f3537b620b
Move some code around
...
Just to keep Windows specific workarounds in a single place.
2015-01-25 09:50:51 +04:00
Konstantin Ritt
afb62d88d7
Do not define MemoryBarrier on WinCE
...
There is a _HBMemoryBarrier() wrapper function that emulates
MemoryBarrier() behavior when it is not defined.
2015-01-25 08:16:26 +04:00
Konstantin Ritt
7db326a15b
Fix build on WinRT
...
There is no environment (like WinCE) and the basic version
of InitializeCriticalSection is unsupported.
https://codereview.qt-project.org/#/c/92496/
2015-01-25 08:13:24 +04:00
Behdad Esfahbod
5c7d6f02d7
Minor
2014-12-12 20:28:49 -08:00
Behdad Esfahbod
666b42f73b
Move macros around
...
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=84491
2014-10-14 21:24:59 -07:00
Behdad Esfahbod
5c87120b81
Fix misc warnings
...
Fixes https://github.com/behdad/harfbuzz/pull/51
2014-10-14 20:07:31 -07:00
Behdad Esfahbod
250398b1e4
Hide other bubble-sort
2014-10-01 11:28:59 -04:00
Behdad Esfahbod
c1e8744262
Hide bubble-sort!
2014-10-01 11:07:08 -04:00
Behdad Esfahbod
270971a0fc
[win32] Avoid preprocessor warnings re macros
2014-08-15 14:28:04 -04:00
Behdad Esfahbod
29e25550ce
Fix gcc warning
2014-08-12 17:06:50 -04:00
Behdad Esfahbod
8fd4d70b14
[wince] Two more Windows CE fixes
...
Report has it that it builds (and works) now:
https://codereview.qt-project.org/#/c/92087/
2014-08-12 13:12:31 -04:00
Behdad Esfahbod
c2b151d952
Fix hb_in_range() for types smaller than int
...
As exercised by hb-coretext .notdef code.
2014-08-10 19:05:52 -04:00
Behdad Esfahbod
26a963b9cb
[wince] Try to fix some stuff on Windows CE
...
Based on errors seen here:
http://testresults.qt-project.org/ci/QtBase_dev_Integration/build_03837/wince70embedded-armv4i-msvc2008_Windows_7/log.txt.gz
Fully untested.
2014-08-10 18:05:24 -04:00
Behdad Esfahbod
38fb30d742
Use atexit() only if it's safe to call from shared library
...
Apparently they are not (advertised as?) safe on BSD systems.
We ignore the case of static libraries.
Whitelisted on glibc, Android, and MSVC / mingw.
https://bugs.freedesktop.org/show_bug.cgi?id=82246
2014-08-06 13:34:49 -04:00
Behdad Esfahbod
7e8c389546
Minor warnings fixes
...
Some systems insist on -Wmissing-field-initializers. We have too many,
by design. Fix a few easy ones.
2014-07-25 11:23:17 -04:00
Behdad Esfahbod
0fc0a10228
[win] Fix Cygwin build
...
db30828048 (commitcomment-7077778)
2014-07-21 11:13:27 -04:00
Behdad Esfahbod
f1a8d50a87
[win] Don't define visibility attribtue under Cygwin
2014-07-19 16:52:32 -04:00
Behdad Esfahbod
9c77027d64
[win] Turn STRICT on for including windows.h
2014-07-19 16:37:22 -04:00
Behdad Esfahbod
db30828048
[win] Consolidate windows.h include tips and tricks
2014-07-19 16:32:04 -04:00
Behdad Esfahbod
385cf37cf0
Fix hb_in_range() unused-var warning on Windows
2014-07-17 18:22:07 -04:00
Dominik Röttsches
9e7c720100
Fix CoreText build after a8b89a09f6
2014-07-17 12:18:08 -04:00
Behdad Esfahbod
a8b89a09f6
Simplify hb_in_range()
...
It's both faster and produces smaller code. Now I feel stupid for
not writing it this way before.
2014-07-11 14:18:01 -04:00
Behdad Esfahbod
546b1adcdc
Minor: Use template parameter default values for hb_prealloced_array_t
2014-06-27 15:17:01 -04:00
Behdad Esfahbod
fb8cc86ff9
Rename sort() to qsort()
...
In an effort to make the algorithm used clear.
2014-06-19 15:31:09 -04:00
Behdad Esfahbod
dac86026a6
Fix some cppcheck warnings
...
Bug 77800 - cppcheck reports
2014-06-03 17:57:00 -04:00
Behdad Esfahbod
c306410cab
Bug 77732 - Fix unused typedef warning for ASSERT_STATIC with GCC 4.8
2014-06-03 17:00:07 -04:00
Behdad Esfahbod
ae2b854eab
Move code around
2014-06-03 16:59:09 -04:00
Behdad Esfahbod
6faff8e413
Add static storage classifier to inline functions
...
Before we were just relying on the compiler inlining them and not
leaving a trace in our public API. Try to fix. Hopefully not
breaking anyone's build.
2014-04-28 14:30:44 -07:00
Behdad Esfahbod
a949cd329e
Don't use "register" storage class specifier
...
Fixes warnings.
https://bugzilla.mozilla.org/show_bug.cgi?id=984081
2014-03-16 20:22:42 -07:00
Behdad Esfahbod
c98b7183f7
[ot] Add Hangul shaper
...
Not exhaustively tested, but I think I got the intended logic
right.
The logic can perhaps be simplified. Maybe we should disabled
normalization with this shaper. Then again, for now focusing on
correctness.
2013-12-31 16:23:48 +08:00
Behdad Esfahbod
16f175cb2e
Fix scratch-buffer alignment warnings
2013-11-12 17:22:49 -05:00
Behdad Esfahbod
639afdc690
Minor
2013-08-06 14:28:12 -04:00
Behdad Esfahbod
7235f33f9e
Fix misc warnings reported by cppcheck
...
https://bugs.freedesktop.org/show_bug.cgi?id=65544
2013-06-10 15:08:49 -04:00
Behdad Esfahbod
6c15ddfe2b
Renamed DEBUG to something else
...
Some infrastructures use DEBUG as a generic symbol.
2013-04-30 11:34:00 -04:00
Behdad Esfahbod
2b712bba3f
Fix typo in unused macro
2013-04-16 16:11:09 -04:00
Behdad Esfahbod
c5d91f3980
Add hb_auto_array_t
2013-03-09 04:34:21 -05:00
Behdad Esfahbod
20b817ac21
[buffer] Implement buffer deserialization for format=json
...
Using a ragel machine.
2013-02-27 18:49:18 -05:00
Behdad Esfahbod
847794e929
[buffer] Implement buffer deserialization for format=text
...
Using a ragel machine.
2013-02-27 18:49:18 -05:00
Behdad Esfahbod
29ff254815
Add HB_DEBUG_VERBOSE
...
Only affects the verbosity of function name printing right now.
2013-02-25 19:04:56 -05:00
Behdad Esfahbod
bab02d339f
Rename HB_OT_INDIC_OPTIONS env var to HB_OPTIONS
...
The Myanmar shaper now respects the uniscribe-bug-compatibility
option too.
2013-02-12 15:26:45 -05:00
Behdad Esfahbod
bd61bc13ea
[OTLayout] Add UINT24 type
2012-12-11 16:01:07 -05:00
Behdad Esfahbod
5f9569c139
Make older MSVC happy
2012-12-10 13:39:06 -05:00