)]}'
{
  "commit": "8d2cf75251679d657f704b40727fc4d6c47216cf",
  "tree": "6c9de2e2904651882c81b5e28e912e42ab4e09c6",
  "parents": [
    "0e6a044dff9facf499739be93536bd7f7cc4c6bf"
  ],
  "author": {
    "name": "Nicolas Capens",
    "email": "capn@google.com",
    "time": "Thu Nov 22 11:13:45 2018 -0500"
  },
  "committer": {
    "name": "Nicolas Capens",
    "email": "nicolascapens@google.com",
    "time": "Fri Nov 23 01:32:31 2018 +0000"
  },
  "message": "Fix unaligned access undefined behavior.\n\nUnaligned accesses are undefined behavior, but they\u0027re common in our\nELF binary patching code for variable length instruction sets (namely\nx86).\n\nWe can use memcpy() and rely on target-specific compiler optimizations\nto make it efficient. Utility functions and classes were added to aid\nreadability.\n\nBug b/119823623\n\nChange-Id: I8a82672a0d18d1e1783f580eb629f8cc09a009cd\nReviewed-on: https://swiftshader-review.googlesource.com/c/22828\nTested-by: Nicolas Capens \u003cnicolascapens@google.com\u003e\nReviewed-by: Alexis Hétu \u003csugoi@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1a2b4bd0f15ced8acee26d1b25c54ca3be1ea6ff",
      "old_mode": 33188,
      "old_path": "src/Reactor/ExecutableMemory.hpp",
      "new_id": "95dac5e9eef3f00eae2aac53c2d076bde680d7f6",
      "new_mode": 33188,
      "new_path": "src/Reactor/ExecutableMemory.hpp"
    },
    {
      "type": "modify",
      "old_id": "76f5a729d2c92251ea6ff0bbd3d736236d908b2c",
      "old_mode": 33188,
      "old_path": "src/Reactor/SubzeroReactor.cpp",
      "new_id": "08fc013978f48e5221bdab0963d2a6097b254083",
      "new_mode": 33188,
      "new_path": "src/Reactor/SubzeroReactor.cpp"
    }
  ]
}
