src/hb-uniscribe.cc


Log

Author Commit Date CI Message
Behdad Esfahbod a11db0b9 2020-04-23T15:32:43 Merge branch 'master' into usermanual-integration
Ebrahim Byagowi 3e1a2632 2019-12-12T15:48:27 [unscribe] fix leak issue with no user_data provided, `free` will be called with `(0)` thus silently having a leak
Ebrahim Byagowi a0b4ac4d 2019-08-24T17:57:14 Turn 8 spaces to tab across the project According to the current code style of the project
Ebrahim Byagowi eb8bd2f7 2019-07-16T22:27:01 Add hb_gdi_face_create API Based on Konstantin Ritt work posted on mailing list
Ebrahim Byagowi 1f943885 2019-07-16T11:24:29 [usp] define atfree callback only if used
Behdad Esfahbod 8fe15485 2019-06-26T13:49:42 [config] Add HB_NO_OT_TAG Part of https://github.com/harfbuzz/harfbuzz/issues/1652
Behdad Esfahbod 10bac21b 2019-06-18T15:15:06 [coretext/uniscribe/directwrite] Remove extra semicolons Fixes https://github.com/harfbuzz/harfbuzz/pull/1783
Behdad Esfahbod aa3450ca 2019-06-17T22:41:49 [config] Don't compile disabled features This makes it possible to include all .cc files into build, even if not building CoreText, Uniscribe, etc. This was mostly to help custom builders. But also means that we can include all files in our own build system. Not sure if we should. Definitely simplifies things, but slightly only.
Eli Zaretskii d5e5f378 2019-06-05T22:20:03 This makes minor changes to allow building HarfBuzz with mingw.org's MinGW. src/hb-algs.hh: Don't compile _BitScanForward and _BitScanReverse for GCC >= 4. mingw.org's MinGW doesn't have these functions. src/hb-atomic.hh: MemoryBarrier does exist in mingw.org's MinGW, but it is not a macro, it is an inline function. __MINGW32_VERSION is a macro that exists only in mingw.org's MinGW, so conditioning on it should not affect MinGW64, where MemoryBarrier is a macro. src/hb-uniscribe.cc: Define E_NOT_SUFFICIENT_BUFFER if it is not defined (mingw.org's MinGW doesn't). src/hb.hh: Don't include intrin.h for mingw.org's MinGW, since that header is not available; instead, include windows.h. Conditioned on __MINGW32_VERSION to avoid affecting MinGW64.
Nathan Willis 27222253 2019-05-20T17:36:18 [Docs] Add gtk-doc comments to hb-uniscribe.
Behdad Esfahbod 68e12e68 2019-05-13T17:28:59 Fix more semi-colon issues
Behdad Esfahbod 2fb3a832 2019-05-10T18:40:29 [vector] Simplify arrayZ Was turned into function when we had static ones and wanted to be move-safe... Not the case anymore.
Behdad Esfahbod 41248cce 2019-05-07T20:54:31 Remove MIN/MAX in favor of hb_min/hb_max
Behdad Esfahbod 95df00ae 2019-04-12T17:50:03 Hide a few static methods Looks like static methods that do not get inlined end up exported. We have a lot more. Need to protect all at some point. Wish there was an easier way, like the visibility flag we pass that automatically hides all inline methods. Was exposed by check-symbols.sh when compiling on OS X 10.14 with: $ make CPPFLAGS=-Oz CXXFLAGS=-flto=thin LDFLAGS=-lc++
Behdad Esfahbod b986c6a3 2019-03-29T20:17:46 [C++11] Remove IntType::set() in favor of operator=
Behdad Esfahbod 9a1df82e 2019-01-28T14:15:18 [uniscribe] Whitelist function type cast
Behdad Esfahbod 4d3c8f96 2019-01-17T19:58:54 [uniscribe] More warnings
Behdad Esfahbod 6a5d2b21 2019-01-17T19:57:17 [uniscribe] Fix warnings
Behdad Esfahbod 474a1205 2018-12-21T18:46:51 [array/vector] Rename len to length
Behdad Esfahbod 69d232ea 2018-12-21T15:08:06 Fix bot C:\projects\harfbuzz\src\hb-uniscribe.cc(709): error C2666: 'hb_vector_t<OPENTYPE_FEATURE_RECORD,8>::operator +': 3 overloads have similar conversions [C:\projects\harfbuzz\build\harfbuzz.vcxproj]
Ebrahim Byagowi e4120085 2018-12-17T21:31:01 Remove redundant void from C++ sources (#1486)
Ebrahim Byagowi b2ebaa9a 2018-12-16T22:38:10 Remove redundant 'inline' from methods (#1483)
Behdad Esfahbod 27a6b0a2 2018-11-29T16:29:30 Fix build for realz
Behdad Esfahbod e2af4dd1 2018-11-29T16:03:15 [uniscribe] Fix build
Behdad Esfahbod b89c7fd3 2018-11-21T12:32:48 Allow defining HB_USE_ATEXIT to 0 That's better use of that value than requiring extra macro HB_NO_ATEXIT
Behdad Esfahbod ce5da0f3 2018-11-16T02:29:13 [shaper] Rewrite shaper data code to be more template-driven than macro-driven
Behdad Esfahbod f521a28b 2018-11-11T21:32:01 Embed hb_ot_shape_plan_t into hb_shape_plan_t No other shaper will need shape_plan_data, by definition. So, remove abstraction layer and always create hb_ot_shape_plan_t as part of hb_shape_plan_t.
Behdad Esfahbod 1beacdde 2018-11-11T16:35:28 Minor
Behdad Esfahbod 252632c4 2018-11-05T14:33:41 [uniscribe] Fix use of deprecated API
Behdad Esfahbod 3a4e5dd4 2018-10-29T18:05:25 Remove a few unnecessary hb_auto_t<>'s See a85641446c30247c4e948263f0f8c1147ed4efb9
Behdad Esfahbod 04981ee0 2018-10-27T04:40:43 [docs] More
Behdad Esfahbod 46072b7c 2018-10-27T04:21:20 [ot] Fold hb-ot-tag.h into hb-ot-layout.h
Behdad Esfahbod 955aa56b 2018-10-25T16:50:38 [vector] Make it act more like pointer Add pointer cast operator and plus operator.
Behdad Esfahbod 0816a549 2018-10-06T02:40:57 [uniscribe/coretext] Fix for previous change
Behdad Esfahbod 606bf574 2018-09-16T19:33:48 Revert forcing use of single-parameter static_assert() Some clang versions define static_assert as a macro apparently, so we cannot redefine it... This reverts commit 94bfea0ce6a7b4d5641c198d50751748a353df11. This reverts commit 4e62627831e7457ed60ff87712570065b14b200a.
Behdad Esfahbod 4e626278 2018-09-16T18:09:36 Enforce single-param static_assert() only So we don't accidentally break it again.
Behdad Esfahbod 96471fe8 2018-09-11T01:39:23 [uniscribe] Fix build
Behdad Esfahbod c77ae408 2018-08-25T22:36:36 Rename hb-*private.hh to hb-*.hh Sorry for the noise, downstream custom builders. Please adjust.
Behdad Esfahbod 9bbd1cdf 2018-08-12T18:20:53 [uniscribe] Use lazy loader Fixes https://github.com/harfbuzz/harfbuzz/issues/1129
Behdad Esfahbod 747d2564 2018-08-12T17:32:10 [lazy] Port more
Behdad Esfahbod 1f738094 2018-08-09T00:22:37 [atomic] Add hb_atomic_ptr_t<> and port all uses Found and fixed a couple bugs. Found a couple multithreading issues. Marked them with "XXX-MT-bug".
Behdad Esfahbod d4d1bf81 2018-08-02T02:04:02 Fix for recent rename
Behdad Esfahbod 91126aa1 2018-08-02T02:03:13 [uniscribe] Update for recent changes
Behdad Esfahbod ed7b2e58 2018-08-01T23:59:09 Remove OT namespace from hb-machinery-private.hh
Behdad Esfahbod 3d22aefe 2018-08-01T18:03:32 Rename
Behdad Esfahbod e7737b41 2018-07-22T22:24:31 Add sanitizer reference_table, also fix clang build Clang is being really peculiar. Fix with: - inline hb_blob_t *sanitize (hb_blob_t *blob) { return c->sanitize<Type> (blob); } + inline hb_blob_t *sanitize (hb_blob_t *blob) { return c[0].template/*clang idiosyncrasy*/sanitize_blob<Type> (blob); }
Behdad Esfahbod be458eb0 2018-07-10T14:41:04 Include more basic internal headers from hb-private.hh
Behdad Esfahbod f7515769 2018-06-01T17:48:37 [vector] Use Crap pool in push() as well
Behdad Esfahbod 65aeabd6 2018-05-23T16:15:28 Add hb_vector_t::push(const Type &v) Makes for cleaner code.
Ebrahim Byagowi 93bdf9b2 2018-05-09T23:24:17 Use arrayZ on hb-coretext and hb-uniscribe and fix macOS/Win bots (#1024) Following to 63f57f4
Behdad Esfahbod 37b95612 2018-05-01T19:09:00 Remove hb_auto_array_t Part of https://github.com/harfbuzz/harfbuzz/issues/1017
Ebrahim Byagowi 70d36543 2018-03-30T05:00:28 Make atexit callbacks threadsafe (#930)
Behdad Esfahbod 48baf7e3 2018-03-28T13:38:51 [uniscribe] Fixup for previous commit Fixes https://github.com/harfbuzz/harfbuzz/issues/934
Behdad Esfahbod b17e1a40 2018-03-28T10:44:52 [uniscribe] Fix assertion fail in checksum calc Program: Z:\Users\ebrahim\Desktop\harfbuzz\winbuild\util\.libs\hb-shape.exe File: ../../src/hb-open-type-private.hh, Line 769 Expression: 0 == (Length & 3) abnormal program termination
David Corbett 21646cc4 2018-02-16T12:08:55 Do not mark the first glyph as unsafe to break Fixes #791.
Behdad Esfahbod 470fe5b6 2018-01-09T15:48:51 [aat] Implement Lookup table Untested, but compiles.
Behdad Esfahbod e4da3802 2017-11-10T17:14:27 [coretext/uniscribe/directwrite/graphite/fallback] Update for unsafe-to-break Fixes https://github.com/behdad/harfbuzz/issues/615 We'll see which bots I broke.
Behdad Esfahbod 40ec3bbb 2017-11-03T16:57:30 Consolidate debug stuff into hb-debug.hh Part of fixing https://github.com/behdad/harfbuzz/pull/605
Behdad Esfahbod 2c439210 2017-11-01T18:13:35 [uniscribe] Fix a couple of VS warnings
Behdad Esfahbod 98acdde3 2017-10-31T11:17:43 [coretext/uniscribe] Fix build https://travis-ci.org/behdad/harfbuzz/jobs/295039536#L3468 https://ci.appveyor.com/project/behdad/harfbuzz/build/1.0.697/job/dr1ujlntxafeqbej#L142
Behdad Esfahbod dbdbfe3d 2017-10-15T12:11:08 Use nullptr instead of NULL
Behdad Esfahbod c3448e8d 2017-10-15T12:02:00 Use static_assert instead of custom ASSERT_STATIC
Behdad Esfahbod 239119a6 2017-08-13T15:08:34 [unsafe-to-break] Mark all positions as unsafe in alternative shapers
Behdad Esfahbod 466b3e58 2017-02-03T16:43:25 Shuffle things around a bit
Behdad Esfahbod 72ada4f0 2016-09-10T03:57:24 [GX] Hook up feature variations Shape-plan caching is not implemented.
Behdad Esfahbod 33317310 2016-08-08T17:24:04 Fix sign of shift operators This one: map->mask = (1 << (next_bit + bits_needed)) - (1 << next_bit); before the fix, the shift was done as an int, causing overflow if it ever got to 1 << 31. Sprinkle 'u's around. Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=634805
Behdad Esfahbod e6d5e4c3 2016-01-06T12:29:50 [uniscribe] Fix negative advance This happens with at least one test font I have.
Behdad Esfahbod eaf1e93e 2015-12-17T16:57:47 [uniscribe] Handle E_NOT_SUFFICIENT_BUFFER as well as E_OUTOFMEMORY On Windows 10 we are seeing that other error message... Test sequence: U+0995,U+-9CD,U+09B0 With Nirmala shipped on Windows 10, this failed to form the below form. Works now. Reported by Sairus.
Behdad Esfahbod 163c435f 2015-08-20T15:39:06 [uniscribe] Fix negative offsets Ouch!
Behdad Esfahbod 7c5bee09 2015-08-19T13:20:31 [uniscribe] Fix font scale handling By default shape at upem (or ppem), and scale results. Similar to work done in CoreText backend, but using upem as default.
Behdad Esfahbod 666b42f7 2014-10-14T21:24:59 Move macros around Fixes https://bugs.freedesktop.org/show_bug.cgi?id=84491
Behdad Esfahbod 15c633dd 2014-08-11T13:42:42 Minor
Behdad Esfahbod 92aeee3f 2014-08-10T17:42:19 Minor
Behdad Esfahbod 38fb30d7 2014-08-06T13:34:49 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
Behdad Esfahbod d7c850f8 2014-08-02T17:46:38 [uniscribe] Minor
Behdad Esfahbod db308280 2014-07-19T16:32:04 [win] Consolidate windows.h include tips and tricks
Behdad Esfahbod 7627100f 2014-07-11T14:54:42 Mark unsigned integer literals with the u suffix Simplifies hb_in_range() calls as the type can be inferred. The rest is obsessiveness, I admit.
Behdad Esfahbod fb8cc86f 2014-06-19T15:30:18 Rename sort() to qsort() In an effort to make the algorithm used clear.
Jonathan Kew 62cb28df 2014-01-20T14:23:08 fixup for 64-bit windows build
Behdad Esfahbod 3216e44f 2013-12-23T14:39:23 [uniscribe] Fix scratch-buffer accounting
Behdad Esfahbod 68c372ed 2013-11-13T14:44:01 More scratch-buffer cleanup
Behdad Esfahbod 16f175cb 2013-11-12T17:22:49 Fix scratch-buffer alignment warnings
Behdad Esfahbod 757a7a90 2013-08-28T12:35:13 [uniscribe] Fixed build with wide chars https://github.com/blinkseb/harfbuzz/commit/f65dafa4138e1fb4395bf646fa33bb01a86a7e9a
Behdad Esfahbod 3409fb1c 2013-08-21T17:22:21 [uniscribe] Ask Uniscribe to return shaping results in logical order See discussion on the list in the thread "Arabic presentation forms and the uniscribe backend". Based on patch from Jonathan Kew.
Behdad Esfahbod 1d05fdd0 2013-08-20T13:22:21 [uniscribe] Print run info
Behdad Esfahbod 3613696b 2013-08-12T00:33:28 [coretext] Fully support user features Based on patch from Jonathan Kew and data from Apple. It's not working correctly though, and I suspect I'm hitting a bug in CoreText. When I do this: hb-shape /Library/Fonts/Zapfino.ttf ZapfinoZapfino --shaper coretext \ --features=-liga I expect both ligatures to turn off, but only the second one does: [Z_a_p_f_i_n_o=0+2333|Z=7+395|a=8+285|p_f=9+433|i=11+181|n=12+261|o=13+250] whereas if I disable 'dlig' instead of 'liga', both are turned off. Smells... Doesn't resolve conflicting feature settings.
Behdad Esfahbod 9a175914 2013-08-07T17:26:13 [uniscribe] Support feature ranges As Khaled pointed out, right now setting any features, turns kern and possibly other features off.
Behdad Esfahbod 38d5c58d 2013-08-06T14:45:36 [uniscribe] Half-support user features Turning features on globally works now.
Behdad Esfahbod 8b427c78 2013-07-22T10:57:05 [uniscribe] Sanitize font file
Behdad Esfahbod 12ff69df 2013-07-22T10:52:12 [uniscribe] Handle TTC when renaming font
Behdad Esfahbod bdeea605 2013-07-21T16:22:10 [uniscribe] Move name generation into separate function
Behdad Esfahbod 05bad3b8 2013-07-21T17:05:02 [uniscribe] Use OT::* types
Behdad Esfahbod 73f947e2 2013-07-21T16:16:35 [uniscribe] Use blob to pass data around
Behdad Esfahbod 8ac2e88d 2013-07-21T16:06:49 [uniscribe] Use unique font name When installing per-process fonts using AddFontMemResourceEx(), if a font with the same family name is already installed, sometimes that one gets used. Which is problematic for us. As such, we now mangle the font to install a new 'name' table with a unique name, which we then use to choose the font. Patch from Jonathan Kew.
Behdad Esfahbod 29b596ac 2013-07-08T08:37:15 [uniscribe] Fix buffer allocation Email from Jonathan Kew: My cygwin build kept aborting on certain test words when run with the uniscribe backend. Turned out this was caused by a bug in the allocation of scratch buffers in hb-uniscribe.cc. Commit 2a17f9568d9724e045d2c1d660e007f3acd747d9 introduced a new line ALLOCATE_ARRAY (SCRIPT_VISATTR, vis_attr, glyphs_size); but it failed to account for this in the computation of glyphs_size (the number of glyphs for which scratch buffer space is available), with the result that the vis_clusters array ends up overrunning the end of the scratch buffer and clobbering the beginning of the buffer's info[]. AFAICS, the vis_attr array is not actually used, so the simple fix is to remove the line that allocates it. (If/when we -do- need to use vis_attr for something, we'll need to add another term to the earlier calculation of glyphs_size.) With this patch, the uniscribe backend runs reliably again. JK
Chun-wei Fan 93a04b8b 2013-06-03T17:49:37 hb-uniscribe.cc: Re-enable build under Visual Studio -Declare hinstLib at the top of block -Fix the definitions of the typedefs of ScriptItemizeOpenType, ScriptShapeOpenType and ScriptPlaceOpenType
Behdad Esfahbod 2a17f956 2013-05-28T13:10:51 Bug 55494 - ScriptItemizeOpenType doesn't exists under Windows XP Fallback to older API if OpenType variants are not available.
Behdad Esfahbod 0ae6dbf1 2012-12-09T18:37:38 Minor
Behdad Esfahbod 3fe5c159 2012-12-09T18:20:19 Remove excess return Oops!
Behdad Esfahbod 7c8e844d 2012-08-28T17:57:49 Use namespace for OpenType tables Avoids USHORT, SHORT, ULONG, LONG clashes with Windows API.