)]}'
{
  "commit": "deffe41960a806f3fe576ed7f38d7faee22d0346",
  "tree": "c09f2b1d30d0ddebb993fcbb3b6764d245257e2a",
  "parents": [
    "a77a0d4a108ad66e9370f7aeb9c06d80c139b7c7"
  ],
  "author": {
    "name": "Mikhail Naganov",
    "email": "mnaganov@google.com",
    "time": "Mon Sep 18 17:34:51 2017 -0700"
  },
  "committer": {
    "name": "Mikhail Naganov",
    "email": "mnaganov@google.com",
    "time": "Tue Sep 19 08:44:43 2017 -0700"
  },
  "message": "Fix AAudioLoader\n\nFixed the following issues:\n\n -- using a static member variable for a singleton is not thread-safe\n    without explicit synchronization. A better approach is to use\n    a static variable in \u0027getInstance\u0027 function, which is guaranteed\n    to be synchronized by the standard;\n\n -- the constructor has to be private;\n\n -- the destructor doesn\u0027t need to be virtual;\n\n -- inconsistend header guard name.\n\nChange-Id: Ia926ce7601a2166d29d2558ceea51e122ce89232\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6e982a1ef16eecdec3ab96da48d4d2ff054b14c2",
      "old_mode": 33261,
      "old_path": "CONTRIBUTORS",
      "new_id": "0b77924b90e5090eb522a538042f4ce07eb66143",
      "new_mode": 33261,
      "new_path": "CONTRIBUTORS"
    },
    {
      "type": "modify",
      "old_id": "7a8c8a3f5f18df3e7f5df0f875b77e12b2e3cd02",
      "old_mode": 33188,
      "old_path": "src/aaudio/AAudioLoader.cpp",
      "new_id": "4f1d0e20cb1aced490b73c690916665af5408d4e",
      "new_mode": 33188,
      "new_path": "src/aaudio/AAudioLoader.cpp"
    },
    {
      "type": "modify",
      "old_id": "b8f3dd37a5bf6884342a5d6d0c567f0245099df7",
      "old_mode": 33188,
      "old_path": "src/aaudio/AAudioLoader.h",
      "new_id": "389959fa7b2e31c31fef8fe49be1ed7fefee3e47",
      "new_mode": 33188,
      "new_path": "src/aaudio/AAudioLoader.h"
    }
  ]
}
