Commit Graph

92 Commits

Author SHA1 Message Date
Behdad Esfahbod
0795b784dd Cosmetic 2010-04-22 00:23:14 -04:00
Behdad Esfahbod
2d98d3bbaa Simplify Lookup sanitize 2010-04-22 00:19:30 -04:00
Behdad Esfahbod
c755cb3e3a Change header comment 2010-04-22 00:11:43 -04:00
Behdad Esfahbod
62c0fd7573 Cleanup de-const-casting during sanitize 2010-04-21 23:30:48 -04:00
Behdad Esfahbod
2cb08458f6 Rename const_array() to array() (overloaded) 2010-04-21 22:37:31 -04:00
Behdad Esfahbod
e961c86c57 Convert NEXT() and ARRAY_AFTER() macros to templates 2010-04-21 15:56:11 -04:00
Behdad Esfahbod
198facdc55 Use templates for const char * casts 2010-04-21 13:35:36 -04:00
Behdad Esfahbod
ffd321afd9 Simplify Tag struct 2010-04-21 01:55:09 -04:00
Behdad Esfahbod
00e23fcc6f Cosmetic 2010-04-21 01:55:03 -04:00
Behdad Esfahbod
a87072db5d Fix Class operator return type 2010-04-21 01:54:57 -04:00
Behdad Esfahbod
53d237ec63 Remove ASSERT_SIZE_DATA 2010-04-21 01:54:49 -04:00
Behdad Esfahbod
4b8487d83e 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.
2010-04-21 01:41:29 -04:00
Behdad Esfahbod
807b8aa486 Another C++ strictness fix
Pango Bug 602408 - Invalid C++ code breaks compile with Sun C++ Compiler
(Error: A union member cannot have a user-defined assignment operator)

According to the bug:

C++ Programming Language by Bjarne Stroustrup: Chapter 10.4.12 forbids
explicitly using of union members with constructors, destructors or assignment
operations.

So we use a set() method instead of the assignment operator.  Ugly, but hey,
that's life.
2009-11-19 20:35:01 -05:00
Behdad Esfahbod
d6387757de Fix sanitize 2009-11-11 17:15:03 -05:00
Behdad Esfahbod
48de3730cd Fix previous commit, ouch! 2009-11-04 16:59:50 -05:00
Behdad Esfahbod
e21899bc35 Fix array query API
The array query APIs now all do:

  - Return the total number of items
  - Take a start_offset, such that individual items can be fetched
  - The _count IN/OUT variable always has number of items written
    into the array upon return of the function
2009-11-04 16:36:14 -05:00
Behdad Esfahbod
d3480ba37f Don't use zero-sized arrays
It's not part of the standard and MSVC doesn't like it.  It makes the code
a lot less elegant than it used to be, but I think it should work now.
2009-11-03 10:47:29 -05:00
Behdad Esfahbod
6bec81aa3a Cosmetic 2009-11-02 19:17:36 -05:00
Behdad Esfahbod
aa87d95173 [HB] Fix lookup_flag ignoring
Reported by Keith Stribley on HarfBuzz list.
2009-11-02 14:40:48 -05:00
Behdad Esfahbod
3e2401f6c5 [HB] Rename DEBUG to TRACE where appropriate 2009-11-02 14:40:48 -05:00
Behdad Esfahbod
8f034d5849 Fix a few other pedantic warnings 2009-11-02 14:40:45 -05:00
Behdad Esfahbod
3e09722214 [HB] Fix more wrong method signatures 2009-11-02 14:40:44 -05:00
Behdad Esfahbod
822e99fe9a [HB] Fix wrong method signature 2009-11-02 14:40:44 -05:00
Behdad Esfahbod
cd33cb9ed8 [HB] More minor shuffling 2009-11-02 14:40:43 -05:00
Behdad Esfahbod
80e2aa2e1b [HB] Move code around 2009-11-02 14:40:43 -05:00
Behdad Esfahbod
3564ee5216 [HB] Correctly sanitize LigatureAttach 2009-11-02 14:40:43 -05:00
Behdad Esfahbod
20b035dad4 [HB] Put C++ inline's back
Apparetly in C++, inline means a totally different thing.
2009-11-02 14:40:36 -05:00
Behdad Esfahbod
284899ccbe [HB] Add a NEXT() macro 2009-11-02 14:40:35 -05:00
Behdad Esfahbod
bff3c0fde5 [HB] Remove clumsy macros and improve API 2009-11-02 14:40:34 -05:00
Behdad Esfahbod
62ed5850d9 [HB] Fix another sanitize() bug; hopefully it's the last one 2009-11-02 14:40:31 -05:00
Behdad Esfahbod
b28815c1f6 [HB] Add sanitize debugging facilities 2009-11-02 14:40:30 -05:00
Behdad Esfahbod
7edb430f91 [HB] Rename open-types to open-type; beauty 2009-11-02 14:40:30 -05:00
Behdad Esfahbod
738c54d9ca [HB] Tag sanitize() 2009-11-02 14:40:29 -05:00
Behdad Esfahbod
15164d9258 [HB] Fix mix warnings 2009-11-02 14:40:29 -05:00
Behdad Esfahbod
dc9c4d93cd [HB] Sanitize DeviceTable 2009-11-02 14:40:28 -05:00
Behdad Esfahbod
2b5a59c277 [HB] More cast cleanup 2009-11-02 14:40:28 -05:00
Behdad Esfahbod
196598bbcc [Hb] Use reinterpret casts instead of direct casts to char * 2009-11-02 14:40:28 -05:00
Behdad Esfahbod
e6ab2c59ba [HB] Simplify indirect sanitize() 2009-11-02 14:40:28 -05:00
Behdad Esfahbod
cf086adca1 [HB] Add comment 2009-11-02 14:40:28 -05:00
Behdad Esfahbod
cd3827ee56 [HB] More sanitize() 2009-11-02 14:40:28 -05:00
Behdad Esfahbod
70de50c11e [HB] Start sanitize() 2009-11-02 14:40:27 -05:00
Behdad Esfahbod
5f5b24f99f [OT] Rename C++ header files from *.h to *.hh 2009-11-02 14:40:27 -05:00