Behdad Esfahbod [Wed, 28 Apr 2010 17:33:09 +0000 (13:33 -0400)]
Fix compiler warning about value unused
Behdad Esfahbod [Wed, 28 Apr 2010 17:29:55 +0000 (13:29 -0400)]
[object] Make debug code always available to the compiler
Such that we don't break debug build all the time.
Behdad Esfahbod [Wed, 28 Apr 2010 17:18:41 +0000 (13:18 -0400)]
Minor
Behdad Esfahbod [Wed, 28 Apr 2010 17:16:38 +0000 (13:16 -0400)]
[blob] Make debug code always available to the compiler
Such that we don't break debug build all the time.
Behdad Esfahbod [Wed, 28 Apr 2010 17:10:36 +0000 (13:10 -0400)]
Fix build. Ouch!
Behdad Esfahbod [Wed, 28 Apr 2010 17:09:40 +0000 (13:09 -0400)]
Fix debug build
Behdad Esfahbod [Wed, 28 Apr 2010 03:28:10 +0000 (23:28 -0400)]
[object] Actually handle malloc() failure
Caught by John Daggett.
Behdad Esfahbod [Mon, 26 Apr 2010 14:07:35 +0000 (10:07 -0400)]
Fix Device::get_size() calculation
Behdad Esfahbod [Mon, 26 Apr 2010 03:01:45 +0000 (23:01 -0400)]
Rename Var to Obj
Behdad Esfahbod [Mon, 26 Apr 2010 02:51:05 +0000 (22:51 -0400)]
Remove use of flexible arrays
Also remove wrong ASSERT_SIZE that would trigger only when not using
flexible arrays (which was the case on win32, but not with gcc).
Behdad Esfahbod [Sat, 24 Apr 2010 00:49:18 +0000 (20:49 -0400)]
Cleanup hb_face_create_for_data()
Behdad Esfahbod [Fri, 23 Apr 2010 23:59:53 +0000 (19:59 -0400)]
Allow get_table() to return NULL
Behdad Esfahbod [Fri, 23 Apr 2010 23:43:40 +0000 (19:43 -0400)]
Typo
Behdad Esfahbod [Fri, 23 Apr 2010 21:53:32 +0000 (17:53 -0400)]
Remove lock_instance()
Behdad Esfahbod [Fri, 23 Apr 2010 20:35:01 +0000 (16:35 -0400)]
Add different casts from pointer and ref to avoid bugs
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.
Behdad Esfahbod [Fri, 23 Apr 2010 19:19:50 +0000 (15:19 -0400)]
Add TODO
Behdad Esfahbod [Fri, 23 Apr 2010 18:56:55 +0000 (14:56 -0400)]
Zero glyph metrics before calling user callback
Behdad Esfahbod [Fri, 23 Apr 2010 18:44:55 +0000 (14:44 -0400)]
More warning fixes
Behdad Esfahbod [Fri, 23 Apr 2010 18:40:36 +0000 (14:40 -0400)]
Remove unused parameter
Behdad Esfahbod [Fri, 23 Apr 2010 18:39:10 +0000 (14:39 -0400)]
Fix compile warnings (HB_GNUC_UNUSED)
Behdad Esfahbod [Fri, 23 Apr 2010 18:07:34 +0000 (14:07 -0400)]
No need to keep blob in sanitize context
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.
Behdad Esfahbod [Fri, 23 Apr 2010 17:48:06 +0000 (13:48 -0400)]
[blob] Fallback to copying if mprotect() fails
Behdad Esfahbod [Fri, 23 Apr 2010 17:32:03 +0000 (13:32 -0400)]
Cleanup OpenTypeFontFile
Behdad Esfahbod [Fri, 23 Apr 2010 16:33:02 +0000 (12:33 -0400)]
Properly define separate structs for TTCHeader and TTCHeaderVersion1
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.
Behdad Esfahbod [Thu, 22 Apr 2010 22:47:03 +0000 (18:47 -0400)]
Add comment re bsearch effect on sanitize
Behdad Esfahbod [Thu, 22 Apr 2010 22:33:12 +0000 (18:33 -0400)]
Cosmetic
Behdad Esfahbod [Thu, 22 Apr 2010 22:29:09 +0000 (18:29 -0400)]
Convert the last set of cast macros to templates
Behdad Esfahbod [Thu, 22 Apr 2010 20:52:09 +0000 (16:52 -0400)]
Remove unused macro
Behdad Esfahbod [Thu, 22 Apr 2010 20:51:42 +0000 (16:51 -0400)]
Cleanup Extension sanitize()
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.
Behdad Esfahbod [Thu, 22 Apr 2010 18:11:33 +0000 (14:11 -0400)]
More sanitize cleanup
Behdad Esfahbod [Thu, 22 Apr 2010 17:59:39 +0000 (13:59 -0400)]
Minor cleanup of sanitize
Done with an audit of all sanitize()
Behdad Esfahbod [Thu, 22 Apr 2010 17:50:22 +0000 (13:50 -0400)]
Check for (impossible) overflow
Behdad Esfahbod [Thu, 22 Apr 2010 17:37:58 +0000 (13:37 -0400)]
Cleanup ContextFormat3 sanitize
Behdad Esfahbod [Thu, 22 Apr 2010 17:34:00 +0000 (13:34 -0400)]
Add comment
Behdad Esfahbod [Thu, 22 Apr 2010 17:26:21 +0000 (13:26 -0400)]
Minor
Behdad Esfahbod [Thu, 22 Apr 2010 17:22:41 +0000 (13:22 -0400)]
Remove integrity check in Tag sanitize
Serves no useful purpose.
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.
Behdad Esfahbod [Thu, 22 Apr 2010 15:15:46 +0000 (11:15 -0400)]
Add coment
Behdad Esfahbod [Thu, 22 Apr 2010 14:54:26 +0000 (10:54 -0400)]
Remove unnecessary casts
Behdad Esfahbod [Thu, 22 Apr 2010 14:47:12 +0000 (10:47 -0400)]
Avoid overflow in TableDirectory sanitize
Behdad Esfahbod [Thu, 22 Apr 2010 14:43:30 +0000 (10:43 -0400)]
Make casts more explicit
Behdad Esfahbod [Thu, 22 Apr 2010 14:26:35 +0000 (10:26 -0400)]
Make sure semicolon is expected after DEFINE_NULL_DATA()
Behdad Esfahbod [Thu, 22 Apr 2010 05:01:35 +0000 (01:01 -0400)]
Improve Subst/Pos SubTable access and sanitize
Behdad Esfahbod [Thu, 22 Apr 2010 04:58:49 +0000 (00:58 -0400)]
Simplify Extension offset now that our int types have no alignment
Behdad Esfahbod [Thu, 22 Apr 2010 04:49:16 +0000 (00:49 -0400)]
Sanitize shallow in Lookup since the generic SubLookup has no methods
Behdad Esfahbod [Thu, 22 Apr 2010 04:45:42 +0000 (00:45 -0400)]
Watch for overflow in Array sanitize
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
Behdad Esfahbod [Thu, 22 Apr 2010 04:23:14 +0000 (00:23 -0400)]
Cosmetic
Behdad Esfahbod [Thu, 22 Apr 2010 04:19:30 +0000 (00:19 -0400)]
Simplify Lookup sanitize
Behdad Esfahbod [Thu, 22 Apr 2010 04:11:43 +0000 (00:11 -0400)]
Change header comment
Behdad Esfahbod [Thu, 22 Apr 2010 03:57:01 +0000 (23:57 -0400)]
More cast simplification
Behdad Esfahbod [Thu, 22 Apr 2010 03:41:26 +0000 (23:41 -0400)]
Rename ConstCharP to CharP (overloaded now)
Behdad Esfahbod [Thu, 22 Apr 2010 03:30:48 +0000 (23:30 -0400)]
Cleanup de-const-casting during sanitize
Behdad Esfahbod [Thu, 22 Apr 2010 03:13:33 +0000 (23:13 -0400)]
Add more comments
Behdad Esfahbod [Thu, 22 Apr 2010 03:12:54 +0000 (23:12 -0400)]
Add comment
Behdad Esfahbod [Thu, 22 Apr 2010 03:11:45 +0000 (23:11 -0400)]
Add comment
Behdad Esfahbod [Thu, 22 Apr 2010 03:01:00 +0000 (23:01 -0400)]
Improve comment
Behdad Esfahbod [Thu, 22 Apr 2010 02:49:56 +0000 (22:49 -0400)]
Further simplify IntType struct defs
Behdad Esfahbod [Thu, 22 Apr 2010 02:37:31 +0000 (22:37 -0400)]
Rename const_array() to array() (overloaded)
Behdad Esfahbod [Thu, 22 Apr 2010 02:30:36 +0000 (22:30 -0400)]
Remove ArrayAfter, use StructAfter in place
Behdad Esfahbod [Wed, 21 Apr 2010 19:56:11 +0000 (15:56 -0400)]
Convert NEXT() and ARRAY_AFTER() macros to templates
Behdad Esfahbod [Wed, 21 Apr 2010 17:35:36 +0000 (13:35 -0400)]
Use templates for const char * casts
Behdad Esfahbod [Wed, 21 Apr 2010 08:19:51 +0000 (04:19 -0400)]
Const correctness
Behdad Esfahbod [Wed, 21 Apr 2010 07:11:46 +0000 (03:11 -0400)]
Use templates for defining int typess
Behdad Esfahbod [Wed, 21 Apr 2010 06:15:39 +0000 (02:15 -0400)]
Remove unused macro
Behdad Esfahbod [Wed, 21 Apr 2010 06:14:44 +0000 (02:14 -0400)]
Rename macros
Behdad Esfahbod [Wed, 21 Apr 2010 06:13:55 +0000 (02:13 -0400)]
Minor
Behdad Esfahbod [Wed, 21 Apr 2010 06:12:45 +0000 (02:12 -0400)]
Move macros around
Behdad Esfahbod [Wed, 21 Apr 2010 06:11:59 +0000 (02:11 -0400)]
Remove unused macros
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
Behdad Esfahbod [Wed, 21 Apr 2010 06:02:57 +0000 (02:02 -0400)]
WIP
Behdad Esfahbod [Wed, 21 Apr 2010 04:49:40 +0000 (00:49 -0400)]
Improve comments
Behdad Esfahbod [Wed, 21 Apr 2010 04:40:50 +0000 (00:40 -0400)]
Remove stale TODO item
Behdad Esfahbod [Wed, 21 Apr 2010 04:32:47 +0000 (00:32 -0400)]
Use a function template instead of struct template for Null
Behdad Esfahbod [Wed, 21 Apr 2010 04:14:12 +0000 (00:14 -0400)]
Simplify Tag struct
Behdad Esfahbod [Wed, 21 Apr 2010 03:50:45 +0000 (23:50 -0400)]
Cosmetic
Behdad Esfahbod [Tue, 20 Apr 2010 19:52:47 +0000 (15:52 -0400)]
Fix Class operator return type
Behdad Esfahbod [Tue, 20 Apr 2010 19:51:53 +0000 (15:51 -0400)]
Add couple consts to operators
Behdad Esfahbod [Tue, 20 Apr 2010 19:25:27 +0000 (15:25 -0400)]
Remove ASSERT_SIZE_DATA
Behdad Esfahbod [Mon, 19 Apr 2010 06:34:10 +0000 (02:34 -0400)]
Round instead of trunc
Behdad Esfahbod [Mon, 19 Apr 2010 06:29:04 +0000 (02:29 -0400)]
Fix warnings
Behdad Esfahbod [Mon, 19 Apr 2010 06:27:56 +0000 (02:27 -0400)]
Fix debug build
Behdad Esfahbod [Sat, 27 Mar 2010 21:00:19 +0000 (17:00 -0400)]
Fix leak when duplicating blob
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.
Behdad Esfahbod [Thu, 15 Apr 2010 18:00:25 +0000 (14:00 -0400)]
Typo
Behdad Esfahbod [Wed, 10 Mar 2010 09:14:40 +0000 (04:14 -0500)]
Cosmetic
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.
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
Behdad Esfahbod [Tue, 23 Feb 2010 07:42:00 +0000 (02:42 -0500)]
Improve the alignment for NullPool
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
Behdad Esfahbod [Tue, 26 Jan 2010 17:58:59 +0000 (12:58 -0500)]
[GDEF] Fix bug in building synthetic GDEF
Behdad Esfahbod [Tue, 26 Jan 2010 17:17:37 +0000 (12:17 -0500)]
[TODO] Add kern/GPOS interaction
Behdad Esfahbod [Sun, 20 Dec 2009 22:05:02 +0000 (23:05 +0100)]
Fix compile with older FreeType
Behdad Esfahbod [Sun, 20 Dec 2009 20:42:14 +0000 (21:42 +0100)]
Indent
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'.
Behdad Esfahbod [Sun, 20 Dec 2009 20:23:56 +0000 (21:23 +0100)]
Fallback to 'kern' if no GPOS applied