Commit Graph

57 Commits

Author SHA1 Message Date
Behdad Esfahbod fabb012104 Remove wrong comment 2018-11-11 17:10:23 -05:00
Behdad Esfahbod dcb6386833 [shape-plan] Remove use of custom null object 2018-11-11 00:16:17 -05:00
Behdad Esfahbod 109891d498 [shape-plan] Make null object all zeros
To remove custom null object next..
2018-11-11 00:15:08 -05:00
Behdad Esfahbod f6fc5574d3 Add pointer magic operators to hb_atomic_ptr_t 2018-11-05 13:23:54 -05:00
Behdad Esfahbod 93ef20a83b Replace most uses of is_inert with is_immutable 2018-11-03 15:03:06 -04:00
Behdad Esfahbod a4f4f5ba5f [docs] Fix titles here as well 2018-10-28 08:23:36 -07:00
Behdad Esfahbod 5dd86aa33b [docs] Rename section titles to object names
More useful.
2018-10-27 04:47:41 -07:00
Behdad Esfahbod 00cf4e5eb6 [docs] Fill in some sections 2018-10-27 04:47:41 -07:00
Behdad Esfahbod 39bd07aed5 Fix bunch of unused parameter warnings
Show up with gcc -O0.

There's a few more but those are functions that need to be filled in.

Maybe this is a lost battle...
2018-10-26 21:22:26 -07:00
Bruce Mitchener 8d1e479d1d Use bool literals instead of 0/1. 2018-10-19 18:05:46 +02:00
Behdad Esfahbod c77ae40852 Rename hb-*private.hh to hb-*.hh
Sorry for the noise, downstream custom builders.  Please adjust.
2018-08-25 22:36:36 -07:00
Behdad Esfahbod 1f7380944d [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".
2018-08-09 00:27:01 -07:00
Behdad Esfahbod 3506672ce9 Port _nil objects to Null() machinery
Finally, unified!
2018-08-06 06:17:48 -07:00
Behdad Esfahbod be458eb059 Include more basic internal headers from hb-private.hh 2018-07-10 14:41:04 +02:00
Behdad Esfahbod 40ec3bbb55 Consolidate debug stuff into hb-debug.hh
Part of fixing https://github.com/behdad/harfbuzz/pull/605
2017-11-03 17:18:17 -04:00
Behdad Esfahbod dbdbfe3d7b Use nullptr instead of NULL 2017-10-15 12:11:08 +02:00
jfkthame 19e77e01bc [shape-plan] Don't look for a cached plan if variation coords are specified. Fixes #549. (#550)
This is a temporary hack just to avoid incorrect shaping results, pending proper support
for caching shape-plans with variation coordinates.
2017-10-02 08:08:49 -04:00
Behdad Esfahbod 68af14d5cc Protect against div-by-zero in CBDT extent code
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1452#c5

CC https://github.com/behdad/harfbuzz/issues/139
2017-08-09 17:09:21 -07:00
Chris Peterson aacca37590 Fix clang -Wcomma warnings (#471) (#472)
clang's new -Wcomma compiler option warns about possible misuse of the
comma operator such as between two statements.

hb-common.cc:190:9 [-Wcomma] possible misuse of comma operator here
hb-ot-layout-gsubgpos-private.hh:345:30 [-Wcomma] possible misuse of
comma operator here
hb-shape-plan.cc:438:26 [-Wcomma] possible misuse of comma operator here
2017-04-17 23:25:24 -07:00
Behdad Esfahbod 466b3e58bd Shuffle things around a bit 2017-02-03 16:57:15 -08:00
Behdad Esfahbod 72ada4f0c6 [GX] Hook up feature variations
Shape-plan caching is not implemented.
2016-12-16 19:06:26 -06:00
Khaled Hosny 3d976d20f1 Show the shaper name in the debug message (#306) 2016-08-27 16:38:42 +03:00
Behdad Esfahbod a5efaac4ff Replace a couple of malloc()s with calloc() 2015-10-02 08:02:29 +01:00
Behdad Esfahbod 26ba4d1e1f Fix segfault with empty buffer in hb_shape_plan_execute()
Move the empty-buffer check from hb_shape_full() to hb_shape_plan_execute().

Reported by Simon Cozens.
2015-10-02 07:25:52 +01:00
Sascha Brawer 01c3a88543 Fix "Since:" tags
Based on data from http://upstream-tracker.org/versions/harfbuzz.html
Resolves #103
2015-06-01 13:25:27 +02:00
Behdad Esfahbod eb0bf3ae66 Relax inert checks
Previously, when creating an object from inert inputs (eg:
"hb_font_create(hb_face_get_empty())") we returned the inert
empty object.  This is not helpful as there are legitimate
usecases to do that.

We now never return the inert object unless allocation failed.

Tests are revised to reflect.
2015-04-09 19:16:57 -07:00
Behdad Esfahbod 30eed75de2 [shape-plan] Fix typo!
The only effect is, if shaper_list was not NULL and no shaper was found,
we now don't insert anything into cache and return earlier.
2014-08-12 17:15:09 -04:00
Behdad Esfahbod dc9aba6fc5 [shape-plan] Better debug messages 2014-08-12 17:14:36 -04:00
Behdad Esfahbod e956c65bf7 [shape-plan] Simplify macro 2014-08-12 17:06:50 -04:00
Behdad Esfahbod 8d5eebc0c6 [shape-plan] Fix shape-plan caching with more than one requested shaper
Wasn't breaking out of loop, ouch!

http://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg1246370.html
2014-08-12 17:06:50 -04:00
Behdad Esfahbod bc3d0dc601 [shape-plan] Add debug tracing 2014-08-12 17:06:50 -04:00
Behdad Esfahbod dac86026a6 Fix some cppcheck warnings
Bug 77800 - cppcheck reports
2014-06-03 17:57:00 -04:00
Behdad Esfahbod f47b921954 Fix unsafe shape_plan->face dependency 2013-12-02 05:57:27 -05:00
Jonathan Kew ca8d96c8ba cache shape plans even if (global) user features are set 2013-12-02 05:22:00 -05:00
Behdad Esfahbod 8ffa528f28 Add note about unsafe shape_plan->face
Will fix by removing shape_plan->face completely.
2013-12-02 05:17:14 -05:00
Behdad Esfahbod 085d4291a9 [introspection] Disable constructors for now
Since our types are not associated with their methods, marking
constructors makes them inaccessible from bindings.  Undo for now.
2013-09-12 17:14:33 -04:00
Behdad Esfahbod 288f289997 [docs/introspection] More annotations 2013-09-06 17:30:54 -04:00
Behdad Esfahbod 7abddbb47a Add assertions for a couple programmer errors 2013-02-15 07:46:57 -05:00
Behdad Esfahbod 7c5b7fe686 Fix hb_shape_plan_get_shaper() 2012-11-22 16:33:46 -05:00
Behdad Esfahbod f9edd5d56b Implement hb_shape_plan_get_shaper()
Untested.
2012-11-16 13:23:37 -08:00
Behdad Esfahbod f30641038b Bunch of independent changes (ouch)
API additions:

	hb_segment_properties_t
	HB_SEGMENT_PROPERTIES_DEFAULT
	hb_segment_properties_equal()
	hb_segment_properties_hash()

	hb_buffer_set_segment_properties()
	hb_buffer_get_segment_properties()

	hb_ot_layout_glyph_class_t

	hb_shape_plan_t
	hb_shape_plan_create()
	hb_shape_plan_create_cached()
	hb_shape_plan_get_empty()
	hb_shape_plan_reference()
	hb_shape_plan_destroy()
	hb_shape_plan_set_user_data()
	hb_shape_plan_get_user_data()
	hb_shape_plan_execute()

	hb_ot_shape_plan_collect_lookups()

API changes:

	Rename hb_ot_layout_feature_get_lookup_indexes() to
	hb_ot_layout_feature_get_lookups().

New header file:

	hb-shape-plan.h

And a bunch of prototyped but not implemented stuff.  Coming soon.
(Tests fail because of the prototypes right now.)
2012-11-15 18:48:10 -08:00
Behdad Esfahbod 4c8ac4f47e Misc minor fixes 2012-08-08 17:44:19 -04:00
Behdad Esfahbod 801298b590 Fix cast
https://bugs.freedesktop.org/show_bug.cgi?id=53233
2012-08-08 14:26:36 -04:00
Behdad Esfahbod 46ee108ef8 Fix leak 2012-08-03 18:21:13 -07:00
Behdad Esfahbod 5393e3a62b [OT] Minor refactoring 2012-08-02 09:24:35 -04:00
Behdad Esfahbod ef6e9cec33 Fixup bb0e4ba3e9 2012-07-29 21:35:22 -04:00
Behdad Esfahbod bb0e4ba3e9 Minor 2012-07-29 17:34:14 -04:00
Behdad Esfahbod 2f87cebe10 Implement shape_plan caching
Should give us some performance boost.
2012-07-27 04:20:39 -04:00
Behdad Esfahbod e9eb9503e9 Add default_shaper_list to shape_plan 2012-07-27 03:16:22 -04:00
Behdad Esfahbod 3b7c4e2706 Don't fail choosing shaper on planning failure
Shapers have a chance to reject a font in face shaper_data creation.
No need to allow failing during planning.
2012-07-27 03:12:23 -04:00