)]}'
{
  "commit": "4b8487d83e0c10076a6c573cb3487790ce366607",
  "tree": "d4f5452c7a79b93a701b3a587d6a63782227f977",
  "parents": [
    "9b39755d104603d1163738f77637cc1923d4055b"
  ],
  "author": {
    "name": "Behdad Esfahbod",
    "email": "behdad@behdad.org",
    "time": "Tue Mar 16 03:46:17 2010 -0400"
  },
  "committer": {
    "name": "Behdad Esfahbod",
    "email": "behdad@behdad.org",
    "time": "Wed Apr 21 01:41:29 2010 -0400"
  },
  "message": "Fix the mystery bug!\n\nA couple bugs joined forces to exhibit the mystery behavior of\ncrashes / infinite loops on OS X / wrong kerning / invalid memory\naccess.  Pooh!\n\nThe bugs were involved:\n\n  - Wrong pointer math with ValueRecord in PairPosFormat1\n\n  - Fallout from avoiding flex arrays, code not correctly updated\n    to remove sizeof() usage.\n\nWe strictly never use sizeof() directly now.  And the PairPos code\nis cleaned up.  Should fix them all.  Bugs are:\n\n  Bug 605655 - Pango 1.26.2 introduces kerning bug\n  Bug 611229 - Pango reads from uninitialized memory\n  Bug 593240 - (pangoosx) Crash / infinite loop with Mac OS X\n\nWe were also doing wrong math converting Device adjustments to\nhb_position_t.  Fallout from FreeType days.  Should shift 16, not\n6.  Fixed that too.\n\nThere\u0027s still another bug: we don\u0027t sanitize Device records\nreferenced from value records.  Fixing that also.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "7b83813cd57413801fc30dee8009471b475a58d7",
      "old_mode": 33188,
      "old_path": "src/hb-open-file-private.hh",
      "new_id": "e72a09868944e30d69780389ae32209c4949b013",
      "new_mode": 33188,
      "new_path": "src/hb-open-file-private.hh"
    },
    {
      "type": "modify",
      "old_id": "6dc3e30bbf9c6d3a19be903fd62404ec2011f5b2",
      "old_mode": 33188,
      "old_path": "src/hb-open-type-private.hh",
      "new_id": "836a98f2af2cd7c98071c31d3f7692bc541c3d88",
      "new_mode": 33188,
      "new_path": "src/hb-open-type-private.hh"
    },
    {
      "type": "modify",
      "old_id": "9a0abe5ea993a37051231fe1c589df5f1b13094f",
      "old_mode": 33188,
      "old_path": "src/hb-ot-layout-common-private.hh",
      "new_id": "85f228e823b271138ed6e70580165795bf98a5c3",
      "new_mode": 33188,
      "new_path": "src/hb-ot-layout-common-private.hh"
    },
    {
      "type": "modify",
      "old_id": "e0d8cb7c90631aed65edf2f26dc61a9decba228a",
      "old_mode": 33188,
      "old_path": "src/hb-ot-layout-gpos-private.hh",
      "new_id": "08f8151a70cc4d67f5b1dbf131671da891538433",
      "new_mode": 33188,
      "new_path": "src/hb-ot-layout-gpos-private.hh"
    },
    {
      "type": "modify",
      "old_id": "41665a7ad56e3149fcf9d08f2175bc3726a63dc7",
      "old_mode": 33188,
      "old_path": "src/hb-ot-layout-gsubgpos-private.hh",
      "new_id": "43f3d75e226a8965fc22da8721dbbb77a2a85f95",
      "new_mode": 33188,
      "new_path": "src/hb-ot-layout-gsubgpos-private.hh"
    }
  ]
}
