framework/uifw/harfbuzz.git
14 years agoAdd different casts from pointer and ref to avoid bugs
Behdad Esfahbod [Fri, 23 Apr 2010 20:35:01 +0000 (16:35 -0400)]
Add different casts from pointer and ref to avoid bugs

14 years agoRemove GET_FOR_DATA macros
Behdad Esfahbod [Fri, 23 Apr 2010 20:22:54 +0000 (16:22 -0400)]
Remove GET_FOR_DATA macros

The major-version check is now handled by sanitize.  If major
doesn't match, we reject and fall back to the Null object.

14 years agoAdd TODO
Behdad Esfahbod [Fri, 23 Apr 2010 19:19:50 +0000 (15:19 -0400)]
Add TODO

14 years agoZero glyph metrics before calling user callback
Behdad Esfahbod [Fri, 23 Apr 2010 18:56:55 +0000 (14:56 -0400)]
Zero glyph metrics before calling user callback

14 years agoMore warning fixes
Behdad Esfahbod [Fri, 23 Apr 2010 18:44:55 +0000 (14:44 -0400)]
More warning fixes

14 years agoRemove unused parameter
Behdad Esfahbod [Fri, 23 Apr 2010 18:40:36 +0000 (14:40 -0400)]
Remove unused parameter

14 years agoFix compile warnings (HB_GNUC_UNUSED)
Behdad Esfahbod [Fri, 23 Apr 2010 18:39:10 +0000 (14:39 -0400)]
Fix compile warnings (HB_GNUC_UNUSED)

14 years agoNo need to keep blob in sanitize context
Behdad Esfahbod [Fri, 23 Apr 2010 18:07:34 +0000 (14:07 -0400)]
No need to keep blob in sanitize context

14 years agoWhen sanitizing, delay making writable
Behdad Esfahbod [Fri, 23 Apr 2010 17:57:10 +0000 (13:57 -0400)]
When sanitizing, delay making writable

Before, as soon as we needed to make an edit, we tried to make the blob
writable inplace.  That grows code unnecessarily though.  We can simply
fail, make writable, then start again.  That's indeed what the fallback
was doing anyway.

14 years ago[blob] Fallback to copying if mprotect() fails
Behdad Esfahbod [Fri, 23 Apr 2010 17:48:06 +0000 (13:48 -0400)]
[blob] Fallback to copying if mprotect() fails

14 years agoCleanup OpenTypeFontFile
Behdad Esfahbod [Fri, 23 Apr 2010 17:32:03 +0000 (13:32 -0400)]
Cleanup OpenTypeFontFile

14 years agoProperly define separate structs for TTCHeader and TTCHeaderVersion1
Behdad Esfahbod [Fri, 23 Apr 2010 16:33:02 +0000 (12:33 -0400)]
Properly define separate structs for TTCHeader and TTCHeaderVersion1

14 years agoCleanup Extension lookups
Behdad Esfahbod [Fri, 23 Apr 2010 00:15:11 +0000 (20:15 -0400)]
Cleanup Extension lookups

Two things:

1. Allow nested Extension lookups.  The offset is always positive, so
it can't loop circularly.

2. Move the check for all Extension subtables having the same lookup
type to the correct place.  Before it wasn't really working.

14 years agoAdd comment re bsearch effect on sanitize
Behdad Esfahbod [Thu, 22 Apr 2010 22:47:03 +0000 (18:47 -0400)]
Add comment re bsearch effect on sanitize

14 years agoCosmetic
Behdad Esfahbod [Thu, 22 Apr 2010 22:33:12 +0000 (18:33 -0400)]
Cosmetic

14 years agoConvert the last set of cast macros to templates
Behdad Esfahbod [Thu, 22 Apr 2010 22:29:09 +0000 (18:29 -0400)]
Convert the last set of cast macros to templates

14 years agoRemove unused macro
Behdad Esfahbod [Thu, 22 Apr 2010 20:52:09 +0000 (16:52 -0400)]
Remove unused macro

14 years agoCleanup Extension sanitize()
Behdad Esfahbod [Thu, 22 Apr 2010 20:51:42 +0000 (16:51 -0400)]
Cleanup Extension sanitize()

14 years agoFail sanitize on major version mismatch
Behdad Esfahbod [Thu, 22 Apr 2010 18:15:11 +0000 (14:15 -0400)]
Fail sanitize on major version mismatch

We handle major-version differences via get_for_data(), so sanitize
should never see a major version mismatch.

14 years agoMore sanitize cleanup
Behdad Esfahbod [Thu, 22 Apr 2010 18:11:33 +0000 (14:11 -0400)]
More sanitize cleanup

14 years agoMinor cleanup of sanitize
Behdad Esfahbod [Thu, 22 Apr 2010 17:59:39 +0000 (13:59 -0400)]
Minor cleanup of sanitize

Done with an audit of all sanitize()

14 years agoCheck for (impossible) overflow
Behdad Esfahbod [Thu, 22 Apr 2010 17:50:22 +0000 (13:50 -0400)]
Check for (impossible) overflow

14 years agoCleanup ContextFormat3 sanitize
Behdad Esfahbod [Thu, 22 Apr 2010 17:37:58 +0000 (13:37 -0400)]
Cleanup ContextFormat3 sanitize

14 years agoAdd comment
Behdad Esfahbod [Thu, 22 Apr 2010 17:34:00 +0000 (13:34 -0400)]
Add comment

14 years agoMinor
Behdad Esfahbod [Thu, 22 Apr 2010 17:26:21 +0000 (13:26 -0400)]
Minor

14 years agoRemove integrity check in Tag sanitize
Behdad Esfahbod [Thu, 22 Apr 2010 17:22:41 +0000 (13:22 -0400)]
Remove integrity check in Tag sanitize

Serves no useful purpose.

14 years agoDon't sanitize raw table data
Behdad Esfahbod [Thu, 22 Apr 2010 15:06:30 +0000 (11:06 -0400)]
Don't sanitize raw table data

That part is performed by individual table sanitize.

14 years agoAdd coment
Behdad Esfahbod [Thu, 22 Apr 2010 15:15:46 +0000 (11:15 -0400)]
Add coment

14 years agoRemove unnecessary casts
Behdad Esfahbod [Thu, 22 Apr 2010 14:54:26 +0000 (10:54 -0400)]
Remove unnecessary casts

14 years agoAvoid overflow in TableDirectory sanitize
Behdad Esfahbod [Thu, 22 Apr 2010 14:47:12 +0000 (10:47 -0400)]
Avoid overflow in TableDirectory sanitize

14 years agoMake casts more explicit
Behdad Esfahbod [Thu, 22 Apr 2010 14:43:30 +0000 (10:43 -0400)]
Make casts more explicit

14 years agoMake sure semicolon is expected after DEFINE_NULL_DATA()
Behdad Esfahbod [Thu, 22 Apr 2010 14:26:35 +0000 (10:26 -0400)]
Make sure semicolon is expected after DEFINE_NULL_DATA()

14 years agoImprove Subst/Pos SubTable access and sanitize
Behdad Esfahbod [Thu, 22 Apr 2010 05:01:35 +0000 (01:01 -0400)]
Improve Subst/Pos SubTable access and sanitize

14 years agoSimplify Extension offset now that our int types have no alignment
Behdad Esfahbod [Thu, 22 Apr 2010 04:58:49 +0000 (00:58 -0400)]
Simplify Extension offset now that our int types have no alignment

14 years agoSanitize shallow in Lookup since the generic SubLookup has no methods
Behdad Esfahbod [Thu, 22 Apr 2010 04:49:16 +0000 (00:49 -0400)]
Sanitize shallow in Lookup since the generic SubLookup has no methods

14 years agoWatch for overflow in Array sanitize
Behdad Esfahbod [Thu, 22 Apr 2010 04:45:42 +0000 (00:45 -0400)]
Watch for overflow in Array sanitize

14 years agoRename const_sub_array to sub_array since all consts are implicit now
Behdad Esfahbod [Thu, 22 Apr 2010 04:27:39 +0000 (00:27 -0400)]
Rename const_sub_array to sub_array since all consts are implicit now

14 years agoCosmetic
Behdad Esfahbod [Thu, 22 Apr 2010 04:23:14 +0000 (00:23 -0400)]
Cosmetic

14 years agoSimplify Lookup sanitize
Behdad Esfahbod [Thu, 22 Apr 2010 04:19:30 +0000 (00:19 -0400)]
Simplify Lookup sanitize

14 years agoChange header comment
Behdad Esfahbod [Thu, 22 Apr 2010 04:11:43 +0000 (00:11 -0400)]
Change header comment

14 years agoMore cast simplification
Behdad Esfahbod [Thu, 22 Apr 2010 03:57:01 +0000 (23:57 -0400)]
More cast simplification

14 years agoRename ConstCharP to CharP (overloaded now)
Behdad Esfahbod [Thu, 22 Apr 2010 03:41:26 +0000 (23:41 -0400)]
Rename ConstCharP to CharP (overloaded now)

14 years agoCleanup de-const-casting during sanitize
Behdad Esfahbod [Thu, 22 Apr 2010 03:30:48 +0000 (23:30 -0400)]
Cleanup de-const-casting during sanitize

14 years agoAdd more comments
Behdad Esfahbod [Thu, 22 Apr 2010 03:13:33 +0000 (23:13 -0400)]
Add more comments

14 years agoAdd comment
Behdad Esfahbod [Thu, 22 Apr 2010 03:12:54 +0000 (23:12 -0400)]
Add comment

14 years agoAdd comment
Behdad Esfahbod [Thu, 22 Apr 2010 03:11:45 +0000 (23:11 -0400)]
Add comment

14 years agoImprove comment
Behdad Esfahbod [Thu, 22 Apr 2010 03:01:00 +0000 (23:01 -0400)]
Improve comment

14 years agoFurther simplify IntType struct defs
Behdad Esfahbod [Thu, 22 Apr 2010 02:49:56 +0000 (22:49 -0400)]
Further simplify IntType struct defs

14 years agoRename const_array() to array() (overloaded)
Behdad Esfahbod [Thu, 22 Apr 2010 02:37:31 +0000 (22:37 -0400)]
Rename const_array() to array() (overloaded)

14 years agoRemove ArrayAfter, use StructAfter in place
Behdad Esfahbod [Thu, 22 Apr 2010 02:30:36 +0000 (22:30 -0400)]
Remove ArrayAfter, use StructAfter in place

14 years agoConvert NEXT() and ARRAY_AFTER() macros to templates
Behdad Esfahbod [Wed, 21 Apr 2010 19:56:11 +0000 (15:56 -0400)]
Convert NEXT() and ARRAY_AFTER() macros to templates

14 years agoUse templates for const char * casts
Behdad Esfahbod [Wed, 21 Apr 2010 17:35:36 +0000 (13:35 -0400)]
Use templates for const char * casts

14 years agoConst correctness
Behdad Esfahbod [Wed, 21 Apr 2010 08:19:51 +0000 (04:19 -0400)]
Const correctness

14 years agoUse templates for defining int typess
Behdad Esfahbod [Wed, 21 Apr 2010 07:11:46 +0000 (03:11 -0400)]
Use templates for defining int typess

14 years agoRemove unused macro
Behdad Esfahbod [Wed, 21 Apr 2010 06:15:39 +0000 (02:15 -0400)]
Remove unused macro

14 years agoRename macros
Behdad Esfahbod [Wed, 21 Apr 2010 06:14:44 +0000 (02:14 -0400)]
Rename macros

14 years agoMinor
Behdad Esfahbod [Wed, 21 Apr 2010 06:13:55 +0000 (02:13 -0400)]
Minor

14 years agoMove macros around
Behdad Esfahbod [Wed, 21 Apr 2010 06:12:45 +0000 (02:12 -0400)]
Move macros around

14 years agoRemove unused macros
Behdad Esfahbod [Wed, 21 Apr 2010 06:11:59 +0000 (02:11 -0400)]
Remove unused macros

14 years agoGNOME Bug 613015 - [HB] Does not sanitize Device tables referenced from ValueRecords
Behdad Esfahbod [Mon, 29 Mar 2010 04:04:12 +0000 (00:04 -0400)]
GNOME Bug 613015 - [HB] Does not sanitize Device tables referenced from ValueRecords

14 years agoWIP
Behdad Esfahbod [Wed, 21 Apr 2010 06:02:57 +0000 (02:02 -0400)]
WIP

14 years agoImprove comments
Behdad Esfahbod [Wed, 21 Apr 2010 04:49:40 +0000 (00:49 -0400)]
Improve comments

14 years agoRemove stale TODO item
Behdad Esfahbod [Wed, 21 Apr 2010 04:40:50 +0000 (00:40 -0400)]
Remove stale TODO item

14 years agoUse a function template instead of struct template for Null
Behdad Esfahbod [Wed, 21 Apr 2010 04:32:47 +0000 (00:32 -0400)]
Use a function template instead of struct template for Null

14 years agoSimplify Tag struct
Behdad Esfahbod [Wed, 21 Apr 2010 04:14:12 +0000 (00:14 -0400)]
Simplify Tag struct

14 years agoCosmetic
Behdad Esfahbod [Wed, 21 Apr 2010 03:50:45 +0000 (23:50 -0400)]
Cosmetic

14 years agoFix Class operator return type
Behdad Esfahbod [Tue, 20 Apr 2010 19:52:47 +0000 (15:52 -0400)]
Fix Class operator return type

14 years agoAdd couple consts to operators
Behdad Esfahbod [Tue, 20 Apr 2010 19:51:53 +0000 (15:51 -0400)]
Add couple consts to operators

14 years agoRemove ASSERT_SIZE_DATA
Behdad Esfahbod [Tue, 20 Apr 2010 19:25:27 +0000 (15:25 -0400)]
Remove ASSERT_SIZE_DATA

14 years agoRound instead of trunc
Behdad Esfahbod [Mon, 19 Apr 2010 06:34:10 +0000 (02:34 -0400)]
Round instead of trunc

14 years agoFix warnings
Behdad Esfahbod [Mon, 19 Apr 2010 06:29:04 +0000 (02:29 -0400)]
Fix warnings

14 years agoFix debug build
Behdad Esfahbod [Mon, 19 Apr 2010 06:27:56 +0000 (02:27 -0400)]
Fix debug build

14 years agoFix leak when duplicating blob
Behdad Esfahbod [Sat, 27 Mar 2010 21:00:19 +0000 (17:00 -0400)]
Fix leak when duplicating blob

14 years agoFix the mystery bug!
Behdad Esfahbod [Tue, 16 Mar 2010 07:46:17 +0000 (03:46 -0400)]
Fix the mystery bug!

A couple bugs joined forces to exhibit the mystery behavior of
crashes / infinite loops on OS X / wrong kerning / invalid memory
access.  Pooh!

The bugs were involved:

  - Wrong pointer math with ValueRecord in PairPosFormat1

  - Fallout from avoiding flex arrays, code not correctly updated
    to remove sizeof() usage.

We strictly never use sizeof() directly now.  And the PairPos code
is cleaned up.  Should fix them all.  Bugs are:

  Bug 605655 - Pango 1.26.2 introduces kerning bug
  Bug 611229 - Pango reads from uninitialized memory
  Bug 593240 - (pangoosx) Crash / infinite loop with Mac OS X

We were also doing wrong math converting Device adjustments to
hb_position_t.  Fallout from FreeType days.  Should shift 16, not
6.  Fixed that too.

There's still another bug: we don't sanitize Device records
referenced from value records.  Fixing that also.

14 years agoTypo
Behdad Esfahbod [Thu, 15 Apr 2010 18:00:25 +0000 (14:00 -0400)]
Typo

14 years agoCosmetic
Behdad Esfahbod [Wed, 10 Mar 2010 09:14:40 +0000 (04:14 -0500)]
Cosmetic

14 years ago[ft] Check stream->read instead of stream->base
Behdad Esfahbod [Tue, 2 Mar 2010 03:33:45 +0000 (22:33 -0500)]
[ft] Check stream->read instead of stream->base

The former is more robust.  See discussion on freetype-devel.

14 years agoMake blob unlocking 64bit-safe
Behdad Esfahbod [Tue, 23 Feb 2010 21:47:51 +0000 (16:47 -0500)]
Make blob unlocking 64bit-safe

GNOME Bug 604128 - Applications crash when displaying Hebrew characters

14 years agoImprove the alignment for NullPool
Behdad Esfahbod [Tue, 23 Feb 2010 07:42:00 +0000 (02:42 -0500)]
Improve the alignment for NullPool

14 years agoUse __attribute__((unused)) only with gcc 4 and later
Behdad Esfahbod [Wed, 17 Feb 2010 20:14:57 +0000 (15:14 -0500)]
Use __attribute__((unused)) only with gcc 4 and later

See discussion at:
https://bugzilla.gnome.org/show_bug.cgi?id=610183

14 years ago[GDEF] Fix bug in building synthetic GDEF
Behdad Esfahbod [Tue, 26 Jan 2010 17:58:59 +0000 (12:58 -0500)]
[GDEF] Fix bug in building synthetic GDEF

14 years ago[TODO] Add kern/GPOS interaction
Behdad Esfahbod [Tue, 26 Jan 2010 17:17:37 +0000 (12:17 -0500)]
[TODO] Add kern/GPOS interaction

14 years agoFix compile with older FreeType
Behdad Esfahbod [Sun, 20 Dec 2009 22:05:02 +0000 (23:05 +0100)]
Fix compile with older FreeType

14 years agoIndent
Behdad Esfahbod [Sun, 20 Dec 2009 20:42:14 +0000 (21:42 +0100)]
Indent

14 years agoRevert "Fallback to 'kern' if no GPOS applied"
Behdad Esfahbod [Sun, 20 Dec 2009 20:26:24 +0000 (21:26 +0100)]
Revert "Fallback to 'kern' if no GPOS applied"

This reverts commit d740c8f78bcbe80a8bcd8a9468830a406da37cc0.

The change is wrong.  If there is a GPOS table, we should not use 'kern'.

14 years agoFallback to 'kern' if no GPOS applied
Behdad Esfahbod [Sun, 20 Dec 2009 20:23:56 +0000 (21:23 +0100)]
Fallback to 'kern' if no GPOS applied

14 years agoRemove glibism!
Behdad Esfahbod [Sun, 20 Dec 2009 20:03:11 +0000 (21:03 +0100)]
Remove glibism!

14 years agoOops, add file.
Behdad Esfahbod [Sun, 20 Dec 2009 19:59:51 +0000 (20:59 +0100)]
Oops, add file.

14 years agoHook OpenType shaping up
Behdad Esfahbod [Sun, 20 Dec 2009 19:58:26 +0000 (20:58 +0100)]
Hook OpenType shaping up

Default features only for now.

14 years agoPass features down
Behdad Esfahbod [Sun, 20 Dec 2009 18:01:14 +0000 (19:01 +0100)]
Pass features down

14 years agoAvoid overflow
Behdad Esfahbod [Sun, 20 Dec 2009 17:22:28 +0000 (18:22 +0100)]
Avoid overflow

14 years agoRefactor hb_shape a bit
Behdad Esfahbod [Sun, 20 Dec 2009 16:58:25 +0000 (17:58 +0100)]
Refactor hb_shape a bit

14 years agoAdd TrueType kern support
Behdad Esfahbod [Sun, 20 Dec 2009 16:24:05 +0000 (17:24 +0100)]
Add TrueType kern support

14 years agoDirect unicode->get_mirroring directly
Behdad Esfahbod [Sun, 20 Dec 2009 15:29:17 +0000 (16:29 +0100)]
Direct unicode->get_mirroring directly

14 years agoDo mirroring
Behdad Esfahbod [Sun, 20 Dec 2009 15:28:01 +0000 (16:28 +0100)]
Do mirroring

14 years agoProtect against NULL funcs
Behdad Esfahbod [Sun, 20 Dec 2009 15:25:18 +0000 (16:25 +0100)]
Protect against NULL funcs

14 years agoAdd hb_unicode_get_*() functions
Behdad Esfahbod [Sun, 20 Dec 2009 14:29:16 +0000 (15:29 +0100)]
Add hb_unicode_get_*() functions

14 years agoWe'll have to link to libstdc++ if linking to ICU, so disable test for now
Behdad Esfahbod [Sun, 20 Dec 2009 13:56:25 +0000 (14:56 +0100)]
We'll have to link to libstdc++ if linking to ICU, so disable test for now

We have to get rid of the ICU in main lib.  Still thinking about best way
to do it.

14 years agoExplicitly track whether the buffer has positions
Behdad Esfahbod [Sun, 20 Dec 2009 13:50:42 +0000 (14:50 +0100)]
Explicitly track whether the buffer has positions

14 years agoAdd HB_DIRECTION_IS_FORWARD/BACKWARD
Behdad Esfahbod [Sun, 20 Dec 2009 12:58:50 +0000 (13:58 +0100)]
Add HB_DIRECTION_IS_FORWARD/BACKWARD