)]}'
{
  "log": [
    {
      "commit": "158f35c98e2ec0d40d2c032b8cdce5fb60944a7f",
      "tree": "63bb3bbed85b0add42c7fdc714cd611424d8af2e",
      "parents": [
        "c449e8b79aaaf156ce055524c41474cc1200ed5a"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Jun 10 15:55:30 2015 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Jun 18 10:22:27 2015 -0700"
      },
      "message": "interpreter: Add experimental lambda opcodes for invoke/create-lambda\n\nThese opcodes are not yet fully specified, and *will* change before they become shippable.\nDo not write production code against experimental opcodes.\n\n--\n\nImplement partial interpreter support for new dex instructions invoke/create-lambda, and a\nnew opcode format 25x.\n\n* Does not verify, in fact verification will soft fail when we see those opcodes.\n* Compilers will punt to interpreter since they don\u0027t support new opcodes.\n* As there is no way to capture/liberate variables yet, the \"closure\" is just\n  an ArtMethod for the time being.\n\nAll new opcodes are disabled by default, use runtime option -Xexperimental-lambdas to enable them.\n\nFor example:\n  dalvikvm ... -Xexperimental-lambdas ...\n  dex2oat --runtime-arg -Xexperimental-lambdas ...\n\nChange-Id: I6c996ca32a9b54ec45ec21d7a959b84dfb8a24eb\n"
    },
    {
      "commit": "054a078ecebfb84b5003f2d0239c472de53267e2",
      "tree": "bb1fe30d8e74e8204e93ad9db0a1c775f5be42fe",
      "parents": [
        "da2fd5aa2cbdab371f9a1c29ff4e4dfd09305fdc"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Apr 07 10:56:50 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jun 04 16:17:21 2015 -0700"
      },
      "message": "Add atrace calls to runtime start and heap create\n\n(cherry picked from commit 7fabaa6ba1927d21a317c03499b705cbde4f6a47)\n\nBug: 20727525\n\nChange-Id: I91a74b793fb9eda8ed580244a6a5fd313ef2eb27\n"
    },
    {
      "commit": "e3b034a6f6f0d80d519ab08bdd18be4de2a4a2db",
      "tree": "660cc713e0ad2d71ccd1e0af1399c92665b626c7",
      "parents": [
        "119a8025bbc1c6f4a2d537e9a6d22f33ef31e552"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun May 31 14:29:23 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun May 31 17:36:10 2015 -0700"
      },
      "message": "Fix some ArtMethod related bugs\n\nAdded root visiting for runtime methods, not currently required\nsince the GcRoots in these methods are null.\n\nAdded missing GetInterfaceMethodIfProxy in GetMethodLine, fixes\n--trace run-tests 005, 044.\n\nFixed optimizing compiler bug where we used a normal stack location\ninstead of double on ARM64, this fixes the debuggable tests.\n\nTODO: Fix JDWP tests.\n\nBug: 19264997\n\nChange-Id: I7c55f69c61d1b45351fd0dc7185ffe5efad82bd3\n"
    },
    {
      "commit": "e401d146407d61eeb99f8d6176b2ac13c4df1e33",
      "tree": "17927f9bfe7d2041b5942c89832d55f9dedb24c5",
      "parents": [
        "2006b7b9b8e32722bd0d640c62549d8a0ac624b6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 22 13:56:20 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri May 29 18:45:49 2015 -0700"
      },
      "message": "Move mirror::ArtMethod to native\n\nOptimizing + quick tests are passing, devices boot.\n\nTODO: Test and fix bugs in mips64.\n\nSaves 16 bytes per most ArtMethod, 7.5MB reduction in system PSS.\nSome of the savings are from removal of virtual methods and direct\nmethods object arrays.\n\nBug: 19264997\nChange-Id: I622469a0cfa0e7082a2119f3d6a9491eb61e3f3d\n"
    },
    {
      "commit": "0de1133ba600f299b3d67938f650720d9f859eb2",
      "tree": "575781fecb928641714801e24af128c68e108448",
      "parents": [
        "03e4351df62ade9fa0e9139ece28f23ba85c49c2"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed May 13 12:14:05 2015 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue May 19 14:31:54 2015 +0200"
      },
      "message": "Fix debuggable compiler flag detection for secondary dex files\n\nCompiles secondary dex files like the primary dex file: if it has\nbeen compiled with the --debuggable flag, compile secondary dex files\nwith the --debuggable flag too.\n\nTherefore, dex files loaded at runtime are compiled the same way as\ndex files compiled at install time on the classpath (excluding the\nboot image that is not compiled debuggable).\n\nAlso adds debuggable key in the oat header and bump the oat version.\n\nBug: 20944228\nChange-Id: I59119f3468adb27ab1d6026f2cefbebbd814224c\n"
    },
    {
      "commit": "b81e1cddd6a8ccccb9fe86e3bfae12b2657b8085",
      "tree": "d247ef138c2304c2ac7c5a0147ad06200e58de07",
      "parents": [
        "b6829c2ee05124d64a19c7a52ada4a23f624fb91"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Apr 28 12:31:41 2015 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Apr 29 15:50:03 2015 +0200"
      },
      "message": "Fix missing transaction abort error message\n\nChange-Id: I5157def06d385c082f9fdd4714e20bead9e707e8\n"
    },
    {
      "commit": "848f70a3d73833fc1bf3032a9ff6812e429661d9",
      "tree": "b0349b3a40aab5a915af491b100659a5ca9fbbf6",
      "parents": [
        "d14438f0c5071962be7fab572b54687d32d9d087"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Jan 15 13:49:50 2014 -0800"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Apr 27 18:54:52 2015 -0700"
      },
      "message": "Replace String CharArray with internal uint16_t array.\n\nSummary of high level changes:\n  - Adds compiler inliner support to identify string init methods\n  - Adds compiler support (quick \u0026 optimizing) with new invoke code path\n    that calls method off the thread pointer\n  - Adds thread entrypoints for all string init methods\n  - Adds map to verifier to log when receiver of string init has been\n    copied to other registers. used by compiler and interpreter\n\nChange-Id: I797b992a8feb566f9ad73060011ab6f51eb7ce01\n"
    },
    {
      "commit": "2cebb24bfc3247d3e9be138a3350106737455918",
      "tree": "d04d27d21b3c7733d784e303f01f873bb99e7770",
      "parents": [
        "1f02f1a7b3073b8fef07770a67fbf94afad317f0"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 21 16:50:40 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 22 12:44:27 2015 -0700"
      },
      "message": "Replace NULL with nullptr\n\nAlso fixed some lines that were too long, and a few other minor\ndetails.\n\nChange-Id: I6efba5fb6e03eb5d0a300fddb2a75bf8e2f175cb\n"
    },
    {
      "commit": "fc58af45e342ba9e18bbdf597f205a58ec731658",
      "tree": "3f93906235cb4d2462d237223b72ccf4eedef645",
      "parents": [
        "bbf02afc641a393d33342976e269218668c07386"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 16 18:00:39 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 21 15:51:29 2015 -0700"
      },
      "message": "Add AbstractMethod, Constructor, Method\n\nMoves functionality to ART from libcore. Precursor to moving\nArtMethods to native. Mostly performance improvements.\n\nN5 perf before (irrelevant results removed):\n            Class_getConstructor  962.87 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n         Class_getDeclaredMethod 2394.37 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n                 Class_getMethod 2509.20 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n               Class_newInstance 1999.81 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n                  Method_invokeI 1439.02 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n          Method_invokePreBoxedI 1415.82 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n            Method_invokeStaticI 1456.24 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n    Method_invokeStaticPreBoxedI 1427.32 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n            Method_invokeStaticV  814.47 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n                  Method_invokeV  816.56 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nAfter:\n                       benchmark      ns linear runtime\n            Class_getConstructor 1302.04 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n         Class_getDeclaredMethod 1459.01 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n                 Class_getMethod 1560.40 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n               Class_newInstance 2029.94 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n                  Method_invokeI 1312.89 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n          Method_invokePreBoxedI 1255.01 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n            Method_invokeStaticI 1289.13 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n    Method_invokeStaticPreBoxedI 1196.52 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n            Method_invokeStaticV  790.82 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n                  Method_invokeV  791.73 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nPerformance improvements are more than just fixing regressions introduced\nin: http://android-review.googlesource.com/#/c/146069/\n\nBug: 19264997\n\nChange-Id: Ife79c469fdb09f30e3aefcfc3e0ce5ed32303fce\n"
    },
    {
      "commit": "40da286d3207d88ed8ff3f5caac4873874603428",
      "tree": "3f9720425b2a024a5a54a0a71447dcea107229a8",
      "parents": [
        "6508158f8388847f4cc3693e2cc1dbee6c2c7d18"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Feb 27 12:49:04 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Apr 15 20:45:35 2015 -0700"
      },
      "message": "ART: Streaming trace mode\n\nAdd a streaming mode for tracing. Streaming uses a buffer of 16KB\nand writes to the output when that buffer gets full. Streaming mode\ncan be enabled with -Xmethod-trace-stream and is currently not\nexposed otherwise.\n\nAdd a python script that can parse the streaming format, which\nsimply contains strings for newly encountered threads and methods\ninline, and create output that can be used with traceview.\n\nAdd Trace::Pause and Trace::Abort, which can pause and abort tracing.\nAbort is different from Stop in that it does not write the data.\n\nAdd code to the zygote hooks JNI implementation that pauses tracing\nbefore the fork, making sure that a child cannot clobber the parent\u0027s\ndata.\n\nAdd code to the zygote hooks JNI implementation that aborts old\ntracing and starts new tracing in the child after the fork. Currently\nbase the output on the pid. This will not work on an unmodified\ndevice, as the profiles directory is not generally writable, but\nwe do not have enough information at that point. Consider a scheme\nthat restarts tracing later.\n\nChange-Id: I93c7bf87e35af582bdfdd3ecc7c52454514220dd\n"
    },
    {
      "commit": "3481ba2c4e4f3aa80d8c6d50a9f85dacb56b508b",
      "tree": "77551c0a6d060e5a3723ad35d2ab101038f9328a",
      "parents": [
        "095d209342420563becfec6676b46a6c6b839107"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Apr 13 12:22:36 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Apr 13 16:30:13 2015 +0100"
      },
      "message": "ART: Clean up includes.\n\nReduce dependencies to improve incremental build times.\nBreak up circular dependency involving class_linker-inl.h.\n\nChange-Id: I4be742c5c2b5cd9855beea86630fd68aab76b0db\n"
    },
    {
      "commit": "c785344b87221f5e4e6473e5b762e4e61fe65dcf",
      "tree": "cd32ad2c2604596a18926f04d4c313dab255ecfd",
      "parents": [
        "a29d93b380c9aeb8270e281aefbdd0c77a430d43"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 27 14:35:38 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 10 12:57:27 2015 -0700"
      },
      "message": "Move ArtField to native\n\nAdd linear alloc. Moved ArtField to be native object. Changed image\nwriter to put ArtFields after the mirror section.\n\nSavings:\n2MB on low ram devices\n4MB on normal devices\n\nTotal PSS measurements before (normal N5, 95s after shell start):\nImage size: 7729152 bytes\n23112 kB: .NonMoving\n23212 kB: .NonMoving\n22868 kB: .NonMoving\n23072 kB: .NonMoving\n22836 kB: .NonMoving\n19618 kB: .Zygote\n19850 kB: .Zygote\n19623 kB: .Zygote\n19924 kB: .Zygote\n19612 kB: .Zygote\nAvg: 42745.4 kB\n\nAfter:\nImage size: 7462912 bytes\n17440 kB: .NonMoving\n16776 kB: .NonMoving\n16804 kB: .NonMoving\n17812 kB: .NonMoving\n16820 kB: .NonMoving\n18788 kB: .Zygote\n18856 kB: .Zygote\n19064 kB: .Zygote\n18841 kB: .Zygote\n18629 kB: .Zygote\n3499 kB: .LinearAlloc\n3408 kB: .LinearAlloc\n3424 kB: .LinearAlloc\n3600 kB: .LinearAlloc\n3436 kB: .LinearAlloc\nAvg: 39439.4 kB\n\nNo reflection performance changes.\n\nBug: 19264997\nBug: 17643507\n\nChange-Id: I10c73a37913332080aeb978c7c94713bdfe4fe1c\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": "9ba48cef58e71f6a61b346d83c69c6372ede6b77",
      "tree": "aa81defca9c6cc2c736e9b19e477240d18867225",
      "parents": [
        "425587d25832145a45a0b76beaa93996b0226f0d",
        "02d2f290380c6aeff5f5a089ee38fa5d55e46130"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Apr 03 21:06:51 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 03 21:06:51 2015 +0000"
      },
      "message": "Merge \"Fix the read barrier builds.\""
    },
    {
      "commit": "02d2f290380c6aeff5f5a089ee38fa5d55e46130",
      "tree": "7a1e2bd74768db29f25b087e2120fb4c61897da5",
      "parents": [
        "1f940310658cd5a15e12305463fb6d2d508bbd26"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Apr 03 13:35:16 2015 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Apr 03 13:35:16 2015 -0700"
      },
      "message": "Fix the read barrier builds.\n\nA check failure (!UseJit() in ArtMethod::Invoke()) in forced interpret\nonly mode in the eng build with JIT enabled by default on target.\n\nA build failure (inl header file issues) in the USE_BAKER_READ_BARRIER\nbuild.\n\nChange-Id: Ib13632b10864ad8b4691b66971c0ab5d2ae1e675\n"
    },
    {
      "commit": "ae36b4a8d05525c977af831f1b31126d84159e4f",
      "tree": "1b474b0bdec9db773cab0a2bca70dce1452f7cd1",
      "parents": [
        "a68a7cf8f3a6fef22d71a14350176115cb13857f",
        "2fd7e69505195cda4caaa3161aaf37315552a698"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Apr 03 07:49:44 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 03 07:49:46 2015 +0000"
      },
      "message": "Merge \"Use specific exception class to abort transaction\""
    },
    {
      "commit": "2fd7e69505195cda4caaa3161aaf37315552a698",
      "tree": "2bd681443ad36a8616f237a12e56ecbdb7054f8e",
      "parents": [
        "c6e949a6d93fae2351fc59ed825657adee8185dc"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu Apr 02 11:11:19 2015 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Apr 03 09:31:59 2015 +0200"
      },
      "message": "Use specific exception class to abort transaction\n\nWe used to throw a java.lang.InternalError when aborting a\ntransaction (when preinitializing image classes at compilation time).\n\nWe now use dedicated class dalvik.system.TransactionAbortError that\nis only thrown by the compiler to abort a transaction. This class has\nconstructors taking a java.lang.Throwable \"cause\" so we can wrap\nexceptions causing the transaction to abort (for instance class\njava.lang.ClassNotFoundException) and give more information about the\ncause of the transaction abort.\n\nBug: 20019689\nChange-Id: I019a72a1c754d8bba6a7ad6bb0f02e4fd6668622\n"
    },
    {
      "commit": "f6a780abeaed4bf745720e8f836a3064d3ffbec4",
      "tree": "0850cde8f2200f893a374610090be5b8326ecf83",
      "parents": [
        "93c65adb3d7bd1d3815715df433d185219045230"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Apr 02 18:51:05 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Apr 02 18:51:05 2015 -0700"
      },
      "message": "ART: Move trace options to a struct\n\nBundles the different options and moves them to a struct in the\nimplementation file. Will allow for easier change for streaming.\n\nChange-Id: I486e0942614e714964eb233e2d6b4e3e12aa704f\n"
    },
    {
      "commit": "461687d898dfd91253f242072849a9fe43e5f523",
      "tree": "452e3e11cb5746f487920f87fcaf1b238d2a8957",
      "parents": [
        "e33d0cb5b88703302e3912ca96dabcb06fea4340"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 31 12:05:24 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 31 15:57:27 2015 -0700"
      },
      "message": "Visit image roots for hprof\n\nBug: 19995360\n\n(cherry picked from commit 0cab5e68f14ee403380664146db6dc7ddfc32064)\n\nChange-Id: I17868bff2a701dc25291d41b9732c6b86f92be08\n"
    },
    {
      "commit": "af38d89634edbef394b3ef2cb3390d08dfb8d939",
      "tree": "d201eb23ef8bdef663a7580289cece348903adba",
      "parents": [
        "f381645a336f7092ab6f5900c0a2cf183a9dbdf7",
        "7e7e0f47628fb358da70c5e2766545c4f0596235"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Mar 30 01:04:12 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 30 01:04:12 2015 +0000"
      },
      "message": "Merge \"ART: Use enums in Trace\""
    },
    {
      "commit": "7e7e0f47628fb358da70c5e2766545c4f0596235",
      "tree": "5f1473cb0aa149fee476966ffb23ec8f8941b208",
      "parents": [
        "68e22f3b982ff9ccbdfb3b65b7cfc16fcae907ba"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sun Mar 29 15:26:23 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sun Mar 29 15:26:23 2015 -0700"
      },
      "message": "ART: Use enums in Trace\n\nMove away from booleans. Will make introduction of streaming mode\na bit easier / obvious.\n\nChange-Id: Id7ae92f6b97f627e848510d473931537d7db0db8\n"
    },
    {
      "commit": "daaf3265806eb2eadb2e03302bd68022fab5ca28",
      "tree": "aff5d6d53d6d2b65995aa204839f88ee66400989",
      "parents": [
        "68e22f3b982ff9ccbdfb3b65b7cfc16fcae907ba"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 24 13:30:28 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun Mar 29 14:13:08 2015 -0700"
      },
      "message": "Add AccessibleObject and Field to mirror\n\nMain motivation is to remove all the functionality / field access on\njava side to ArtField. Also comes with some reflection speedups /\nslowdowns.\n\nSummary results:\ngetDeclaredField/getField are slower mostly due to JNI overhead.\nHowever, there is a large speedup in getInt, setInt,\nGetInstanceField, and GetStaticField.\n\nBefore timings (N5 --compiler-filter\u003deverything):\n\n                       benchmark      ns linear runtime\n          Class_getDeclaredField  782.86 \u003d\u003d\u003d\n                  Class_getField  832.77 \u003d\u003d\u003d\n                    Field_getInt  160.17 \u003d\n                    Field_setInt  195.88 \u003d\n                GetInstanceField 3214.38 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n                  GetStaticField 6809.49 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nAfter:\n          Class_getDeclaredField 1068.15 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n                  Class_getField 1180.00 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n                    Field_getInt  121.85 \u003d\n                    Field_setInt  139.98 \u003d\n                GetInstanceField 1986.15 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n                  GetStaticField 2523.63 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nBug: 19264997\n\nChange-Id: Ic0d0fc1b56b95cd6d60f8e76f19caeaa23045c77\n"
    },
    {
      "commit": "4585f876eb5dfb936bd0d6cb6acd78a1f2182ba6",
      "tree": "e9dfed086f56245e74862caa813c708bc4f500f9",
      "parents": [
        "e2c29f4a2717923f190c944a06e02f7d8c3ddcb6"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Mar 27 23:45:15 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Mar 27 23:46:09 2015 -0700"
      },
      "message": "ART: Some runtime cleanup\n\nUse an enum for the compiler-callback mode.\n\nRefactor and remove some unnecessary includes in runtime.h.\n\nChange-Id: If2245fa470171311b8e05b677cf6bb28f209585a\n"
    },
    {
      "commit": "81c6f8db12b203878a7d72444ead2bc7cf5c47ad",
      "tree": "11caae30b75b700ac648356fd30759a6154be997",
      "parents": [
        "cac51526bbd03947676a8d49700425b19a57e447"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Mar 25 17:19:53 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Mar 27 21:43:21 2015 -0700"
      },
      "message": "ART: PathClassLoader for compiler\n\nUse an actual PathClassLoader when compiling apps, instead of a\nside structure and cutout.\n\nThis CL sets up a minimal object \u0027cluster\u0027 that recreates the Java\nside of a regular ClassLoader such that the Class-Linker will\nrecognize it and use the internal native fast-path.\n\nThis CL removes the now unnecessary compile-time-classpath and\nreplaces it with a single \u0027compiling-the-boot-image\u0027 flag in the\ncompiler callbacks.\n\nNote: This functionality is *only* intended for the compiler, as\nthe objects have not been completely initialized.\n\nBug: 19781184\n\nChange-Id: I7f36af12dd7852d21281110a25c119e8c0669c1d\n"
    },
    {
      "commit": "3679a47027b40290018d0ccc50b996a15645dfef",
      "tree": "92c6fcbb8fe5c647eb06bb63277c90f36c319101",
      "parents": [
        "139cec015abd195727d5410dc313b483babeda10",
        "e5fed03772144595c0904faf3d6974cc55214c8c"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Mar 25 17:10:11 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 25 17:10:12 2015 +0000"
      },
      "message": "Merge \"Support relative encoded dex locations in oat files.\""
    },
    {
      "commit": "e5fed03772144595c0904faf3d6974cc55214c8c",
      "tree": "27c242e48cabd2543f472930d1ad7e2ab86557fe",
      "parents": [
        "b93581f857e36a62f690e26e78167f2abea0f033"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Mar 18 08:21:11 2015 -0700"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Mar 24 12:48:09 2015 -0700"
      },
      "message": "Support relative encoded dex locations in oat files.\n\nNow when opening an oat file, the caller can pass an absolute dex\nlocation used to resolve the absolute path for any relative\nencoded dex locations in the oat file.\n\nBug: 19550105\nChange-Id: I6e9559afe4d86ac12cf0b90176b5ea696a83d0e7\n"
    },
    {
      "commit": "785049f8083e56e88dfeab5ff74fb3817f9854e3",
      "tree": "ab06a7fb4acb2ed73eed4b58327ba485f61560c4",
      "parents": [
        "f5988cf0c47ff935bb19c89ed0398be5fbe44bb6"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Jul 18 10:08:57 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Mar 23 11:38:54 2015 -0700"
      },
      "message": "Add paths to apk!lib/\u003cabi\u003e to LD_LIBRARY_PATH\n\n  Add paths to .apk to LD_LIBRARY_PATH to enable\n  bionic linker\u0027s \"open from zip-file\" feature.\n\nBug: 8076853\nChange-Id: I1aa2c039bb2a590ae72f256acc9ba5401c2c59b1\n"
    },
    {
      "commit": "455f67c4cf0b4f04e117db3024fd189fa1c7dab9",
      "tree": "3f89fdc8ba9b31cc0205945410a75d63e2f25000",
      "parents": [
        "5747266d57445ecdd026a4705d62768faad09b01"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 17 13:48:29 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Mar 18 18:49:28 2015 -0700"
      },
      "message": "Fix JIT options with late init\n\nPreviously we couldn\u0027t create the JIT since we didn\u0027t have any\nJITOptions.\n\nBug: 19735273\n\nChange-Id: I24b8ed131ed8b18f75ec94291e135d8a1c089ebd\n"
    },
    {
      "commit": "12d625f87bcd6c4059a205bb39007a255f57f382",
      "tree": "b69f6f80f56977c176e0c441869d2f1de06ede70",
      "parents": [
        "b871a15f1f662c8efe10d41199180bd00b6decd1"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 13 11:33:37 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 13 16:38:25 2015 -0700"
      },
      "message": "Change method verifiers to be thread local roots\n\nBug: 10921004\n\nChange-Id: I3a1425d76cd380587ba67ef6d5ec1227564e55bf\n"
    },
    {
      "commit": "2435a43f6c851c23922d8508fb17c6079248201c",
      "tree": "a0eea938dfbafc8f8e1546528295005d3a55ecee",
      "parents": [
        "c685bce4e6cfec075cb5b468d06b2fcdeeda2005"
      ],
      "author": {
        "name": "bowen_lai",
        "email": "bowen_lai@htc.com",
        "time": "Fri Mar 13 14:34:40 2015 +0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 13 10:20:40 2015 -0700"
      },
      "message": "ART: Add entries_ lock for race condition\n\nGCDaemon thread would visit incorrect RegType content when there is\nanother thread initializing classes.\nAdd a lock to protect entries_.\n\nhttps://code.google.com/p/android/issues/detail?id\u003d159849\n\nChange-Id: Iabaa1c7f5cc5106b60a6e3856152e0797e8a5d6d\n"
    },
    {
      "commit": "c6201fa2ec66a218c4d0320fbcddd2fbb65cfa4a",
      "tree": "d7e2742906c340d61a7bf24aab6e0b343e0580d2",
      "parents": [
        "4cfe74cb50b73f5f4b6dd32aabed55d044afe348"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 12 10:06:33 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 12 10:59:33 2015 -0700"
      },
      "message": "Add way to select arena type at runtime\n\nWe now use MemMap for JIT, and malloc for everything else. This\nshould help fix the allegedly regressed compile times.\n\nChange-Id: I6a6552738933f9d7ee3bd23f45e310818b19b70d\n"
    },
    {
      "commit": "0aa50ce2fb75bfc2e815a0c33adf9b049561923b",
      "tree": "9a3f9603ab30d5cbc7fc21aee0ceb48bbb0dd25a",
      "parents": [
        "e8e42f3548fd894f860912bb1b71ce6fa2d7daf3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 10 11:03:29 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 10 14:51:11 2015 +0000"
      },
      "message": "Remove ThrowLocation.\n\nNote that this is a cleanup change, and has no functionality change.\nThe ThrowLocation had no use anymore.\n\nChange-Id: I3d2126af1dc673cec3a0453ff3d56a172663a5f6\n"
    },
    {
      "commit": "9b34b244ecddd8a35c922ed87bc3df0ca4db0282",
      "tree": "cb73f09a77a1ba58331eb299bb8dd1e6eafb6eaa",
      "parents": [
        "81d38f74219774d87389f83f23595ffc8fe814b1"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 09 11:30:17 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 09 14:25:02 2015 -0700"
      },
      "message": "Trim arenas for JIT\n\nMoved arena pool into the runtime. Added arena trimming to arena\npool. When called, this madvises the used memory.\n\nChanged the JIT compiler to trim arenas after compilation. Changed\nthe arena mmap name to dalvik-LinearAlloc.\n\nNative PSS before:\n  80353 kB: Native\n  80775 kB: Native\n  78116 kB: Native\nAfter:\n  73357 kB: Native\n  70181 kB: Native\n  70306 kB: Native\n\nBug: 17950037\nBug: 17643507\nBug: 19264997\n\nChange-Id: I63e7a898fd6e909c2c677fa57b5917a7b1398930\n"
    },
    {
      "commit": "5c9d8f0d2948c2b4fe4258f96e3598ad5b8fa23b",
      "tree": "7510031e119cf981cdb6aafc5e5c2299aa06590d",
      "parents": [
        "3dd536ffd7e8f82e4587964545b272acbd61d68e",
        "14691c5e786e8c2c5734f687e4c96217340771be"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 09 10:11:03 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 09 10:11:03 2015 +0000"
      },
      "message": "Merge \"Compute the right catch location for the debugger.\""
    },
    {
      "commit": "14691c5e786e8c2c5734f687e4c96217340771be",
      "tree": "7c2156671b323c70ffdd1d48d5e2f1d1de79c5fc",
      "parents": [
        "3d7d2af4c6502b771b032ee9bf3ab30e78f9c60d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Mar 05 10:40:17 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 09 10:09:33 2015 +0000"
      },
      "message": "Compute the right catch location for the debugger.\n\nAlso remove tls ThrowLocation, it is not needed anymore.\n\nChange-Id: I78fddf09ce968ca475e39c17fa76d699c589c8d9\n"
    },
    {
      "commit": "184c9dc3bfc500134fdb2fbea0a7fab290c0abb0",
      "tree": "753a040fa1ef43651dd36fc4dfeb9377dc88e481",
      "parents": [
        "66b26662ad0c52c648c9b5ea4a99149091e842b4"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 05 13:20:54 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 05 13:25:51 2015 -0800"
      },
      "message": "Fix some incorrect IsCompiler instead of IsAotCompiler\n\nFixes jdwp related issues (DDMS) when JIT is enabled.\n\nBug: 19623297\nChange-Id: I36139c70a97b529135febcf01b227e7ab9affacc\n"
    },
    {
      "commit": "7b2f09eb6b5c74ffc38bd70f0aa74b8f8112e394",
      "tree": "be2f01bfa3e326ea10ee3a670cca8e41a5abaa6d",
      "parents": [
        "dc47e986941b1a3754447fabea272485f3f0f382"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Mar 02 14:07:33 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Mar 04 12:19:44 2015 -0800"
      },
      "message": "ART: Add debuggable compiler flag\n\nAdd a flag to compiler options that shows debuggability.\n\nChange-Id: Id17ec72babe2ee88713a0d274eff86508de30666\n"
    },
    {
      "commit": "775f1d4096efce112a3bd1e5897c84f898c5f7ce",
      "tree": "44fbce76fdc2114947032cac69ad82aa93aee85c",
      "parents": [
        "cd93415651b7295d0bda1d37ef72ee99ba953c67",
        "bd9cf9f6bbf285ec7a5b74ce655a9e68e0f6e434"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Mar 03 13:39:30 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 03 13:39:31 2015 +0000"
      },
      "message": "Merge \"Follow-up 128393\""
    },
    {
      "commit": "bd9cf9f6bbf285ec7a5b74ce655a9e68e0f6e434",
      "tree": "04f3b49c2946c99b0aac23552f8c3cfdf8da39f4",
      "parents": [
        "ff9b747588e77f04b07dc76b2d39a82cbfc60441"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Mar 03 12:16:13 2015 +0100"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Mar 03 14:30:46 2015 +0100"
      },
      "message": "Follow-up 128393\n\nAvoids false warning when initializing the exception\u0027s class by\nmarking the transaction aborted after throwing the InternalError\nexception.\n\nAlso uses VLOG(compiler) to print the warning since it\u0027s only useful\nwhen investigating ahead-of-time class initialization.\n\nBug: 19202032\nChange-Id: I3c53639cbb888086ad345d668d1e5b73c5aaf861\n"
    },
    {
      "commit": "deebb99a53b0af3ccfde9daaef8cae8fad9e44d2",
      "tree": "12e12ff23a4790b8076d6e45c3defb8695772072",
      "parents": [
        "0d1ef55dd46ecd0309f8e9e6b30625cde9473fc8"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 02 11:49:22 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 02 11:50:18 2015 -0800"
      },
      "message": "Fix AddCurrentRuntimeFeaturesAsDex2OatArguments jit handling\n\nNow jit passes interpret filter to dex2oat.\n\nBug: 19550422\nChange-Id: I932c7d1084acbb9d356ad0f5534a270e2ca2d6ec\n"
    },
    {
      "commit": "e5f13e57ff8fa36342beb33830b3ec5942a61cca",
      "tree": "02e370ecc4e0d955f28bfc71a41015f94fbb19b7",
      "parents": [
        "354d58ba776866ea7b1c71f0d0848d5aaa013ae3"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 24 09:37:21 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 24 10:47:02 2015 -0800"
      },
      "message": "Revert \"Revert \"Add JIT\"\"\n\nAdded missing EntryPointToCodePointer.\n\nThis reverts commit a5ca888d715cd0c6c421313211caa1928be3e399.\n\nChange-Id: Ia74df0ef3a7babbdcb0466fd24da28e304e3f5af\n"
    },
    {
      "commit": "f548c54c69443ba94fcee89daca6f5f499d71e9a",
      "tree": "aff0f707cb27e303d3b9de53f961bf48e38ad5be",
      "parents": [
        "9e87baff2eee8e8ae0700c7391ca4447dbe142b0",
        "a5ca888d715cd0c6c421313211caa1928be3e399"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 24 08:11:23 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 24 08:11:24 2015 +0000"
      },
      "message": "Merge \"Revert \"Add JIT\"\""
    },
    {
      "commit": "a5ca888d715cd0c6c421313211caa1928be3e399",
      "tree": "bdb08a2cbcf277ab7f02626a23b52a3fdf272ffe",
      "parents": [
        "2535abe7d1fcdd0e6aca782b1f1932a703ed50a4"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 24 08:10:57 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 24 08:10:57 2015 +0000"
      },
      "message": "Revert \"Add JIT\"\n\nSorry, run-test crashes on target:\n0-05 12:15:51.633 I/DEBUG   (27995): Abort message: \u0027art/runtime/mirror/art_method.cc:349] Check failed: PcIsWithinQuickCode(reinterpret_cast\u003cuintptr_t\u003e(code), pc) java.lang.Throwable java.lang.Throwable.fillInStackTrace() pc\u003d71e3366b code\u003d0x71e3362d size\u003dad000000\u0027\n10-05 12:15:51.633 I/DEBUG   (27995):     r0 00000000  r1 0000542b  r2 00000006  r3 00000000\n10-05 12:15:51.633 I/DEBUG   (27995):     r4 00000006  r5 b6f9addc  r6 00000002  r7 0000010c\n10-05 12:15:51.633 I/DEBUG   (27995):     r8 b63fe1e8  r9 be8e1418  sl b6427400  fp b63fcce0\n10-05 12:15:51.633 I/DEBUG   (27995):     ip 0000542b  sp be8e1358  lr b6e9a27b  pc b6e9c280  cpsr 40070010\n10-05 12:15:51.633 I/DEBUG   (27995): \n\nBug: 17950037\nThis reverts commit 2535abe7d1fcdd0e6aca782b1f1932a703ed50a4.\n\nChange-Id: I6f88849bc6f2befed0c0aaa0b7b2a08c967a83c3\n"
    },
    {
      "commit": "4fa1a274024067e160a60d0a77124e95dca980e1",
      "tree": "61dd41429b6b2ed29239f0c619c0e7ea058fd4ac",
      "parents": [
        "40c99de1fd26f9ba6fae20a01175240b96fc7443",
        "2535abe7d1fcdd0e6aca782b1f1932a703ed50a4"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 24 01:29:46 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 24 01:29:47 2015 +0000"
      },
      "message": "Merge \"Add JIT\""
    },
    {
      "commit": "2535abe7d1fcdd0e6aca782b1f1932a703ed50a4",
      "tree": "140026ff9638ff34050680b6c706b82fa1740b56",
      "parents": [
        "38fee8ef4bc0f4dbe2c6d1f5585895f0c4d16984"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 17 10:38:49 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Feb 23 16:45:49 2015 -0800"
      },
      "message": "Add JIT\n\nCurrently disabled by default unless -Xjit is passed in.\n\nThe proposed JIT is a method JIT which works by utilizing interpreter\ninstrumentation to request compilation of hot methods async during\nruntime.\n\nJIT options:\n-Xjit / -Xnojit\n-Xjitcodecachesize:N\n-Xjitthreshold:integervalue\n\nThe JIT has a shared copy of a compiler driver which is accessed\nby worker threads to compile individual methods.\n\nAdded JIT code cache and data cache, currently sized at 2 MB\ncapacity by default. Most apps will only fill a small fraction of\nthis cache however.\n\nAdded support to the compiler for compiling interpreter quickened\nbyte codes.\n\nAdded test target ART_TEST_JIT\u003dTRUE and --jit for run-test.\n\nTODO:\nClean up code cache.\nDelete compiled methods after they are added to code cache.\nAdd more optimizations related to runtime checks e.g. direct pointers\nfor invokes.\nAdd method recompilation.\nMove instrumentation to DexFile to improve performance and reduce\nmemory usage.\n\nBug: 17950037\n\nChange-Id: Ifa5b2684a2d5059ec5a5210733900aafa3c51bca\n"
    },
    {
      "commit": "39ce2282ed2b020e51e8d92f442b419ae9dd6434",
      "tree": "ec4bb0fc550d97dac474200246cedabb8b0759c5",
      "parents": [
        "9e80e7fa5ef60f02f35823bc58969c3d5a03453e",
        "05d1461f40a065acb66e6d5248609cf33c5b900a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 24 00:33:15 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 24 00:33:15 2015 +0000"
      },
      "message": "Merge \"Only detach shutdown thread if we attached it\""
    },
    {
      "commit": "05d1461f40a065acb66e6d5248609cf33c5b900a",
      "tree": "c31a40484dabb28d758f2dbcd375b6f96f6a8dd9",
      "parents": [
        "735969139b162f9d45a3c0e47dc24a8aec63c736"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Feb 23 15:31:58 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Feb 23 16:22:32 2015 -0800"
      },
      "message": "Only detach shutdown thread if we attached it\n\nSpeculative fix to:\n\"Request to unregister unattached thread\" bug.\n\nBug: 18713034\nChange-Id: I6e69088dd66970c704010397a11e3758cf107ff9\n"
    },
    {
      "commit": "24e04aa68c575d349eac0d9d09aab9bd3106ef94",
      "tree": "e6a14642cc4a4b409fe98a696b17968c6d0a65f4",
      "parents": [
        "38fee8ef4bc0f4dbe2c6d1f5585895f0c4d16984"
      ],
      "author": {
        "name": "Jean Christophe Beyler",
        "email": "jean.christophe.beyler@intel.com",
        "time": "Fri Sep 12 12:03:25 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Feb 23 15:43:46 2015 -0800"
      },
      "message": "ART: Allow the execution to stop if the compilation fails via an option\n\nThe current implementation continues the execution of the application if\ndex2oat fails by relying on the interpreter.\n\nThis patch adds a -Xno-dex-file-fallback option to stop the default behavior.\nThis can be used two-fold.\n\nFirst, one can enforce that a runtime only starts with a boot image. A\nfollow-up patch will ensure that dex2oat (for apps) and patchoat in general\nrequest that mode and close gracefully otherwise.\n\nSecond, this can be used for testing and debugging purposes, as it ensures\nthat compiler failures \u0026 aborts are not silently ignored.\n\nAdd testing.\n\nBug: 19100590\nChange-Id: Iaf07b5ccf00942ca8a8ec8687599320a3ddbc089\nSigned-off-by: Jean Christophe Beyler \u003cjean.christophe.beyler@intel.com\u003e\n"
    },
    {
      "commit": "5a2be3f40125af8b25fbbd9d55dc968168c76ed7",
      "tree": "070b920e71c927f112a6922f5e7b59668392f762",
      "parents": [
        "d98ff78976696fdde1e7868d4687719a0439544b"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Feb 16 13:51:51 2015 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Sat Feb 21 11:19:07 2015 +0000"
      },
      "message": "Implement a simple count based boot marker.\n\nWe write the number of failed boots to the marker and only\nprune the dalvik cache if the number of consecutive failed\nboots is higher than a predefined threshold.\n\nNote that the code is forgiving of errors related to boot\nmarkers; we continue the boot process even if we\u0027re unable\nto create / write or flush the boot marker.\n\nbug: 19360096\nChange-Id: Ia17c3b783318ddf43c9199d0f7f09c54a4176667\n"
    },
    {
      "commit": "f360ad091bdc1484db2e4e0f0492f620402dbf58",
      "tree": "18b356225ef42bdc3a50a62a5f7975872c9742c6",
      "parents": [
        "4ba405483177cf346211d43d97892bae6ff14119"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Feb 20 11:28:03 2015 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Feb 20 11:28:03 2015 -0800"
      },
      "message": "Make UseTLAB a bool flag.\n\nThis would make it easier to override its default value at build time.\n\nChange-Id: I643fe1afaf492f0443dc01df0c9a62bb3fa025d9\n"
    },
    {
      "commit": "b3b173bbbd1d1cbad555de13c3fa6765f5078bce",
      "tree": "89d380f42aed1a4c60db40f8be7d22501eaafa32",
      "parents": [
        "e5f5953e744060fde3b4489cea4d934d529e3e32"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Feb 06 09:16:32 2015 +0100"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Feb 17 22:42:43 2015 +0100"
      },
      "message": "Follow up 129144\n\nPasses JDWP options to debugger on runtime init so we no longer need\nto keep them on the heap.\n\nUpdates ParseJdwpOption to return Result for consistency.\n\nBug: 19275792\nChange-Id: I68b7e58908164d3e4cf9e3fbcc3dfab6ce0579a5\n"
    },
    {
      "commit": "53b36a26925e898b5f7cd3fad1d6a133eda62b4b",
      "tree": "f081ee7fb2f80bad763a5016d72127c4a3ea5aa5",
      "parents": [
        "69c37c3b5bc868003115898a3d1754604bb6db96",
        "c7d11887725e28db2796c848f4485e59d5eb690c"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Feb 10 18:47:42 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 10 18:47:42 2015 +0000"
      },
      "message": "Merge \"Handle variable size of methods properly between 32 and 64 bit.\""
    },
    {
      "commit": "c7d11887725e28db2796c848f4485e59d5eb690c",
      "tree": "97f39432ca9d94969f53cae91baaf8de57cf785d",
      "parents": [
        "a0acc2d5dbf8764b346da3d9e6ce1a91427fc4b5"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Feb 03 15:08:39 2015 -0800"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Feb 05 14:14:43 2015 -0800"
      },
      "message": "Handle variable size of methods properly between 32 and 64 bit.\n\nBug: 19100762\nChange-Id: I62358905fa882284d0201ed3c1e97e1286ccec5f\n"
    },
    {
      "commit": "3be6e9d904baa13d7cf51dfc6742dea12e766b2e",
      "tree": "43ad5f3655d73243ab212eefb83169471a1d87b3",
      "parents": [
        "24898d447640c3a45e6fc9f404b049eddc5a2709"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu Feb 05 16:30:58 2015 +0100"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu Feb 05 18:28:54 2015 +0100"
      },
      "message": "Read JDWP options from runtime\n\nAllocates JDWP::JdwpOptions on the heap and copies parsed options to\navoid the need to include jdwp/jdwp.h into runtime.h file.\n\nAlso does some minor cleanup and removes the old JDWP options parsing\ncode that became dead code after we move it to the new command-line\nparser.\n\nBug: 19275792\nChange-Id: I71901c89fbf2cc3c1901a089e2a98b4326c6ee70\n"
    },
    {
      "commit": "911b4be50c379d052dd9e5f9b59ce91df1340453",
      "tree": "790b7f3a25b0a31ddddc606b1ba2a24fc8146476",
      "parents": [
        "7e6a918ecfbe786c060bce0eeddd55c4c70f819d",
        "1c80becf5406cd6d95dc24bf47a0c5a3809ea281"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu Feb 05 08:19:21 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 05 08:19:22 2015 +0000"
      },
      "message": "Merge \"Fix transaction aborting\""
    },
    {
      "commit": "1c80becf5406cd6d95dc24bf47a0c5a3809ea281",
      "tree": "24853b3512e21b18df7a2401b174df891684334e",
      "parents": [
        "e5deafe9cdd81238c3916b04301ea884c93f46b5"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Feb 03 11:58:06 2015 +0100"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu Feb 05 09:05:41 2015 +0100"
      },
      "message": "Fix transaction aborting\n\nDuring compilation, a java.lang.InternalError is used to indicate\nthat class initialization failed and the enclosing transaction\nshould be aborted and the changes rolled back. However there is\nnothing preventing the code executed from a class initializer from\ncatching that exception (like catching Throwable and ignore it).\nTherefore we may return from the class initializer with no pending\nexception, even if the transaction was aborted, and not rollback\nthe changes properly.\n\nTo fix this, we now rely on the new Transaction::aborted_ field to\nknow whether a transaction aborted. When returning from the class\ninitializer without pending exception, we now check wether we aborted\nthe enclosing transaction. If that\u0027s the case, we set the status of\nthe class to kStatusError and throw a new java.lang.InternalError\nwith the original abort message.\n\nThis CL also contains some cleanup:\n- Renames Transaction::Abort to Transaction::Rollback which is less\nambiguous and more reflect what is done.\n- Moves the code throwing the java.lang.InternalError exception into\nthe Transaction::ThrowInternalError method so we do not duplicate\ncode. Now we may abort transaction more than once (because we may\nhave caught the java.lang.InternalError then execute code causing\nnew transaction abort), we only keep the first abort message to\nthrow the exception.\n- Updates transaction_test with more cases and more checks.\n- Bumps oat version to force recompilation with this fix.\n\nBug: 19202032\nChange-Id: Iedc6969528a68bbdf3123146e990df4dbc57834b\n"
    },
    {
      "commit": "eb6c7c23a8065af665e71f3408980bacd8ecc529",
      "tree": "b1eda7fb58ca02d9539c27774ef2bb044b9369f0",
      "parents": [
        "edf45678f133ce51d7aff43be68d9be3936ffca2"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Feb 04 17:30:43 2015 -0800"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Feb 04 17:32:05 2015 -0800"
      },
      "message": "art: Try to fix parsed_options_test on the build server\n\n(It works fine locally because environment variables are defined\ndifferently)\n\nAlso some minor cleanup elsewhere pointed out in the previous code\nreview.\n\nChange-Id: I80650d2be6ce467b838db85eb130a0020d7c1480\n"
    },
    {
      "commit": "aaebaa0121be3b9d9f13630585304482cbcaeb4b",
      "tree": "0f47257e497fdf920c8d703d2d00adab53934a76",
      "parents": [
        "babecc483276b46d84cb83d4f01e577228827305"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Mon Jan 26 10:55:53 2015 -0800"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Feb 04 13:29:19 2015 -0800"
      },
      "message": "art: Refactor RuntimeOptions/ParsedOptions\n\nRefactor the RuntimeOptions to be a\ntype-safe map (VariantMap, see runtime_options.h) and the ParsedOptions\nto delegate the parsing to CmdlineParser (see cmdline/cmdline_parser.h).\n\nThis is the start of a command line parsing refactor, and may include\nmore in the future (dex2oat, patchoat, etc).\n\nFor more details of the command line parsing generator usage see cmdline/README.md\n\nChange-Id: Ic67c6bca5e1f33bf2ec60e2e3ff8c366bab91563\n"
    },
    {
      "commit": "02c5f4dbc26d3a055953a5ac4578817bc0375b41",
      "tree": "980c75c6fce53f7d8ec5f7f50450b21381766e9b",
      "parents": [
        "9544368685b4aa65e746332e602491a3e8e5b247"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jan 30 10:18:03 2015 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jan 30 10:18:03 2015 -0800"
      },
      "message": "Remove some unused cutils/properties.h references\n\nAlso remove an obsolete include workaround\n\nChange-Id: Ie17387280285b969c4e9b5334bafde8239b9faf6\n"
    },
    {
      "commit": "2cd334ae2d4287216523882f0d298cf3901b7ab1",
      "tree": "b72d3d07e5a04151caca96cae345075b6e4452b0",
      "parents": [
        "604e2828896fbb8663897d1e75112da7305ead4c"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Jan 09 14:03:35 2015 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Jan 23 14:07:32 2015 -0800"
      },
      "message": "More of the concurrent copying collector.\n\nBug: 12687968\nChange-Id: I62f70274d47df6d6cab714df95c518b750ce3105\n"
    },
    {
      "commit": "e34fa1df67fbe0173b4ea9abddcc3ae3d0537037",
      "tree": "a5148f079b5671a95f60910c41981ebf91db3a02",
      "parents": [
        "9f06b1946ae3ef1d2fd75bbf7f0a288bc611fe58"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jan 14 14:55:47 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jan 15 12:23:28 2015 -0800"
      },
      "message": "Print more info in MarkSweep::VerifyRoot\n\nRefactored old root callback to use a new class called RootInfo.\nRootInfo contains all the relevant info related to the root\nassociated with the callback. The MarkSweep::VerifyRoot function\nnow uses this info to print the StackVisitor\u0027s described location\nif the GC root is of the type kRootJavaFrame.\n\nSome other cleanup.\n\nExample output:\nE/art     (12167): Tried to mark 0x123 not contained by any spaces\nE/art     (12167): Attempting see if it\u0027s a bad root\nE/art     (12167): Found invalid root: 0x123 with type RootJavaFrame\nE/art     (12167): Location\u003dVisiting method\n\u0027void java.lang.Runtime.gc()\u0027 at dex PC 0xffffffff (native PC 0x0)\nvreg\u003d0\n\n(cherry picked from commit 12f7423a2bb4bfab76700d84eb6d4338d211983a)\n\nBug: 18588862\nChange-Id: Ic5a2781f704e931265ffb3621c2eab4b2e25f60f\n"
    },
    {
      "commit": "57b34294758e9c00993913ebe43c7ee4698a5cc6",
      "tree": "981821619027686f83fbe00445299b0522f1df05",
      "parents": [
        "4945bfef00ac446d9c5458e55500229d463ab4c3"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 14 15:45:59 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 15 11:32:48 2015 -0800"
      },
      "message": "ART: Allow to compile interpret-only mips64 files\n\nInclude enough infrastructure to allow cross-compiling for mips64,\ninterpret-only. This includes the instruction-set-features, frame\nsize info and utils assembler.\n\nAlso add a disassembler for oatdump, and support in patchoat.\n\nNote: the runtime cannot run mips64, yet.\n\nChange-Id: Id106581fa76b478984741c62a8a03be0f370d992\n"
    },
    {
      "commit": "127d933868b767eca1ec5446e91a3e8df65c659e",
      "tree": "929a8d16f6899a5331c2443fbb0f5f5cf90c9196",
      "parents": [
        "c5573c29b7d7af0815e0e7b0ae241aafb52817a5",
        "fbef44de596d298dc6430f482dffc933a046dd28"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Jan 14 16:00:55 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 14 16:00:55 2015 +0000"
      },
      "message": "Merge \"Use unique_ptr to track ownership of dex files.\""
    },
    {
      "commit": "fbef44de596d298dc6430f482dffc933a046dd28",
      "tree": "57345e86b7dda80b82a263069230b7e312db5ef2",
      "parents": [
        "603104b5b5c3759b0bc2733bda2f972686a775a3"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Dec 23 09:48:51 2014 -0800"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Jan 13 16:32:34 2015 -0800"
      },
      "message": "Use unique_ptr to track ownership of dex files.\n\nBug: 18809837\nChange-Id: Ie571eae8fc19ee9207390cff5c7e2a38071b126a\n"
    },
    {
      "commit": "e6c143fae8ec487704b3d0d28914cda3d6d19e88",
      "tree": "270a0f83996e2abc15ab9d6b643f112afc89587e",
      "parents": [
        "8fccea249b1a6f1469eeea42c2b2cca06ce1c70d"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Jan 13 10:10:40 2015 +0100"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Jan 13 20:59:53 2015 +0100"
      },
      "message": "Fix bootclasspath string initialization\n\nWhen running the runtime with an image without explicitly specifying\nthe bootclasspath (with the -Xbootclasspath option), we construct it\nfrom the location of DEX files loaded from the image.\n\nThis allows to fix the JDWP test ClassPathsTest#testClassPaths001 on\nthe host where the bootclasspath is not explicitly specified on the\ncommand line.\n\nBug: 18812378\nChange-Id: I726eafd8b9e59dc9513beeb7082cf086fe89c4b1\n"
    },
    {
      "commit": "c275259449ec57987e52d3ab1eda3272b994488f",
      "tree": "ca3a6d182d768f8ef046a33576572a2e46370cc1",
      "parents": [
        "4270e74152d8a7cd979ab5a92fe2a8f84adb8a42"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Fri Jan 02 13:28:22 2015 -0800"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Jan 08 10:50:38 2015 -0800"
      },
      "message": "Remove back-door bootclasspath option from Runtime\n\nThe \u0027bootclasspath\u0027 option allowed users of the Runtime to load their\nown boot class path DexFiles and pass them directly to the Runtime as\nan option. This obscures the fact that the Runtime must take ownership\nof the boot class path DexFiles.\n\nThis change removes the use of the bootclasspath option by dex2oat and\nthe common runtime tests. For dex2oat, we use the existing\n-Xbootclasspath option instead, and introduce a new\n-Xbootclasspath-locations option to override the dex locations for the\nloaded boot class path dex files. For the common runtime tests, we\nsimply use -Xbootclasspath.\n\nBug: 18809837\nChange-Id: Idfcd4885390bf0f3dc350993756dd337220def73\n"
    },
    {
      "commit": "a2cfee3854193d541530f511ea328b0c1a3136c6",
      "tree": "63f1bf8871d8c4d87dd929701f482a9f9922775c",
      "parents": [
        "893e8881e31180721512c1b9e5ffacb03aad2e45"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Jan 07 16:37:24 2015 -0800"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Jan 07 16:38:57 2015 -0800"
      },
      "message": "Fix valgrind imgdiag test failure / memory leak in runtime\n\nBug: 18907700\nChange-Id: I399a6a64a743d3fac86b8bb5bf0eef1f23b95dc4\n"
    },
    {
      "commit": "487c1c9a0ae4022ef01c95bd92a6ea9cb14dc59c",
      "tree": "e165a620f4f1db106c7a9937ace88ddb0ff77888",
      "parents": [
        "50d55c65f3096bccbccddef3aa734ee15647cbe5"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Dec 15 19:26:29 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Dec 15 19:31:40 2014 -0800"
      },
      "message": "Don\u0027t add or remove verifiers if aborting\n\nPrevents deadlock if marking verifier roots fails when we attempt to\ndump the stack traces. The deadlock occurs from FindLocksAtDexPC\nsince this allocates a new verifier then adds / removes it from the\nmethod_verifiers_ array.\n\nBug: 18651054\nChange-Id: Ia9b9470ce5e4ac20bfbb39bef0283974cf487765\n"
    },
    {
      "commit": "d289348804738ad26f1c787b265d9d8156170ae1",
      "tree": "b795af78753cdddbe9a37d58b4fd414225d5f452",
      "parents": [
        "d1512fed4e43bba77fb21fd1b6322c22ef7c5881"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 12 15:49:56 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 12 15:49:56 2014 -0800"
      },
      "message": "Remove a dependency on AndroidConfig.h.\n\nChange-Id: I3fad347d49eb51f7a0f6d0ba9223d096a23f74a0\n"
    },
    {
      "commit": "956af0f0cb05422e38c1d22cbef309d16b8a1a12",
      "tree": "b558c804d206dad8da648b815750f1b3c97610ae",
      "parents": [
        "407d77f344cfbdbbfb50531c5f0766bc0892e2fe"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 11 14:34:28 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 12 09:33:34 2014 -0800"
      },
      "message": "Remove portable.\n\nChange-Id: I3bf3250fa866fd2265f1b115d52fa5dedc48a7fc\n"
    },
    {
      "commit": "cef50f0487929f72183623bc2a5819cf3a63bff6",
      "tree": "b37c68730d982b1bff28d0faa8072df0354b5dd9",
      "parents": [
        "b1a38e246cfbfb21100d9c9e57f33970e824f075"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Dec 09 17:38:52 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Dec 10 09:43:29 2014 -0800"
      },
      "message": "Stop daemon threads in runtime shutdown\n\nEnsure that daemons are stopped and joins before bringing down the\nruntime. This fixes bugs related to native code still running when\nwe shutdown the runtime.\n\nAlso changed the mutex destructor to allow contenders if we are\ndeleting a monitor lock level mutex.\n\nBug: 18577101\nChange-Id: I6457b35fd69c6997b9003b5f15f39861749843a9\n"
    },
    {
      "commit": "db978719dbcb73fc6acfd193561445c4462786b8",
      "tree": "be75911bfbe29a50fff685217c8ee155fb99ac10",
      "parents": [
        "015b137efb434528173779bc3ec8d72494456254"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 09 13:33:38 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 09 13:33:38 2014 +0000"
      },
      "message": "Revert \"Tidy gAborting.\"\n\nCreates infinite loop: b/18674776.\n\nThis reverts commit 015b137efb434528173779bc3ec8d72494456254.\n\nChange-Id: I67fe310d2e95ee2ec37bec842be06fb1123b6f4e\n"
    },
    {
      "commit": "015b137efb434528173779bc3ec8d72494456254",
      "tree": "2ccaba9d7465bd9995082a7251d34cf76b1ab1ea",
      "parents": [
        "a21fdd0432aa38b63d144ee4b92b6a567aab61d2"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Dec 04 19:53:52 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Dec 04 20:04:45 2014 -0800"
      },
      "message": "Tidy gAborting.\n\nReduce scope to Runtime::Abort and short-cut recursive case earlier. gAborting\nremains global to avoid two fatal errors in thread and the verifier.\n\nChange-Id: Ibc893f891ffee9a763c65cde9507d99083d47b3f\n"
    },
    {
      "commit": "9c7d8bcc60d3c80df074ebac6ec62cf60a852bfa",
      "tree": "a72910b509d54f039a25a04191dbdfbb4338c660",
      "parents": [
        "974eb9554259536daa74a729ec917bf829ed0301"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 17 14:52:44 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 17 15:36:43 2014 -0800"
      },
      "message": "Change IsZygote test to !IsCompiler\n\nEnables test coverage through run test 118.\n\nChange-Id: I21ce32e83629eb507b8440cebdd721d29171a984\n"
    },
    {
      "commit": "bc58ede2eebe20d592959b88c36fb74d4d832441",
      "tree": "d7fe67259afb70cb9ff911762c7edccc1d68ed1d",
      "parents": [
        "5d99e333bcb454add372fe776a00d3172146bd6b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 17 12:36:24 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 17 13:21:43 2014 -0800"
      },
      "message": "Don\u0027t call AddImageStringsToTable or MoveImageClassesToClassTable if running imageless\n\nIf we fail to create the image we use imageless running, this was\nbreaking AddImageStringsToTable since we didn\u0027t check for this\ncase. Added a check which avoids calling AddImageStringsToTable and\nMoveImageClassesToClassTable if we don\u0027t have an image.\n\nBug: 18412472\n\n(cherry picked from commit ab1953f35880f94752e1fcde3f6b3f0d3532125b)\n\nChange-Id: Ida18e1fcd04d752d55923e65c3122c0ac0bde728\n"
    },
    {
      "commit": "d582fa4ea62083a7598dded5b82dc2198b3daac7",
      "tree": "c76704c266ef4687eab425612ddf3fd24f93fe8d",
      "parents": [
        "f20076ff813b8012096ff31af236d59db3c0f4e1"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Nov 05 23:46:43 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Nov 13 16:17:46 2014 -0800"
      },
      "message": "Instruction set features for ARM64, MIPS and X86.\n\nAlso, refactor how feature strings are handled so they are additive or\nsubtractive.\nMake MIPS have features for FPU 32-bit and MIPS v2. Use in the quick compiler\nrather than #ifdefs that wouldn\u0027t have worked in cross-compilation.\nAdd SIMD features for x86/x86-64 proposed in:\n  https://android-review.googlesource.com/#/c/112370/\n\nBug: 18056890\n\nChange-Id: Ic88ff84a714926bd277beb74a430c5c7d5ed7666\n"
    },
    {
      "commit": "c2e20629c7dfdb0f679fa30c14b41fe68588697f",
      "tree": "ee428a17f93922e6f78e3482c348e6e7b81a8e4f",
      "parents": [
        "f55996d6b4a672e09fbe3a3563646a7682719b4a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 03 11:41:47 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 06 16:27:00 2014 -0800"
      },
      "message": "Add hash set\n\nMore memory efficient than libcxx since we do not box the values.\n\nChange intern table to use new hash set. Clean up intern table by\nremoving const casts and deleting unnecessary code.\n\nChanged the class linker to use a hash set, also added a pre-zygote\nclass table.\n\n5 samples of:\nadb shell stop \u0026\u0026 adb shell start \u0026\u0026 sleep 60 \u0026\u0026 adb shell dumpsys meminfo\nBefore:\n165929 kB: Native\n175859 kB: Native\n168434 kB: Native\n166559 kB: Native\n169958 kB: Native\n\nAfter:\n160972 kB: Native\n159439 kB: Native\n157204 kB: Native\n165093 kB: Native\n163039 kB: Native\n\nTODO: Add HashTable which is implemented by using a HashSet.\nTODO: Use for DexFile::find_class_def_misses_.\nTODO: Investigate using mem maps instead of native heap.\n\nBug: 17808975\n\nChange-Id: I93e376cf6eb9628cf52f4aefdadb6157acfb799a\n\n(cherry picked from commit e05d1d5fd86867afc7513b1c546375dba11eee50)\n"
    },
    {
      "commit": "277ccbd200ea43590dfc06a93ae184a765327ad0",
      "tree": "d89712e93da5fb2748989353c9ee071102cf3f33",
      "parents": [
        "ad17d41841ba1fb177fb0bf175ec0e9f5e1412b3"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 03 21:36:10 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 04 18:40:08 2014 -0800"
      },
      "message": "ART: More warnings\n\nEnable -Wno-conversion-null, -Wredundant-decls and -Wshadow in general,\nand -Wunused-but-set-parameter for GCC builds.\n\nChange-Id: I81bbdd762213444673c65d85edae594a523836e5\n"
    },
    {
      "commit": "6a3c1fcb4ba42ad4d5d142c17a3712a6ddd3866f",
      "tree": "9df58b57af13240a93a6da4eefcf03f70cce9ad9",
      "parents": [
        "c6e0955737e15f7c0c3575d4e13789b3411f4993"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 31 00:33:20 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Nov 03 20:01:04 2014 -0800"
      },
      "message": "Remove -Wno-unused-parameter and -Wno-sign-promo from base cflags.\n\nFix associated errors about unused paramenters and implict sign conversions.\nFor sign conversion this was largely in the area of enums, so add ostream\noperators for the effected enums and fix tools/generate-operator-out.py.\nTidy arena allocation code and arena allocated data types, rather than fixing\nnew and delete operators.\nRemove dead code.\n\nChange-Id: I5b433e722d2f75baacfacae4d32aef4a828bfe1b\n"
    },
    {
      "commit": "eb175f70ef352ce0b9bcafdf06c5ac22b0ff626a",
      "tree": "a69840165ef62cd918c001a421373bec9121314d",
      "parents": [
        "07f09809c0575e985249450843b06f266b831fe1"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 31 11:49:27 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 03 10:17:41 2014 -0800"
      },
      "message": "Add image strings to intern table\n\nWhen we create the runtime, we now add the image strings to the\nintern table if we are the zygote. This caused some memory bloat,\nso I added an extra unordered set to the intern table.\n\nThere is now two unordered sets (hash talbe). One for pre-zygote\ninterns and one for post-zygote interns. This helps since the\npre-zygote hash table doesn\u0027t get dirtied. Even with adding\nthe image strings, we get total memory savings of around 5-7 MB\nnative PSS after device boot.\n\nFB launch Before:\n2.20% art::DexFile::FindStringId(char const*) const\nTotalTime: 2069\nTotalTime: 1985\nTotalTime: 2088\nTotalTime: 2003\nTotalTime: 2034\nTotalTime: 2049\nAfter boot native PSS: 175585 kB: Native\n\nAfter:\n0.27% art::DexFile::FindStringId(char const*) const\nTotalTime: 1682\nTotalTime: 1756\nTotalTime: 1825\nTotalTime: 1751\nTotalTime: 1666\nTotalTime: 1813\nAfter boot native PSS: 167089 kB: Native\n\nBug: 18054905\nBug: 16828525\nBug: 17808975\n\n(cherry picked from commit b6e292bf7eac9d73c6b79b1e9b7b87beb02436c9)\n\nChange-Id: Ie367f3222f8c4db409ec49c3845276908b51e9c9\n"
    },
    {
      "commit": "2d2621a1463d2f3f03fa73503fa42e43657cdcfc",
      "tree": "1f7cf393693d72db5c186f99b04ac511958c6418",
      "parents": [
        "ac293277b69882105810fabd6c53f55de58823fe"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 23 16:48:06 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 27 16:49:43 2014 -0700"
      },
      "message": "Optimize method linking\n\nAdded more inlining, removed imt array allocation and replaced it\nwith a handle scope. Removed some un-necessary handle scopes.\n\nAdded logic to base interface method tables from the superclass so\nthat we dont need to reconstruct for every interface (large win).\n\nFacebook launch Dalvik KK MR2:\nTotalTime: 3165\nTotalTime: 3652\nTotalTime: 3143\nTotalTime: 3298\nTotalTime: 3212\nTotalTime: 3211\n\nFacebook launch TOT before:\nWaitTime: 3702\nWaitTime: 3616\nWaitTime: 3616\nWaitTime: 3687\nWaitTime: 3742\nWaitTime: 3767\n\nAfter optimizations:\nWaitTime: 2903\nWaitTime: 2953\nWaitTime: 2918\nWaitTime: 2940\nWaitTime: 2879\nWaitTime: 2792\n\nLinkInterfaceMethods no longer one of the hottest methods, new list:\n4.73% art::ClassLinker::LinkVirtualMethods(art::Thread*, art::Handle\u003cart::mirror::Class\u003e)\n3.07% art::DexFile::FindClassDef(char const*) const\n2.94% art::mirror::Class::FindDeclaredStaticField(art::mirror::DexCache const*, unsigned int)\n2.90% art::DexFile::FindStringId(char const*) const\n\nBug: 18054905\nBug: 16828525\n\n(cherry picked from commit 1fb463e42cf1d67595cff66d19c0f99e3046f4c4)\n\nChange-Id: I27cc70178fd3655fbe5a3178887fcba189d21321\n"
    },
    {
      "commit": "1e4dc259b4242c1a03415b5b5f4aed7a23e53f79",
      "tree": "edfca45c7c199c285c736076615553bae96f5cb4",
      "parents": [
        "1122c7fc277130814dd1d47b5e8be3ac35b1a5fc",
        "07d83c7a25022064ac0a8dac4fe2a7a38681fa4b"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Oct 23 10:58:45 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 23 10:58:46 2014 +0000"
      },
      "message": "Merge \"[native bridge] Make sure we always unload the native bridge\""
    },
    {
      "commit": "07d83c7a25022064ac0a8dac4fe2a7a38681fa4b",
      "tree": "a3b34ea26da0fa4751668441d6ae6698bce47680",
      "parents": [
        "46bf5e0759e80bbe69130d6731a95fd07e10507c"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Oct 22 21:02:23 2014 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Oct 23 11:57:10 2014 +0100"
      },
      "message": "[native bridge] Make sure we always unload the native bridge\n\nlibnativebridge may allocate some resources during loading and\nintialization and de-allocate them when unloading. This makes sure that\nwe don\u0027t leak anything.\n\nBug: 18097480\nChange-Id: I901f2d3c2ab1efb2875388f99e8c5c111ce82d5a\n"
    },
    {
      "commit": "c7dd295a4e0cc1d15c0c96088e55a85389bade74",
      "tree": "0c08a2236bc9ba5d9a4dc75d4dd0ed2d76f8f1c6",
      "parents": [
        "94e5af8602150efa95bde35cc9be9891ddf30135"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 21 23:31:19 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 22 12:06:23 2014 -0700"
      },
      "message": "Tidy up logging.\n\nMove gVerboseMethods to CompilerOptions. Now \"--verbose-methods\u003d\" option to\ndex2oat rather than runtime argument \"-verbose-methods:\".\nMove ToStr and Dumpable out of logging.h, move LogMessageData into logging.cc\nexcept for a forward declaration.\nRemove ConstDumpable as Dump methods are all const (and make this so if not\ncurrently true).\nMake LogSeverity an enum and improve compile time assertions and type checking.\nRemove log_severity.h that\u0027s only used in logging.h.\nWith system headers gone from logging.h, go add to .cc files missing system\nheader includes.\nAlso, make operator new in ValueObject private for compile time instantiation\nchecking.\n\nChange-Id: I3228f614500ccc9b14b49c72b9821c8b0db3d641\n"
    },
    {
      "commit": "a21bf6e7f64f142f371707c9a06aefdb1d383b5a",
      "tree": "76041b9b9125768a75b8054089d0634a5cbc4935",
      "parents": [
        "07f5c5edb7ef24ac35364e6ef9a8107a44e6564e",
        "4f55ff6887559f91f8fb1cbfab0d5b0f3b2cafbe"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 21 14:44:51 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 21 14:44:51 2014 +0000"
      },
      "message": "Merge \"Clarify a confusing error message.\""
    },
    {
      "commit": "4f55ff6887559f91f8fb1cbfab0d5b0f3b2cafbe",
      "tree": "0fc142e084c3b1f43ba84cb6a8d3ac436e66d5e6",
      "parents": [
        "9c1634645e7777aa21a2390f0603ce56a2d1fd2b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 21 07:36:19 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 21 07:36:19 2014 -0700"
      },
      "message": "Clarify a confusing error message.\n\nWe didn\u0027t run out of stack; we ran out of heap so there\u0027s no stack\ntrace in the pre-allocated exception we\u0027re throwing.\n\nBug: 17975886\nChange-Id: I406f84d7580a28451b232eba323f9c9978e678e6\n"
    },
    {
      "commit": "5830247c351a1c40f37666584d6c390f32c31957",
      "tree": "ff3f68eb1e51d3f68a95b2cf5cea5e686221e566",
      "parents": [
        "92cf9ae2d171b7c315f622f368e2bca53a492391",
        "2beeb82523bd3b8015851b69ccd088553ec0c226"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 21 09:18:53 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 21 09:18:53 2014 +0000"
      },
      "message": "Merge \"Shut down FaultManager after shutting down threads.\""
    },
    {
      "commit": "1d8cdbc5202378a5f1a4b3a1fba610675ed4dcd5",
      "tree": "6a1b0f49aee5a97b513bd0becc734d284aa7fb65",
      "parents": [
        "1c1786f193323d3bd706463894001117f3471595"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Sep 22 22:51:09 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 20 16:01:28 2014 -0700"
      },
      "message": "Refactor quick entrypoints\n\nRemove FinishCalleeSaveFrameSetup.\nAssembly routines write down anchor into TLS as well as placing runtime\nmethod in callee save frame.\nSimplify artSet64InstanceFromCode by not computing the referrer from the\nstack in the C++ code.\nMove assembly offset tests next to constant declaration and tidy arch_test.\n\nChange-Id: Iededeebc05e54a1e2bb7bb3572b8ba012cffa1c8\n"
    },
    {
      "commit": "2beeb82523bd3b8015851b69ccd088553ec0c226",
      "tree": "e9455ae69a394affdcd6a22618cd3c6c3ba272c2",
      "parents": [
        "fb686fb9a86f0b5fe70f49f2a3c5f49186df862f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Oct 20 18:13:22 2014 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Oct 20 18:14:43 2014 +0100"
      },
      "message": "Shut down FaultManager after shutting down threads.\n\nBug: 17703163\nChange-Id: I7a8454b61e887376d019af601f3a416d18bc0760\n"
    },
    {
      "commit": "36f32f6836b08ba41ac8799cbca8e7db209899b8",
      "tree": "7db4ff94e824f07ce23fa95b0eefb0be26abe92a",
      "parents": [
        "2ce8e60513cab4fc95448af709a2232984815c7b",
        "c5ef693b3fec328c6f4a566d572c36f6587a6ab1"
      ],
      "author": {
        "name": "Piotr Jastrzebski",
        "email": "haaawk@google.com",
        "time": "Fri Oct 17 07:36:44 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 17 07:36:44 2014 +0000"
      },
      "message": "Merge \"Stop using |instance_| in Runtime::InitNativeMethods.\""
    },
    {
      "commit": "d4c4d953035d4418126d36517e402f411d6a87f3",
      "tree": "735aacf812bbac7c1ae7c0788c1ca6f58cfa82ee",
      "parents": [
        "6f3dbbadf4ce66982eb3d400e0a74cb73eb034f3"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 16 20:31:53 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 16 21:30:37 2014 -0700"
      },
      "message": "Some code clean-up.\n\nChange-Id: I4b745fd5298cd61c793e3b57514b48347bd66c0e\n"
    },
    {
      "commit": "6f3dbbadf4ce66982eb3d400e0a74cb73eb034f3",
      "tree": "f7a20779e4d665f948c5fbcd26dac0071dafb8d4",
      "parents": [
        "2df6840f68dd18d7dd8dbf53f8b6181bbfdc4fc4"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 14 17:41:57 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 16 19:27:28 2014 -0700"
      },
      "message": "Make ART compile with GCC -O0 again.\n\nTidy up InstructionSetFeatures so that it has a type hierarchy dependent on\narchitecture.\nAdd to instruction_set_test to warn when InstructionSetFeatures don\u0027t agree\nwith ones from system properties, AT_HWCAP and /proc/cpuinfo.\nClean-up class linker entry point logic to not return entry points but to\ntest whether the passed code is the particular entrypoint. This works around\nimage trampolines that replicate entrypoints.\nBug: 17993736\n\nChange-Id: I5f4b49e88c3b02a79f9bee04f83395146ed7be23\n"
    },
    {
      "commit": "c5ef693b3fec328c6f4a566d572c36f6587a6ab1",
      "tree": "2476c6c8bc3bbcad30dd66a7f1e384acab6ea042",
      "parents": [
        "5c5efc253507eb43265997c9afcd778f72b6cef4"
      ],
      "author": {
        "name": "Piotr Jastrzebski",
        "email": "haaawk@google.com",
        "time": "Thu Oct 16 11:04:27 2014 +0100"
      },
      "committer": {
        "name": "Piotr Jastrzebski",
        "email": "haaawk@google.com",
        "time": "Thu Oct 16 11:15:57 2014 +0100"
      },
      "message": "Stop using |instance_| in Runtime::InitNativeMethods.\n\nRuntime::InitNativeMethods is a member function so we\ndon\u0027t need to use |instance_| to call Runtime methods there.\n\nI believe that this call uses |instance_| instead of |this|\nbecause it was originally in a static Runtime::Create method.\nIt was originally called \u0027instance_-\u003eInitLibraries();\u0027 and was\nmoved to Runtime::Start which is a member function here:\nhttp://ag/#/c/133053/6/src/runtime.cc\nand since then it was further moved and renamed but it kept using |instance_|\neven though use of |this| seems more appropriate.\n\nChange-Id: I79b9d23873272ba2f124e285602f1b2683c2f27f\n"
    },
    {
      "commit": "6e88ef6b604a7a945a466784580c42e6554c1289",
      "tree": "1e296564787b51514cf2eca5b732647c1a82912e",
      "parents": [
        "58e51f38e2304a08aa9ec380383e0b3614f96a96"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 14 15:01:24 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 14 15:43:21 2014 -0700"
      },
      "message": "Change MemMap::maps_ to not be global variable\n\nRuntime.exit() was causing globals to get destructed at the same time\nthat another thread was using it for allocating a new mem map.\n\nBug: 17962201\nChange-Id: I400cb7b8141d858f3c08a6fe59a02838c04c6962\n"
    },
    {
      "commit": "b57f1c70a58aabef3246d19174df0dcbdb25b779",
      "tree": "70bffd0375d3a84a345b3f221d7aa0a11ce07b13",
      "parents": [
        "f1f05d303988a5c071c87b760056be8358276c94"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Oct 08 13:56:25 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Oct 08 21:05:09 2014 -0700"
      },
      "message": "Disable kEnableJavaStackTraceHandler\n\nBug: 17890306\n\n(cherry picked from commit b6404fe0bb782cbbccda88903901fe0096a741d5)\n\nChange-Id: Ie13d6af1d384c6ebf87e8f055120609e2bff3338\n"
    },
    {
      "commit": "31d8f5295c24730a57cb36cbc41197f0b7e8397c",
      "tree": "e37953f590f924e06b9905f922407559a3661cb6",
      "parents": [
        "8283e079a209e81caafd123a12a525922368fd34"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Sep 29 11:22:54 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Sep 30 21:49:43 2014 -0700"
      },
      "message": "Add VMRuntime.isBootClassPathOnDisk\n\nBug: 17679443\n\n(cherry picked from commit 95a935415d44903b28326424beb4db5c013ef089)\n\nChange-Id: Iba40291dead3f0b6715903c986370fd0cf1e41e1\n"
    },
    {
      "commit": "9ef78b59da51080882e47505896b420977fd79ae",
      "tree": "6c568756e4e16e68d5d3346261009350969d5b77",
      "parents": [
        "95f03e6a4737f90685fab86e98709f1c4393d5ef"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 25 17:03:12 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 26 16:04:56 2014 -0700"
      },
      "message": "Fix broken runtime SetStatsEnabled logic\n\nPreviously, Runtime::SetStatsEnabled wouldn\u0027t take stats_enabled_\ninto account when deciding whether or not to increment / decrement\nteh stats enabled counter. This resulted in counter underflows and\nother errors which caused some CTS tests to fail.\n\nAlso added some locking to prevent race conditions.\n\nBug: 17360878\n\n(cherry picked from commit a98ffd745bbecb2e84a492194950c0b94966546b)\n\nChange-Id: I21d241a58d35bd6a607aa2305c6da81720bd0886\n"
    },
    {
      "commit": "a460bb07bb9000c6e299ee5cfa8e788d0fbd15f2",
      "tree": "c9b117702aca4d52506ed372e41c5b7fef5244e2",
      "parents": [
        "5957d54ac0de8a318dbc5a163734f877b1185e38",
        "a6da74e941d7cee498ac3880018a1d8dc953c6eb"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 24 22:00:11 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 24 22:00:12 2014 +0000"
      },
      "message": "Merge \"ART: Update for split native bridge initialization\""
    },
    {
      "commit": "a6da74e941d7cee498ac3880018a1d8dc953c6eb",
      "tree": "bb36d90e914f8a842abd7dd854ba168f9441e8db",
      "parents": [
        "a20b7b3ecf90bb761d7085403782721f2fb474c5"
      ],
      "author": {
        "name": "jgu21",
        "email": "jinghui.gu@intel.com",
        "time": "Wed Sep 10 06:57:17 2014 -0400"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 23 20:11:31 2014 -0700"
      },
      "message": "ART: Update for split native bridge initialization\n\nChange-Id: I0b93da93251c6b4638de786bf98cf99df07c3fc2\n"
    },
    {
      "commit": "3c13a794845e0cf7887e33b2ec20de7e6ba85f8f",
      "tree": "ab9a9a426a371de0c32e48a85fdda44a321a06a0",
      "parents": [
        "5cdd0734d2f79eedc530f5f1e876cd2110e29c86"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 18 20:56:04 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 18 23:43:07 2014 -0700"
      },
      "message": "ART: Only allow the zygote to create the global boot image\n\nDo not allow arbitrary processes, even when root, to write the\nboot image in /data/dalvik-cache.\n\nBug: 17478752, 17510489, 17439961\nChange-Id: Iba2b74be6d0752f4221f4ff5ee295b45a34cb2e1\n(cherry picked from commit 33c36d4f22ab6a5e61eb47b654deaf647c34e49c)\n"
    }
  ],
  "next": "c64746c1d224143d85232c8899126930e3fe5d27"
}
