)]}'
{
  "commit": "5eb9f7b4542cca34d4af96ea43be362446a4794f",
  "tree": "b0a0fdd6b1c525bf3633d6de2b79b70058e2cc7d",
  "parents": [
    "a9c29e006f74fefd96d5c3eab9d8233b321b296a"
  ],
  "author": {
    "name": "Nico Weber",
    "email": "thakis@chromium.org",
    "time": "Fri Jul 18 09:14:35 2014 -0700"
  },
  "committer": {
    "name": "Nico Weber",
    "email": "thakis@chromium.org",
    "time": "Fri Jul 18 09:14:35 2014 -0700"
  },
  "message": "pdfium: Fix all -Wdelete-non-virtual-dtor violations on Mac.\n\nCalling `delete` on an object of a type that has virtual functions but\nnot a virtual destructor is questionable: Since the object has virtual functions,\nit likely has subclasses, so if it\u0027s deleted through the base pointer and the\ndestructor isn\u0027t virtual, the subclass destructor won\u0027t be called.\n\nIn most cases, the classes getting deleted can just be marked final to tell\nthe compiler that it can\u0027t possibly have subclasses (this also enables the\ncompiler to generate better code).\n\nTwo classes didn\u0027t have any sub- or superclasses but virtual functions -\nthis doesn\u0027t make sense, so make all methods of these classes non-virtual.\n(Also delete an unused function on one of the two classes.)\n\nIn one case, a class actually did have a subclass that needs to be deleted\nvirtually, so mark one destructor as virtual.\n\nBUG\u003dnone\nR\u003dbo_xu@foxitsoftware.com\n\nReview URL: https://codereview.chromium.org/370853002\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c6c80778a138b888b81d9bf64d3d8db508d08a40",
      "old_mode": 33188,
      "old_path": "core/include/fpdfapi/fpdf_parser.h",
      "new_id": "feac6c67dca8e734bfabf028886d7decaf32ceae",
      "new_mode": 33188,
      "new_path": "core/include/fpdfapi/fpdf_parser.h"
    },
    {
      "type": "modify",
      "old_id": "9f43360fa7fb1c0f2cf8410b8708af65ae87ef4b",
      "old_mode": 33188,
      "old_path": "core/include/fxcrt/fx_system.h",
      "new_id": "a757de4c5ee1b023fcf7e25630a7f55acefca612",
      "new_mode": 33188,
      "new_path": "core/include/fxcrt/fx_system.h"
    },
    {
      "type": "modify",
      "old_id": "dc96debeb629c71c624a14e4839aca53b4dfa230",
      "old_mode": 33188,
      "old_path": "core/include/fxge/fx_font.h",
      "new_id": "52f8f30d8da4a892f58577109fa88c9fd7712d01",
      "new_mode": 33188,
      "new_path": "core/include/fxge/fx_font.h"
    },
    {
      "type": "modify",
      "old_id": "bf9c7a4c42930fd84a93925d5d97429c12431751",
      "old_mode": 33188,
      "old_path": "core/src/fpdfapi/fpdf_font/ttgsubtable.h",
      "new_id": "26f67fbd180a8b080c0f6e156cda82bd22635b06",
      "new_mode": 33188,
      "new_path": "core/src/fpdfapi/fpdf_font/ttgsubtable.h"
    },
    {
      "type": "modify",
      "old_id": "0ebf4084a4391343901d1ab9aa117a22ec15153a",
      "old_mode": 33188,
      "old_path": "core/src/fpdfdoc/tagged_int.h",
      "new_id": "d190db6427a244463d34fb1f10637be5fc536629",
      "new_mode": 33188,
      "new_path": "core/src/fpdfdoc/tagged_int.h"
    },
    {
      "type": "modify",
      "old_id": "db35387908b0b549dfcfa2e24f78cfee359fe314",
      "old_mode": 33188,
      "old_path": "core/src/fxcrt/extension.h",
      "new_id": "a736425d57336862a1f5a9617561a53825591e91",
      "new_mode": 33188,
      "new_path": "core/src/fxcrt/extension.h"
    },
    {
      "type": "modify",
      "old_id": "503ec016962ab411bab5a6dd3480cdee5a036ffa",
      "old_mode": 33188,
      "old_path": "core/src/fxcrt/fx_arabic.h",
      "new_id": "1dc275b8c3af270f1c6bc38bb348eba758324cdb",
      "new_mode": 33188,
      "new_path": "core/src/fxcrt/fx_arabic.h"
    },
    {
      "type": "modify",
      "old_id": "42d63628f24ef96a335309b88cfaf28189afdf3e",
      "old_mode": 33188,
      "old_path": "core/src/fxge/apple/apple_int.h",
      "new_id": "a8fbe2fbaaaa14485c38be1654d1c5ff0f7b754b",
      "new_mode": 33188,
      "new_path": "core/src/fxge/apple/apple_int.h"
    },
    {
      "type": "modify",
      "old_id": "2bf4721c0d43564db9880b82f4c55c1d47928b92",
      "old_mode": 33188,
      "old_path": "fpdfsdk/include/fsdk_define.h",
      "new_id": "433ff4c1844e1258467abc72a0e36f201fb306cf",
      "new_mode": 33188,
      "new_path": "fpdfsdk/include/fsdk_define.h"
    },
    {
      "type": "modify",
      "old_id": "e6a9219c88301920c698732aca401c25b10d7fed",
      "old_mode": 33188,
      "old_path": "fpdfsdk/include/fsdk_mgr.h",
      "new_id": "d7e4e3d8a8c26158e9b9ac1493537f75d0940856",
      "new_mode": 33188,
      "new_path": "fpdfsdk/include/fsdk_mgr.h"
    },
    {
      "type": "modify",
      "old_id": "4c6b7849814f61e3cec6288fd3437d009225a033",
      "old_mode": 33188,
      "old_path": "fpdfsdk/src/fpdf_sysfontinfo.cpp",
      "new_id": "cc75e635b3abbd5ccc4e9b219240e9603cfe1cc4",
      "new_mode": 33188,
      "new_path": "fpdfsdk/src/fpdf_sysfontinfo.cpp"
    },
    {
      "type": "modify",
      "old_id": "6637c784fe17e9e3945a7fef9d51ed45fcadaf8d",
      "old_mode": 33188,
      "old_path": "fpdfsdk/src/fpdfsave.cpp",
      "new_id": "8025946ba8e589bfc7bb14b40f34bbb5f94b5c89",
      "new_mode": 33188,
      "new_path": "fpdfsdk/src/fpdfsave.cpp"
    },
    {
      "type": "modify",
      "old_id": "8a97c286aac636037333c621fd5d3fc259c720d3",
      "old_mode": 33188,
      "old_path": "fpdfsdk/src/fpdfview.cpp",
      "new_id": "b6b89289e40399caa96fe5ad8731dd8fe5b5b362",
      "new_mode": 33188,
      "new_path": "fpdfsdk/src/fpdfview.cpp"
    }
  ]
}
