)]}'
{
  "commit": "3bcffa136909c1fb6e88ee4efd12ccac18360a85",
  "tree": "6aedd2a1ead0fa545a93229fa2965477ec627de7",
  "parents": [
    "0ac53364b79dc72ee0c09f0efc46a22ab4374dbf"
  ],
  "author": {
    "name": "Eric Laurent",
    "email": "elaurent@google.com",
    "time": "Thu Jun 12 18:38:45 2014 -0700"
  },
  "committer": {
    "name": "Eric Laurent",
    "email": "elaurent@google.com",
    "time": "Fri Jun 13 08:56:56 2014 -0700"
  },
  "message": "force command flush after releasing a reference to shared memory\n\nAfter releasing a reference to a shared memory interface,\nIPCThreadState::self()-\u003eflushCommands() must be called to ensure\nthat the corresponding reference is also cleared immediately in the\nremote process. Otherwise the binder implementaiton will not\npush the clear systematically causing the memory region not to be freed.\n\nSee issues 10711502 and 2801375.\n\nBug: 14057166.\nChange-Id: If55f36f00d452d6cf00cf83bd2fba1c8f3abcb57\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "db61e85de5d87d983b4d528a7aab5543d21d4252",
      "old_mode": 33188,
      "old_path": "media/libmedia/AudioRecord.cpp",
      "new_id": "50b444aca1c8858cbbcf9d6e0212d52c09089817",
      "new_mode": 33188,
      "new_path": "media/libmedia/AudioRecord.cpp"
    },
    {
      "type": "modify",
      "old_id": "7d3ecc5801d3081ab303ce9cfaac1739af747c68",
      "old_mode": 33188,
      "old_path": "media/libmedia/AudioTrack.cpp",
      "new_id": "fa8e5c37bad07b50d19d35a54ce9e2f013d67d45",
      "new_mode": 33188,
      "new_path": "media/libmedia/AudioTrack.cpp"
    },
    {
      "type": "modify",
      "old_id": "4e8a058431d87c41445e2eab17761ac745c2ef75",
      "old_mode": 33188,
      "old_path": "services/audioflinger/Tracks.cpp",
      "new_id": "1e906adbdb0e199f577586f5c13e0a43499111d8",
      "new_mode": 33188,
      "new_path": "services/audioflinger/Tracks.cpp"
    }
  ]
}
