)]}'
{
  "commit": "fca8084123255c1ca3afb3d2ae5bca37583a6812",
  "tree": "773806bd6ef946b647d8e3862758e94b7123cb57",
  "parents": [
    "c48047356a9f276d04b602441634fcb75d923019"
  ],
  "author": {
    "name": "Nicolas Capens",
    "email": "capn@google.com",
    "time": "Fri Jan 08 16:37:53 2021 -0500"
  },
  "committer": {
    "name": "Nicolas Capens",
    "email": "nicolascapens@google.com",
    "time": "Wed Jan 26 19:59:02 2022 +0000"
  },
  "message": "Make MemoryMapper a JITRoutine member\n\nPreviously a single MemoryManager with static lifetime was shared\nbetween all JITRoutine instances. This causes a destruction order\nissue when it is destroyed at shutdown before atexit() destroys all\nroutines.\n\nNote that the objectLayer member holds a reference to the memoryMapper\nmember, and calls it during its destruction, so the latter must be\ndeclared first to be destroyed last.\n\nBug: b/216348016\nChange-Id: Icd85e2687c652f45d78b9d48ed481c020e9cb6f3\nReviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/61812\nKokoro-Result: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Alexis Hétu \u003csugoi@google.com\u003e\nTested-by: Nicolas Capens \u003cnicolascapens@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "fb22cfe3a08920c137cbc0750e2c4d2628ee4b60",
      "old_mode": 33188,
      "old_path": "src/Reactor/LLVMJIT.cpp",
      "new_id": "11ca7e49d8d7361c844b90db2a7012e938b72747",
      "new_mode": 33188,
      "new_path": "src/Reactor/LLVMJIT.cpp"
    }
  ]
}
