)]}'
{
  "commit": "24a2054dbcf8bae3e00927466c1942103f9df0f6",
  "tree": "de476766d29ca96330f962c6dbe382935dc3c187",
  "parents": [
    "77898af0f82e53c81916688460fb9de31bfbfbae"
  ],
  "author": {
    "name": "Ben North",
    "email": "ben@redfrontdoor.org",
    "time": "Thu Oct 20 21:09:25 2016 +0100"
  },
  "committer": {
    "name": "Ben North",
    "email": "ben@redfrontdoor.org",
    "time": "Thu Oct 20 21:32:55 2016 +0100"
  },
  "message": "Fix wrapper\u0027s \u0027value\u0027 and \u0027owned\u0027 if ctor missing\n\ntype_caster_generic::cast(): The values of\n\n    wrapper-\u003evalue\n    wrapper-\u003eowned\n\nare incorrect in the case that a return value policy of \u0027copy\u0027 is\nrequested but there is no copy-constructor.  (Similarly \u0027move\u0027.)  In\nparticular, if the source object is a static instance, the destructor of\nthe \u0027object\u0027 \u0027inst\u0027 leads to class_::dealloc() which incorrectly\nattempts to \u0027delete\u0027 the static instance.\n\nThis commit re-arranges the code to be clearer as to what the values of\n\u0027value\u0027 and \u0027owned\u0027 should be in the various cases.  Behaviour is\ndifferent to previous code only in two situations:\n\npolicy \u003d copy but no copy-ctor: Old code leaves \u0027value \u003d src, owned \u003d\ntrue\u0027, which leads to trouble.  New code leaves \u0027value \u003d nullptr, owned\n\u003d false\u0027, which is correct.\n\npolicy \u003d move but no move- or copy-ctor: old code leaves \u0027value \u003d src,\nowned \u003d true\u0027, which leads to trouble.  New code leaves \u0027value \u003d\nnullptr, owned \u003d false\u0027, which is correct.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f3690262e9b64a2e4364c5a6d250102765474178",
      "old_mode": 33188,
      "old_path": "include/pybind11/cast.h",
      "new_id": "dbbeb92253187715a001a587be1525773815bc54",
      "new_mode": 33188,
      "new_path": "include/pybind11/cast.h"
    }
  ]
}
