)]}'
{
  "commit": "4871f2277738fa7e9232d25424c008b36dae4711",
  "tree": "050146b76e6a7f80cc50c856081ac92110dc1956",
  "parents": [
    "ab83da71426195dad58a85e2caff213358c8461d"
  ],
  "author": {
    "name": "halcanary",
    "email": "halcanary@google.com",
    "time": "Fri Aug 26 13:17:44 2016 -0700"
  },
  "committer": {
    "name": "Commit bot",
    "email": "commit-bot@chromium.org",
    "time": "Fri Aug 26 13:17:44 2016 -0700"
  },
  "message": "SkPDF: Glyph validation change\n\nInstead of mapping invaid glyphIDs to zero or maxGlyphID,\ndon\u0027t draw them at all.\n\nValidate glyphs when glyph is written, not ahead of time.\n\nDon\u0027t allocate array to copy user-provided glyphs.\n\nEasy early exit from SkPDFDevice::internalDrawText()\n    GlyphPositioner::flush() called ~GlyphPositioner()\n    SkScopeExit class now exists.\n\nAssume SkTypeface* pointers are now never null in more\nplaces.\n\nprecalculate alignmentFactor to clean up code.\n\nSkPDFDevice::updateFont must be called with validated\nglyphID.  Skip bad glyphs to make this true.\n\nSkPDFDevice::updateFont always succeeds.\n\nSkPDFFont::GetFontResource always succeeds (preconditions are\nasserted).  If GetMetrics fails, don\u0027t call GetFontResource.\n\nSkPDFFont::glyphsToPDFFontEncodingCount() becomes\nSkPDFFont::countStretch() and is inlined.\n\nSkPDFFont::glyphsToPDFFontEncoding now works one Glyph at a\ntime and is inlined.\n\nSkPDFFont::noteGlyphUsage() operates one glyph at a time.\n\nAdd SkScopeExit.h; also a unit test for it.\n\nSkPostConfig: Fix SK_UNUSED for Win32.\n\nNo public API changes.\nTBR\u003dreed@google.com\n\nBUG\u003d625995\n\nGOLD_TRYBOT_URL\u003d https://gold.skia.org/search?issue\u003d2278703002\n\nReview-Url: https://codereview.chromium.org/2278703002\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "97c868f30febc7f057bb5c7da8aa9d066203660f",
      "old_mode": 33188,
      "old_path": "include/core/SkPostConfig.h",
      "new_id": "1b1cb3e751e7273d984ef48212ce266159b85136",
      "new_mode": 33188,
      "new_path": "include/core/SkPostConfig.h"
    },
    {
      "type": "modify",
      "old_id": "a36125f38090f26fa574e36a2c2ac0bb31808cb9",
      "old_mode": 33188,
      "old_path": "src/pdf/SkPDFDevice.cpp",
      "new_id": "24df879a9d1b27b6318feb96ece87ace73aa3563",
      "new_mode": 33188,
      "new_path": "src/pdf/SkPDFDevice.cpp"
    },
    {
      "type": "modify",
      "old_id": "b9ef50151858e6f185c2ecdf944d19f51baa8006",
      "old_mode": 33188,
      "old_path": "src/pdf/SkPDFDevice.h",
      "new_id": "79b272d9ac260f5c156b36c14196926a28090253",
      "new_mode": 33188,
      "new_path": "src/pdf/SkPDFDevice.h"
    },
    {
      "type": "modify",
      "old_id": "389df62fd5da133041c66a5d8f81a446ad3cabf5",
      "old_mode": 33188,
      "old_path": "src/pdf/SkPDFFont.cpp",
      "new_id": "d7ef8123a2b8ad1832d5b4e8d86a0253442a65d9",
      "new_mode": 33188,
      "new_path": "src/pdf/SkPDFFont.cpp"
    },
    {
      "type": "modify",
      "old_id": "abf164c0137b503fd09827fecce39eb16cab69f8",
      "old_mode": 33188,
      "old_path": "src/pdf/SkPDFFont.h",
      "new_id": "9f33819ed84fc501014e0cb0b15ae6e39ffd4faa",
      "new_mode": 33188,
      "new_path": "src/pdf/SkPDFFont.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5b7bcdc07686cb334417659cb0d312dcf36a9c53",
      "new_mode": 33188,
      "new_path": "src/pdf/SkScopeExit.h"
    },
    {
      "type": "modify",
      "old_id": "3130e6f95bd1edf99cdccd74b600e921abe68ab9",
      "old_mode": 33188,
      "old_path": "tests/CPlusPlusEleven.cpp",
      "new_id": "bbd8a12f88dcee4c03505af4f8e98717d88a8c97",
      "new_mode": 33188,
      "new_path": "tests/CPlusPlusEleven.cpp"
    }
  ]
}
