)]}'
{
  "log": [
    {
      "commit": "65f5f247a367af9d6b9ac63767b69ecf3ab079bc",
      "tree": "bff631b0efd7e8fe77be9c445ea9224e2b67433b",
      "parents": [
        "5b32b91d731d6187ada4c6fc804041b7b3b6903c"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Dec 19 11:44:47 2016 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Dec 19 11:44:47 2016 -0800"
      },
      "message": "Fix race condition btw DelayReferenceRefernent vs Reference.clear().\n\nRename IsMarkedHeapReference to IsNullOrMarkedHeapReference.\n\nMove the null check from the caller of IsMarkedHeapReference into\nIsNullOrMarkedHeapReference.\n\nMake sure that the referent is only loaded once between the null\ncheck and the IsMarked call.\n\nUse a CAS in ConcurrentCopying::IsNullOrMarkedHeapReference when\ncalled from DelayReferenceRefernent.\n\nBug: 33389022\nTest: test-art-host without and with CC.\n\nChange-Id: I20edab4dac2a4bb02dbb72af0f09de77b55ac08e\n"
    },
    {
      "commit": "1a5337fff2cc6cb9d563c8b32aca75f485d23373",
      "tree": "03616e90a91c5c4c1bd7ff03c3d193c3b24bf0db",
      "parents": [
        "c8b722b3cebff245d614e95d1849de45ef7bdf06"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 13 13:48:23 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 13 17:37:56 2016 -0700"
      },
      "message": "Move mirror::ObjectArray to ObjPtr\n\nAlso reduce calls to ObjPtr::Ptr.\n\nBug: 31113334\n\nTest: test-art-host -j32\n\nChange-Id: I73e1b356972bb079b66332f00f7f07451601044e\n"
    },
    {
      "commit": "a058fdf0cf7435a13a6e8cae5e3a9bfa1513828d",
      "tree": "85de1316f29f661372841d5feee16c370375fc16",
      "parents": [
        "c4f3925490a73da8dc74884a1deb965d4ecaf14e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 06 15:13:58 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 06 15:53:58 2016 -0700"
      },
      "message": "Move mirror::Object setters to ObjPtr\n\nBug: 31113334\n\nTest: test-art-host\n\nChange-Id: I2c4c84645e194c3c435a4a6fd670176b0e98671f\n"
    },
    {
      "commit": "a5931185c97c7b17981a9fc5016834a0bdd9480b",
      "tree": "22f1a57647d7113c7c5aa5e0f0db5937380f2739",
      "parents": [
        "fce42f486d9a607fb4fb472ec142a82ceccb6b5f"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Sep 01 15:08:13 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Sep 15 09:09:35 2016 -0700"
      },
      "message": "Fix google-explicit-constructor warnings in art.\n\n* Add explicit keyword to conversion constructors,\n  or NOLINT for implicit converters.\nBug: 28341362\nTest: build with WITH_TIDY\u003d1\n\nChange-Id: I1e1ee2661812944904fedadeff97b620506db47d\n"
    },
    {
      "commit": "bdf7f1c3ab65ccb70f62db5ab31dba060632d458",
      "tree": "25cc77adfeb05232d0ab00aa561a693f1d71745c",
      "parents": [
        "d7eabc2cc1a88c1f7f927da61246ae65aab0626c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Aug 30 16:38:47 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Aug 30 17:02:53 2016 -0700"
      },
      "message": "ART: SHARED_REQUIRES to REQUIRES_SHARED\n\nThis coincides with the actual attribute name and upstream usage.\nPreparation for deferring to libbase.\n\nTest: m\nTest: m test-art-host\nChange-Id: Ia8986b5dfd926ba772bf00b0a35eaf83596d8518\n"
    },
    {
      "commit": "90443477f9a0061581c420775ce3b7eeae7468bc",
      "tree": "8c74b81dfae162e0fd0ccf8d5ac50827ba815174",
      "parents": [
        "6078aec213dfaf111c29969706e8e5967cfc9bea"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jul 16 20:32:27 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jul 22 15:13:56 2015 -0700"
      },
      "message": "Move to newer clang annotations\n\nAlso enable -Wthread-safety-negative.\n\nChanges:\nSwitch to capabilities and negative capabilities.\n\nFuture work:\nUse capabilities to implement uninterruptible annotations to work\nwith AssertNoThreadSuspension.\n\nBug: 20072211\n\nChange-Id: I42fcbe0300d98a831c89d1eff3ecd5a7e99ebf33\n"
    },
    {
      "commit": "d3ed9a320a89cb9b91b2361892c043ab7e112717",
      "tree": "94d2b646e8ff9b28e0bef735804ce17a6a8be729",
      "parents": [
        "4b5673b7387804947a1605a906deee132ab28f14"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 10 14:23:35 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Apr 13 16:15:22 2015 -0700"
      },
      "message": "Fix DCHECK failures from Class::VisitFieldRoots\n\nWe now use GetDeclaringClassUnchecked when marking roots to fix\nflaky test failures. Fixed a race condition in root marking where\nwe could have non zero field array length with a null pointer.\nFixed a race condition where we could be marking roots before\nFixupTemporaryDeclaringClass had finished. The solution is to\nonly do the declaring class CHECK if we are at least resolved.\nFixed JDWP tests by changing FieldId / MethodId to be 64 bits.\n\nAlso some cleanup.\n\nChange-Id: Ibac09519860d93c3f68a5cc964bbc91dc10a279a\n"
    },
    {
      "commit": "bb87e0f1a52de656bc77cb01cb887e51a0e5198b",
      "tree": "113f014c6e20fab3e936a3ac05f9f738639541f6",
      "parents": [
        "e57fc0f0260fcb1d08cbb720ec95c04c0f394b91"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 03 11:21:55 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Apr 06 10:44:37 2015 -0700"
      },
      "message": "Refactor and improve GC root handling\n\nChanged GcRoot to use compressed references. Changed root visiting to\nuse virtual functions instead of function pointers. Changed root visting\ninterface to be an array of roots instead of a single root at a time.\nAdded buffered root marking helper to avoid dispatch overhead.\n\nRoot marking seems a bit faster on EvaluateAndApplyChanges due to batch\nmarking. Pause times unaffected.\n\nMips64 is untested but might work, maybe.\n\nBefore:\nMarkConcurrentRoots: Sum: 67.678ms 99% C.I. 2us-664.999us Avg: 161.138us Max: 671us\n\nAfter:\nMarkConcurrentRoots: Sum: 54.806ms 99% C.I. 2us-499.986us Avg: 136.333us Max: 602us\n\nBug: 19264997\n\nChange-Id: I0a71ebb5928f205b9b3f7945b25db6489d5657ca\n"
    },
    {
      "commit": "b0fa5dc7769c1e054032f39de0a3f6d6dd06f8cf",
      "tree": "839d13ebfa7170967dd9b4abd434b7abda53da99",
      "parents": [
        "948740c1938860df055ddc801f20fd1707331e38"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Apr 28 16:47:08 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Apr 29 14:36:28 2014 -0700"
      },
      "message": "Force inlining on trivial accessors.\n\nMake volatility for GetFieldObject a template parameter.\nMove some trivial mirror::String routines to a -inl.h.\n\nBug: 14285442\n\nChange-Id: Ie23b11d4f18cb15a62c3bbb42837a8aaf6b68f92\n"
    },
    {
      "commit": "719d1a33f6569864f529e5a3fff59e7bca97aad0",
      "tree": "fcd84efd7b9806b93ec1a44e2317e6f882e7fe0e",
      "parents": [
        "5365eea9940269b662cfbe103caa348816ff1558"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Mar 06 12:13:39 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Mar 06 19:16:01 2014 -0800"
      },
      "message": "Enable annotalysis on clang ART builds.\n\nFix clang build errors aswell as restructure locking/mutex code for correct\nthread safety analysis support.\nReorder make dependencies so that host builds build first as they should\nprovide better compilation errors than target.\nRemove host\u0027s use of -fno-omit-frame-pointer as it has no value with correct\nuse of CFI, which we should have.\n\nChange-Id: I72cea8da9a3757b1a0b3acb4081feccb7c6cef90\n"
    },
    {
      "commit": "e63a745f26fec5a5b4162fc83f6e88a1f696c30c",
      "tree": "f26e1429c8226c5dde5ee4c361a57754ff46298c",
      "parents": [
        "e26baffe7f9e2a54f276f5c65e48454e413683ba"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Feb 27 14:44:36 2014 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Mar 05 19:20:14 2014 -0800"
      },
      "message": "Make heap reference poisoning work with the interpreter.\n\nIt is disabled by default.\n\nBug: 12687968\nChange-Id: Iee0cad647f341a7b566f4cf74c2770d1c19312c9\n"
    },
    {
      "commit": "ef7d42fca18c16fbaf103822ad16f23246e2905d",
      "tree": "c67eea52a349c2ea7f2c3bdda8e73933c05531a8",
      "parents": [
        "822115a225185d2896607eb08d70ce5c7099adef"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Jan 06 12:55:46 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Feb 06 23:20:27 2014 -0800"
      },
      "message": "Object model changes to support 64bit.\n\nModify mirror objects so that references between them use an ObjectReference\nvalue type rather than an Object* so that functionality to compress larger\nreferences can be captured in the ObjectRefererence implementation.\nObjectReferences are 32bit and all other aspects of object layout remain as\nthey are currently.\n\nExpand fields in objects holding pointers so they can hold 64bit pointers. Its\nexpected the size of these will come down by improving where we hold compiler\nmeta-data.\nStub out x86_64 architecture specific runtime implementation.\nModify OutputStream so that reads and writes are of unsigned quantities.\nMake the use of portable or quick code more explicit.\nTemplatize AtomicInteger to support more than just int32_t as a type.\nAdd missing, and fix issues relating to, missing annotalysis information on the\nmutator lock.\nRefactor and share implementations for array copy between System and uses\nelsewhere in the runtime.\nFix numerous 64bit build issues.\n\nChange-Id: I1a5694c251a42c9eff71084dfdd4b51fff716822\n"
    }
  ]
}
