Commit Graph

164 Commits

Author SHA1 Message Date
Garret Rieger 5e3cbed048 [subset] Switch building of glyph maps in subset plan to use iterators. 2019-05-09 14:52:01 -07:00
Garret Rieger 971020eca7 Add sink support for hb_hashmap_t and a reverse call to hb_pair_t. 2019-05-09 14:52:01 -07:00
Behdad Esfahbod 98eec3dd5f Add hb_pair_t(,) macro as alternative to hb_pair_t<,>
Just so it's easier to use it in other macros.
2019-05-09 13:15:36 -07:00
Behdad Esfahbod c9b287a867 Add hb_lidentity(), and rename hb_rvalue() to hb_ridentity() 2019-05-09 12:43:57 -07:00
Behdad Esfahbod 4c94bc63d9 Move hb_invoke() back to hb-algs.hh 2019-05-08 15:57:33 -07:00
Behdad Esfahbod 27b2093009 [map] Return rvalues from keys()/values() 2019-05-08 15:32:57 -07:00
Behdad Esfahbod 5ceaafa5de [algs] Fix identity return type 2019-05-08 15:08:33 -07:00
Behdad Esfahbod 4a101d8ffc Add hb_match 2019-05-08 09:16:33 -07:00
Behdad Esfahbod 26adefd9ea [algs] Try f[v] in hb_get() as last resort 2019-05-08 09:14:44 -07:00
Behdad Esfahbod 56d2d0294b [algs] Sprinkle hb_min/max with hb-forward salad
Let's see if fixes MSVC fail.  Though, the error doesn't make sense to me.

  hb-blob.cc
c:\projects\harfbuzz\src\hb-algs.hh(166): error C2440: 'return': cannot convert from 'unsigned int' to 'unsigned int &&' [C:\projects\harfbuzz\build\harfbuzz.vcxproj]
  c:\projects\harfbuzz\src\hb-algs.hh(166): note: You cannot bind an lvalue to an rvalue reference
  c:\projects\harfbuzz\src\hb-algs.hh(174): note: see reference to function template instantiation 'T &&<unnamed-type-hb_min>::impl<T,unsigned int&>(T &&,T2) const' being compiled
          with
          [
              T=unsigned int,
              T2=unsigned int &
          ]
2019-05-07 23:08:49 -07:00
Behdad Esfahbod e8bd5fc3fa [meta] Move hb_invoke from algs to meta 2019-05-07 22:29:40 -07:00
Behdad Esfahbod 6fa1f38070 [algs] Accept varargs in hb_min/max 2019-05-07 21:33:26 -07:00
Behdad Esfahbod 1ad07080c3 Rename 2019-05-07 21:00:23 -07:00
Behdad Esfahbod 83e3eabd84 Whitespace 2019-05-07 20:58:43 -07:00
Behdad Esfahbod 2b9402a86a Use universal references in hb_min/max 2019-05-07 20:55:33 -07:00
Behdad Esfahbod 41248cce0e Remove MIN/MAX in favor of hb_min/hb_max 2019-05-07 20:54:31 -07:00
Behdad Esfahbod 7654ebe3a5 Whitespace 2019-05-07 16:53:03 -07:00
Behdad Esfahbod 240f57e58d Rename hb_deref_pointer() to hb_deref() 2019-05-06 23:17:39 -07:00
Behdad Esfahbod bf22338f49 Remove dead code 2019-05-02 13:51:52 -07:00
Behdad Esfahbod 0268db1196 [map] Use hb_invoke() with pointer-to-method 2019-04-24 10:53:39 -04:00
Behdad Esfahbod 8f79a5750e [algs] Add more hb_forward<>()'s 2019-04-24 10:32:49 -04:00
Behdad Esfahbod 25dd88efc6 Err, fix hb_invoke() variadic 2019-04-22 17:47:07 -04:00
Behdad Esfahbod c862a532df Add variadic arguments to hb_invoke() 2019-04-22 17:32:19 -04:00
Behdad Esfahbod c67a0d581f Add HB_RETURN 2019-04-17 10:29:10 -04:00
Behdad Esfahbod 5b33427f2c Rename HB_AUTO_RETURN_EXPR to HB_AUTO_RETURN 2019-04-16 18:28:17 -04:00
Behdad Esfahbod da293b0e59 Use HB_AUTO_RETURN_EXPR in hb_min/max 2019-04-16 18:27:25 -04:00
Behdad Esfahbod 0241a40f2a Use auto return type for hb_first/hb_second 2019-04-16 18:26:30 -04:00
Behdad Esfahbod fe30fcd228 Use hb_deref_pointer() to reduce number of overloads 2019-04-16 17:34:06 -04:00
Behdad Esfahbod c918a6706f Properly prioritize hb_hash() 2019-04-16 17:28:18 -04:00
Behdad Esfahbod 75fd845a4a Move around 2019-04-16 17:22:29 -04:00
Behdad Esfahbod 973717175d Fix priorities 2019-04-16 16:50:07 -04:00
Behdad Esfahbod 54ece299bc Use type aliasing for meta-functions, ie. those returning a type 2019-04-16 16:45:53 -04:00
Behdad Esfahbod 4fc2d2d724 [meta] Flesh out hb_invoke() 2019-04-16 11:24:42 -04:00
Behdad Esfahbod e03d9395aa Comment 2019-04-16 11:20:16 -04:00
Behdad Esfahbod b8e763fd71 [meta] Add hb_invoke() 2019-04-16 10:54:24 -04:00
Behdad Esfahbod a3fcb9a370 [meta] Add HB_AUTO_RETURN_EXPR, HB_VOID_RETURN_EXPR, hb_priority, hb_has(), hb_get()
The first three based on range-v3.
2019-04-16 10:45:57 -04:00
Behdad Esfahbod 02d864aa26 Add HB_FUNCOBJ()
Fixes https://github.com/harfbuzz/harfbuzz/issues/1651
2019-04-15 15:39:30 -04:00
Behdad Esfahbod 38b1d0b9b2 Move static const to post-struct for a function object
Just sending this to bots to see if all happy, then turn it into macro and
apply everywhere.

Part of https://github.com/harfbuzz/harfbuzz/issues/1651
2019-04-15 12:45:21 -04:00
Behdad Esfahbod ecabdffc61 [algs] Add hb_min() and hb_max() 2019-04-03 16:06:34 -07:00
Behdad Esfahbod b189bbc48f Implement hashing of objects
Should be improved for hb_bytes_t.
2019-03-30 19:41:48 -07:00
Behdad Esfahbod d6b28057a5 Fix hb_hash(pointer) 2019-03-30 19:31:51 -07:00
Behdad Esfahbod 7fd8228326 [serialize] Towards maintaining hashmap 2019-03-30 19:16:20 -07:00
Behdad Esfahbod 4b7f4dbc0c Add hb_deref_pointer() 2019-03-30 13:48:32 -07:00
Behdad Esfahbod e70ccbe9ed Fix pair signature
Oh well.  Again, who does fully understand what is right???
2019-03-29 21:45:49 -07:00
Behdad Esfahbod bdd5a9c48d Add hb_hash()
I don't like the hb_remove_reference() hack, but necessary.
2019-03-28 21:58:07 -07:00
Behdad Esfahbod 0d7af5fb02 [algs] Use universal references for hb_pair()
Such that it carries lvalues inside.
2019-02-14 19:37:57 -08:00
Behdad Esfahbod 7d2376de33 Merge branch 'master' into iter 2019-02-13 22:13:37 -08:00
Behdad Esfahbod e75b22039f Move hb_addressof() to hb-meta.hh 2019-01-28 21:26:23 -05:00
Behdad Esfahbod 71157a4520 [meta] Remove _ft struct names
Using decltype() instead.
2019-01-28 21:20:12 -05:00
Behdad Esfahbod 9103bd056f [pair] Use decltype 2019-01-28 21:16:51 -05:00
Behdad Esfahbod d592bd16cd Try fixing MSVC build 2019-01-28 13:41:40 -05:00
Behdad Esfahbod 778c96b8d7 [iter] Fix hb_iter() 2019-01-27 00:50:54 +01:00
Behdad Esfahbod fbab07f9b3 [iter] Add hb_bool() and make hb_filter default to it for predicate 2019-01-27 00:44:45 +01:00
Behdad Esfahbod 313d63e240 [meta] Back to using _ft suffix for function-object types
Seprate namespace, cleaner, more clear.
2019-01-26 22:58:26 +01:00
Behdad Esfahbod 5adb113baf [meta] Mark function-objects as const 2019-01-26 22:15:59 +01:00
Behdad Esfahbod 090fe56dc6 Merge branch 'master' into iter 2019-01-25 16:06:52 +01:00
Behdad Esfahbod 420d8ac350 [algs] Add hb_iter()
Makes it nicer in pipelines.
2019-01-20 20:12:12 -05:00
Behdad Esfahbod 83cecd80d9 [iter] Default projection to identity 2019-01-20 20:12:12 -05:00
Behdad Esfahbod a699c6b17c [algs] Add hb_identity 2019-01-20 20:12:12 -05:00
Behdad Esfahbod 463cfb426f Fix unused-variable warnings
inline variables are not C++11, so mark them unused...
2019-01-20 20:12:12 -05:00
Behdad Esfahbod 528ea66f24 [algs] Fix hb_first() / hb_second() 2019-01-20 20:12:12 -05:00
Behdad Esfahbod 7cedf7f64c Change hb_first() and hb_second() to function objects 2019-01-20 20:12:12 -05:00
Behdad Esfahbod 3290c181c1 [algs] Whitespace 2019-01-20 20:12:12 -05:00
Behdad Esfahbod 6e3ad650d1 Rename hb-dsalgs to hb-algs 2019-01-20 20:12:12 -05:00