)]}'
{
  "log": [
    {
      "commit": "ff7380681c50129ff689a11ac0f49512b4be7295",
      "tree": "79704a4b85026aae58c17780cd88377e8d5a3c08",
      "parents": [
        "9ada79cbe875dbcf7229b3f563303d21b0537d5f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 03 15:00:42 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 03 15:07:35 2012 -0800"
      },
      "message": "Fix a thread suspend timeout, and improve the diagnostics for thread suspend timeouts.\n\nI still needed gdb to understand this, but when we dump _native_ stacks, the\nadditional diagnostics here will be more helpful. (They\u0027re somewhat helpful\nanyway, in that they let you see the state all threads are in. Also, in a\nstarted runtime rather than the compiler, threads will have informative managed\nstacks.)\n\nAlso make the apparent duplication in the dex2oat timings clearer, and only\ninclude time spent on resolving strings if we resolved any strings.\n\nChange-Id: Icd469d9b085171ebb2dede2afb5140387cd3240c\n"
    },
    {
      "commit": "5167c97a4f672ba821453418e3943988fabbfc43",
      "tree": "7046f25582fd55e6bb4b19bb2fb7781b0d6c60a6",
      "parents": [
        "f2e08b29d3e49f491cd1c29c226154e92380c179"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 03 10:41:20 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 03 10:49:06 2012 -0800"
      },
      "message": "Improve debug-ability of native method registration\n\nIf we fail to register a native we construct a stack trace which needs\nThrowable and stack trace support. Registering Throwable\u0027s natives first\nand making Throwable a root supports this. Previously we could only\ngenerate a stack trace when thread start up was complete.\n\nChange-Id: Icc7c1657988c7f36aceb1d4f3e61e7218f55e055\n"
    },
    {
      "commit": "d9c67be7c116875d96b31e640ad47d587b205605",
      "tree": "55ba94dde3916dfb88681e4967e4a45926436716",
      "parents": [
        "763d5fb2f83d9c93b5b764533005865a3d1034e1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 02 19:54:06 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 03 09:28:44 2012 -0800"
      },
      "message": "Start parallelizing dex2oat.\n\nThis is enough to perform type resolution and verification in parallel.\n\nThere appears to be a bug in InitCpu --- if you start enough threads\nat once, the CHECK at the end starts to fail, with self_check \u003d\u003d NULL; I\u0027ve\ncommented it out for now, but this will cause test failures until it\u0027s fixed.\n\nChange-Id: I4919682520bc01d3262c6b3d00c7bd2c2860a52e\n"
    },
    {
      "commit": "02fbef0e356ca43b2032044f870d59de4a4ae92a",
      "tree": "690f599b1b3b6446933e6ccd2d3e0a904e8cd005",
      "parents": [
        "9e94b62ecdc19eb526a4944cc17a75a81028e08a"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jan 31 22:15:33 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jan 31 22:17:05 2012 -0800"
      },
      "message": "Set detail message on exceptions for unstarted runtimes.\n\nChange-Id: I7fcc9cc81ac33b1cdb322069c517bfdb31db2ac7\n"
    },
    {
      "commit": "0eb7d7e2a0c2767b5fd86bd52436c618fd4c3120",
      "tree": "a446a35a4dfc5d258bb2817b92319b2f8ea84b20",
      "parents": [
        "09cc2d39b3073ab0c613a9f660983e781693d958"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jan 31 21:12:32 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jan 31 21:14:59 2012 -0800"
      },
      "message": "Implement array allocation with access checks.\n\nChange-Id: I0b2c0274087f3f7ed5b0b71c441e5d7e5a25f819\n"
    },
    {
      "commit": "30fab40ee5a07af6b8c3b6b0e9438071695a57f4",
      "tree": "86514e3535c8b23cf52249a202076b59ac532021",
      "parents": [
        "f3778f66879fa038a7c9ebe46d5bc4167ddef7d8"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Jan 23 15:43:46 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jan 26 17:32:10 2012 -0800"
      },
      "message": "Upgrade to latest dlmalloc. Refactor Heap and related APIs to use STL like naming.\n\nWe fail assertions in the existing heap code, as does Dalvik. This refactoring\nis to clean the heap and space APIs and to reduce duplication of data\nand thereby solve a failing assertion in the card table.\n\nThis change also wires up clearing of soft references including before\nout-of-memory errors are reported.\n\nIn doing this change it was made clear that mspaces are buggy (and\nviolating invariants with the garbage collector). This\nchange upgrades to an un-Android molested version of dlmalloc-2.8.5 and\nimplements a version of the mspace morecore routine under ART control.\n\nrun-test 061-out-of-memory is updated for current heap sizes.\n\nChange-Id: I377e83ab2a8c78afb9b1881f03356929e2c9dc64\n"
    },
    {
      "commit": "899e789bd4741c0172268f7838ce8ab220a5f916",
      "tree": "2936efb7335a498eeaf25b479dd00ee2b9e73b8c",
      "parents": [
        "a0cb1204543934b1f4975025cd6047eb71dc6429"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 24 14:57:32 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 24 14:57:32 2012 -0800"
      },
      "message": "Include the thread name in Thread\u0027s operator\u003c\u003c output.\n\nFor example:\n\n Thread[2,tid\u003d1692,VmWait,Thread*\u003d0x416914d0,\"Signal Catcher\"]: reacting to signal 3\n\nChange-Id: I2b00e82af2ad0f09141dbf4e418bc0582e9b966d\n"
    },
    {
      "commit": "11d1b0c31ddd710d26068da8e0e4621002205b4b",
      "tree": "8d9c9c0dd5741214466775b86069032d609fd91c",
      "parents": [
        "bbdb1437f55948e5395b4dcb306e25605539a444"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 23 16:57:47 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 23 17:26:10 2012 -0800"
      },
      "message": "Reduce namespace pollution.\n\nThis leaves us with just the mspace stuff and three libdex functions to clean\nup. We deliberately expose the JII API, and I don\u0027t think there\u0027s anything we\ncan really do about the art_..._from_code stuff (and at least that starts with\n\"art_\").\n\nChange-Id: I77e58e8330cd2afeb496642302dfe3311e68091a\n"
    },
    {
      "commit": "6cc332ef80edf56221676e33ea16bb4022130344",
      "tree": "29447f2aab802649e2cc6314c1ec45d5f6da5e32",
      "parents": [
        "34cf51471a40d55dd63897daf855fec8179b0f7f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 20 22:59:20 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 20 22:59:20 2012 -0800"
      },
      "message": "Mac runtime fixes.\n\nThis is enough to let us run test-art-host on the Mac. The tests\nthat don\u0027t start a runtime (and thus don\u0027t try to dlopen(3)\nlibjavacore.dylib) succeed. The others fail, but I\u0027m not sure how\nthe Linux tests find libjavacore.so, so I\u0027m not sure how to fix\nthings for Mac OS.\n\nChange-Id: Idf489fc09f0a8f64fbb60dfcdbca9c3df2d4fdcb\n"
    },
    {
      "commit": "215f3144be114ac27002059330d903bf1ff5a592",
      "tree": "a1d274b36e26ddc922a6533bfc9ed2bcc3ce9db5",
      "parents": [
        "e65a6c99b0fd8908484b61c3c8f5a43cf0081f3c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 19 00:22:47 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 19 00:22:47 2012 -0800"
      },
      "message": "Even more Mac build fixes.\n\nThe stack one is a punt until I\u0027ve got an actual machine to test on.\n\nChange-Id: Ibb2132511f4c9f50f1f21651ca9ba7d5bed67e09\n"
    },
    {
      "commit": "c2dc62d1c9241dfe880a81698713c314b13aa63f",
      "tree": "b84921ea9b805afe24592e37a2e6163013d70e6a",
      "parents": [
        "b4807ec95e8ba663b47c13da3e065874b1b586e6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 17 20:06:12 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 17 20:32:22 2012 -0800"
      },
      "message": "Wire up work_around_app_jni_bugs.\n\nThis removes the cached value from struct JNIEnv. YAGNI.\n\nChange-Id: Iad1a9182e86d7bf533af14000b99bb0340d6af9b\n"
    },
    {
      "commit": "e7d856b911222aa000ca2be0f8f63f5b292141c3",
      "tree": "9628ef94e879c7ae026dd37ec05e1ab3251d830a",
      "parents": [
        "a51dc5b0a57fdf0574c069a15e065ccc96958f02"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jan 11 18:10:55 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jan 17 17:42:34 2012 -0800"
      },
      "message": "Add GC map to oat file\n\nChange-Id: Ied0462c711a09e2542f231c3b2fa31239958bd28\n"
    },
    {
      "commit": "26c0a1a376d8cd639fe6b16594fcb55a723450c0",
      "tree": "885e831445e7cafad50bd6b8aaefbbdedb0a91f9",
      "parents": [
        "20ee660cf7cc1038af40d5c6b43b3b6b426c3fc5"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue Jan 17 16:28:33 2012 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue Jan 17 16:28:33 2012 -0800"
      },
      "message": "Fixed tracer to stub additional classes as they\u0027re loaded.\n\nChange-Id: I00425f0ce6778426b9de3df80568c19b008324b4\n"
    },
    {
      "commit": "48d7222d2f543752ffb17db05e0b9e891061135c",
      "tree": "cf0295a04e1d32dce700620900bdc15a09d9913a",
      "parents": [
        "34c77ad4fc67de52463544b78a35b86d15b496e4"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Jan 11 15:19:51 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Jan 11 15:33:27 2012 -0800"
      },
      "message": "Add unimplemented artResolveMethodFromCode\n\nChange-Id: I1ba804c56413477451abff82939e27579494e1f9\n"
    },
    {
      "commit": "2692b573a56cd63a3c8c8aa1636e3766b6d8c9c4",
      "tree": "16d422b8b2d3ae8e20baa34090b7b5b2aa687cd8",
      "parents": [
        "db7d5e96d3e4090e69fac7b4ec1fc1bdcc0b436c"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Dec 16 15:42:28 2011 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon Dec 19 10:36:47 2011 -0800"
      },
      "message": "Changed tracer to use an instance to hold state instead of statics.\n\nChange-Id: I2fdcf5de7fbc745273b1a33cb409d13e72d24ab4\n"
    },
    {
      "commit": "6b0870dfaaa2e69a900ad7ed88e4e1d3697445aa",
      "tree": "e2b70620ea145ec8c0cace1ce558c9fdcb5dcd78",
      "parents": [
        "5c9f0b4d3933cdf6c3897dead3f77b16515b401c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Dec 15 19:38:12 2011 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Dec 15 20:18:49 2011 -0800"
      },
      "message": "Fixes relating to 003-omnibus-opcodes\n\nFix computation of bits needed for a PC in GC map.\nIn the case that ClassLinker::FindClass fails with a class loader,\nignore the exception and raise a NoClassDefFoundError.\nElide callee-save methods from stack traces.\n\nChange-Id: Ie0b7a544816e0c28d0f7df5821828aa84267cab7\n"
    },
    {
      "commit": "a9ef3fd82bebc6370fc3ddbb094988feb6c83022",
      "tree": "3832d0b31fdf28b6f67e4a16148a461ba299727b",
      "parents": [
        "dbf05b722af99ba2fd2f4c4fc7eb6c3e9880e5d1"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue Dec 13 18:33:43 2011 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Dec 15 13:10:04 2011 -0800"
      },
      "message": "Updates to tracer to log events.\n\nThe tracer can now generates traces for ddms or output to a logfile.\nAlso includes bugfixes to allow stack walking to work properly when\ntracing.\n\nChange-Id: I8894272d9a678eeb1d376734f7822daf2ab298e4\n"
    },
    {
      "commit": "dbf05b722af99ba2fd2f4c4fc7eb6c3e9880e5d1",
      "tree": "41a93654631c6163c777172e9254ab48ba4010e5",
      "parents": [
        "c2b4447ae9c0c1e77595620acac6508999df6698"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Dec 15 00:55:24 2011 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Dec 15 10:18:54 2011 -0800"
      },
      "message": "Adding newly required headers\n\nChange-Id: I4c121eaf8fdade8b038fdc696df2d93309d78133\n"
    },
    {
      "commit": "955724179c6c739524f610023287f56b24dc31de",
      "tree": "64f751693e72173ae0d044d8c54989b01f1195af",
      "parents": [
        "b87f73ea7524f6eb9da6da1af931a3d3fbb833ff"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 13 18:14:20 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 13 18:14:20 2011 -0800"
      },
      "message": "Don\u0027t default-construct std::strings and then assign them.\n\nChange-Id: I8c994d1e6a8d2ebe52eaa4f0132e0deb2ecfa5f3\n"
    },
    {
      "commit": "ebd1fd233c8e14f50844f15109ccd50b27079722",
      "tree": "b091c8d6fb2124c90949aa56e088ad95a827219b",
      "parents": [
        "3d30d9b09c16542d41554aad9f46ec9109ba5cb5"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Dec 07 15:46:26 2011 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Dec 08 13:29:55 2011 -0800"
      },
      "message": "Avoid compile time warnings by having ThreadNewException use AllocObject\n\nChange-Id: I6bd297fded28703b525eb700d96f58c2f79b8960\n"
    },
    {
      "commit": "3d30d9b09c16542d41554aad9f46ec9109ba5cb5",
      "tree": "fecce7ca0ea5e1fe0f5a03b917ab036a4a33b3b0",
      "parents": [
        "486013193c94b4321414c28ce9251911e14a0599"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 07 17:35:48 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 07 17:46:46 2011 -0800"
      },
      "message": "Fix detaching a debugger while threads are suspended.\n\nThe interesting part of this change is in \"thread_list.cc\".\n\nI\u0027ve done a TODO in TagFromClass, but haven\u0027t seen it make any practical\ndifference in a debugger. I also tightened up the types in GetThreadStatus\nwhile investigating the fact that we report some threads as \"RUNNING, SUSPENDED\",\nwhich makes no sense until you realize that TS_RUNNING corresponds to both\nour kRunnable thread state and our kNative thread state, the latter of which\nmay actually be a suspended thread.\n\nI\u0027ve also made us fail faster in the \"address in use\" jdwp failure case,\nand tidied up a bunch of the capitalization in logging.\n\nChange-Id: I0fe705791d07db31c4615addce44da4fdfbfd0d1\n"
    },
    {
      "commit": "486013193c94b4321414c28ce9251911e14a0599",
      "tree": "cc425b7c995f50a2cba00427083e678c4f2559f8",
      "parents": [
        "e343b76af81a005ef64f5e75a555389fd9147dab"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Dec 07 16:45:19 2011 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Dec 07 17:36:08 2011 -0800"
      },
      "message": "Be robust in stack trace if source file name is missing from dex file.\n\nChange-Id: Iaf39454bc5b82a2785c236400b0523eba5ab1ae9\n"
    },
    {
      "commit": "e343b76af81a005ef64f5e75a555389fd9147dab",
      "tree": "f6ec517c56338244d06723c49d610b5d948c3fa7",
      "parents": [
        "5b245f344cbe8402cfe35c3a42988081e71208bc"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon Dec 05 16:36:44 2011 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Dec 07 16:34:28 2011 -0800"
      },
      "message": "Stub to capture method entry/exit.\n\nAdded stubs to allow traceview to do method tracing. Currently only\noutputs to logcat, and a later change will generate the proper log file.\n\nChange-Id: Icaafc50e2eaf042ddc4d882011f7e8121bdd8b1c\n"
    },
    {
      "commit": "c88968adc6b0df10a891ebfbf7e67a3f1ee3eeea",
      "tree": "439c7bd94d197d95016f3b8a03db070a8f5d0955",
      "parents": [
        "21a5bf2dc8c9cb3fbe5a30a88d1149c328e3aaca"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Dec 07 15:34:30 2011 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Dec 07 15:35:13 2011 -0800"
      },
      "message": "Tolerate NULL method in Thread::GetCurrentMethod\n\nChange-Id: I99ad1ce7852d177a6bdd277570b1b1d710ae5d58\n"
    },
    {
      "commit": "21a5bf2dc8c9cb3fbe5a30a88d1149c328e3aaca",
      "tree": "37c621c34570383e124d4302cbc72b4f142a2962",
      "parents": [
        "4740cdff25875c530649a670b15e8ac52bfd7252"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 07 14:35:20 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 07 14:51:26 2011 -0800"
      },
      "message": "Detect over-long thread suspends and time out fatally.\n\nBug: 5726434\nChange-Id: Ib7d4429c2b195f59133bb6dc7f9072b705c53e82\n"
    },
    {
      "commit": "d07986fad0d08cdf05505cf9230714a2cf0dd9ae",
      "tree": "731b6abf2c2e0a5e51453a80029e1a9073b12354",
      "parents": [
        "7fe2c691866ad643b9e21dd2c9d36fa79ec454c3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 06 18:27:45 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 07 09:16:24 2011 -0800"
      },
      "message": "Implement JDWP InvokeMethod and breakpoints on exception throwing.\n\nChange-Id: I1142bee843104f0850fd7270752104d5d73a44f0\n"
    },
    {
      "commit": "3891c775503b1113a918180d9ecdaa79e92c69c6",
      "tree": "74b17ea01c8482d98bb958ee1dc23de1541c988e",
      "parents": [
        "6d4d9fcb4f01e287ee29e81cd1c941ee5d11d379"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Dec 06 15:38:28 2011 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Dec 06 15:38:28 2011 -0800"
      },
      "message": "Proxy methods don\u0027t have reference maps.\n\nChange-Id: I4e482164ab865a4930ed7bfefeaa6fc62208ea50\n"
    },
    {
      "commit": "6d4d9fcb4f01e287ee29e81cd1c941ee5d11d379",
      "tree": "4c715bef86a3c5a47f9cea43c4a092cf4766ed4b",
      "parents": [
        "86b0010c79ef95b5333cd540b7d3af34a9f1a643"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Nov 30 16:24:48 2011 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Dec 06 14:02:09 2011 -0800"
      },
      "message": "Reduce meta-data object sizes, introduce meta-data helper classes.\n\nChange-Id: Id14ad218f1c74c659701352fdf1a45bf6444daa3\n"
    },
    {
      "commit": "68fdbd07fc2b8856905e06f3cc945b046c3bfcd3",
      "tree": "b8982040e6a2fe250b3db127ea0b1dfdba552616",
      "parents": [
        "8aa6fc39f5cc0279d4ba2ee064de9758560dfedd"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 29 19:22:47 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 30 12:11:23 2011 -0800"
      },
      "message": "Return values for locals, so \"locals\" can show them.\n\nAlso implement a couple of other JDWP commands so jdb can show the length\nof arrays and the value of strings.\n\nChange-Id: Ib2a4dc2ee784ee10bdb924e91b0150aa8a96845d\n"
    },
    {
      "commit": "1b2b2f26c4202020d54cc7a5b9c342e6bca5b680",
      "tree": "7c100a95a820bd3534253dee613588420a42973b",
      "parents": [
        "8ea36f84a1fff2943127ef21ce371c99a7d191af"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Nov 22 11:47:44 2011 -0500"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Nov 22 11:47:44 2011 -0500"
      },
      "message": "Don\u0027t set the context class loader until it has been created.\n\nWe had a bug where we were setting the main thread\u0027s context\nclass loader to null because we hadn\u0027t created it yet. This\nmoves the setting of the context class loader to after it has\nbeen created.\n\nChange-Id: Ib4be1be646ade4c426dda3ced30ae1ba37ddd0f6\n"
    },
    {
      "commit": "761928d24e4e7ed7776b52243eaf9095ad35f448",
      "tree": "62a9d0c880c5412050e3eabe73c106c5374555dc",
      "parents": [
        "a215526d5c789cbef0f81a1f9aba22541a841cca"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 16 18:33:03 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 17 09:55:08 2011 -0800"
      },
      "message": "Implement a bit more debugger functionality.\n\nThis fixes the deadlock by making SuspendSelfForDebugger not take the thread\nlist lock, making it more like the equivalent code in dalvikvm.\n\nThere\u0027s also some code cleanup, and a few more of the JDWP calls jdb makes\non startup. By fixing the deadlock, attaching jdb now causes us to hit\nunimplemented code relating to thread stacks. That\u0027s tomorrow\u0027s job...\n\nChange-Id: I7eac1b95946228fa60666587ff8766bcabb28bb1\n"
    },
    {
      "commit": "a215526d5c789cbef0f81a1f9aba22541a841cca",
      "tree": "4d6baa6e24d41027300bd22a7b7746267dd45f23",
      "parents": [
        "254db0ff7ea6509a1c2914b1d9532e2041a0c4c4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 16 16:26:58 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 16 16:56:41 2011 -0800"
      },
      "message": "Implement enough JDWP functionality that we can attach jdb.\n\nYou can also try \"classes\" and \"classpath\", though anything else\ndeadlocks because we\u0027re suspended but jdb thinks we aren\u0027t. I don\u0027t\nthink that\u0027s a new bug with this patch, though, so I\u0027ll look at that\nnext.\n\nChange-Id: I54456b6a7fe72642be696c66aa485dc0c8a7f913\n"
    },
    {
      "commit": "b861dc0077342d5a1d2dd9cade3f6990620778ec",
      "tree": "0a1b245bf33351274d2fb0189c44ed37e83912c9",
      "parents": [
        "0c806e2b89662091c0c073a9c289629a66630245"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Nov 14 17:00:05 2011 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Nov 14 17:07:49 2011 -0800"
      },
      "message": "Extra debug info, make dump stack slightly more tolerant of bad input.\n\nChange-Id: I33b0ba5158ff60dcdb94fa8d831c193b4ea124ed\n"
    },
    {
      "commit": "9a6bae896a2f003d7216603bf29771d105c10ca4",
      "tree": "ccf8c190b8b4daf799e17ec8b04b77edfc5c72ff",
      "parents": [
        "169c9a7f46776b235d0a37d5e0ff27682deffe06"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Mon Nov 14 14:57:30 2011 -0500"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Mon Nov 14 17:46:40 2011 -0500"
      },
      "message": "Don\u0027t run managed code until the runtime has started.\n\nPreviously we ended up running managed code because JNI was\ntriggering class initializers to run. This was triggered by\nboth Thread::CreatePeer() and InitBoxingMethods().\n\nWhen these initializers were prevented from running, other\ncode broke:\n - Creating the peer for the main thread was relying on\n   ThreadGroup.\u003cclinit\u003e to assign the built-in thread groups.\n - Creating the boxed methods caused class initialization of\n   the primitive wrapper classes; these need to be initialized\n   before Thread.\u003cclinit\u003e is run to avoid a crash in its own\n   initializer.\n\nThis change works around those breaks by splitting thread peer\ncreation into two parts (allocation and running \u003cinit\u003e) and\nby calling InitBoxingMethods() during runtime start.\n\nChange-Id: I44be7170ce08451adf876ee73cba0f1f66d5a59e\n"
    },
    {
      "commit": "33dc7717cd16592bcc825350bea6305be9eb2ea1",
      "tree": "da0643d598a30d0fb3e63ba036f53cbda1e011fd",
      "parents": [
        "72db0d77d6c476c71c5bbaa14a80ca77f23a47f3"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Nov 09 17:54:24 2011 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Nov 11 10:51:43 2011 -0800"
      },
      "message": "Changed monitor to contain method and return pc values for logging.\n\nThe monitor saves method and return pc for logging, instead of the\nsource filename and line number. This saves it from having to do a\nlookup every time a fat lock is acquired.\n\nChange-Id: I88871abc90626b9e4dffc9677c093fd24937385c\n"
    },
    {
      "commit": "a757fac9b2f37d8789e66749c05bcfd284969f59",
      "tree": "6ee56e58873766c240266133cb1a8ae1466245c1",
      "parents": [
        "3aa66fd01a2b5ddbb895dd0af983cb2b700fbdc3"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Nov 09 15:09:59 2011 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Nov 09 15:09:59 2011 -0800"
      },
      "message": "Fix for GetCurrentLocation when stack is empty.\n\nGetCurrentLocation now returns a dummy value and line number when the\nstack is empty. This prevents problems with logging during locking when\na thread tries to join, where its stack would be empty.\n\nChange-Id: Ib49ac6fd86655bce579524bf7f165e95ae829d9a\n"
    },
    {
      "commit": "cac6cc72c3331257fa6437b36a131e5d551e2f3c",
      "tree": "f2d690a06397d3fceac391802925f48909e999d7",
      "parents": [
        "64155032b391fd7132bdd04ec0669135ae1176a2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 03 20:31:21 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 03 20:31:21 2011 -0700"
      },
      "message": "More SIGQUIT detail, earlier exit in AttachCurrentThread, handling recursive aborts, and reporting debug/optimized builds.\n\nChange-Id: I932b49a8e92a91e340b4d98b8771dd4a41b61229\n"
    },
    {
      "commit": "36e0a955e48e9357bff1eab783e493107ebfff62",
      "tree": "4716a5f66bc1c50611047dc14876fe3374fef396",
      "parents": [
        "5d4bdc29737a693027daaf6ed3f0792368eb4bae"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Nov 03 01:54:59 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Nov 03 01:54:59 2011 -0700"
      },
      "message": "Don\u0027t attach attached threads.\n\nChange-Id: Ibc9836fcd2f1ecd2d7040337433678577c72815e\n"
    },
    {
      "commit": "5d4bdc29737a693027daaf6ed3f0792368eb4bae",
      "tree": "6f1e9e59c2899488ab018d5cd8279641041f7634",
      "parents": [
        "5e863ddd72a70d33525f7403a695f7bc1c218938"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Nov 02 22:15:43 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Nov 02 22:56:53 2011 -0700"
      },
      "message": "Various runtime/JNI related fixes.\n\nNewObject returns NULL if exception is thrown in constructor.\nAllocate the peer then call constructor to ensure peer_ field is\ninitialized.\nChange thread state for AddFinalizer and pass current thread through for\nease.\n\nChange-Id: Ib578b6d44b08aef10fde5d8bc27cc6a2acbf6fae\n"
    },
    {
      "commit": "5d76c435082332ef79a22962386fa92a0870e378",
      "tree": "db8fdd7bfba3617494157b483e9df979f76dfdcc",
      "parents": [
        "4b6fe5a568ca2bc5e8fa110bf7af692cab220a15"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 31 21:42:49 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Nov 02 01:25:57 2011 -0700"
      },
      "message": "Mark non-image spaces and use write barrier for image spaces.\n\nDon\u0027t mark string and class roots that are in the image, alloc space\nreferences will be caught by the write barrier.\n\nChange-Id: Idcf9e4ede3b83556d4f8a01276273726dc6eea46\n"
    },
    {
      "commit": "b093c6b27f8ea9bbe2d49c03ebe345203a121199",
      "tree": "34e49f46eb30a2aee8590dbf11365c8b5824c16b",
      "parents": [
        "95e4ef7cebf2e33b6e73a3957089f958e41771f5"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 31 16:19:55 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 31 16:19:55 2011 -0700"
      },
      "message": "Support for access check in checkcast and instanceof.\n\nChange-Id: Ie15216618b35cace7d351be2b0a1c466ed6db489\n"
    },
    {
      "commit": "28ad40dc3ec2f09b0ffd4f6d6787bf1b532ccd5d",
      "tree": "f5628e47948a0d255112a3a7a01b67db41c8d424",
      "parents": [
        "e0918556e7551de638870dcad3f2023f94f85a50"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 27 15:19:26 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 28 23:14:15 2011 -0700"
      },
      "message": "Support for unresolved types in new-instance during verification.\n\nAlso, ensure that classes that don\u0027t load are erroneous, warn early\nabout exceptions left on a thread by the verifier/compiler, factor out\nslowpath checks for the compiler and fix the slowpath selector for\nconst-class.\n\nThis change causes more dex cache misses at runtime (more slowpath\nexecution). It also requires a \"mm clean-oat\".\n\nChange-Id: I014b49ebdd7d8f7dd2e39cc0958fc0b708d58c4c\n"
    },
    {
      "commit": "e0918556e7551de638870dcad3f2023f94f85a50",
      "tree": "b866a2b267124354ff2f46815d9870db7e093882",
      "parents": [
        "6a5bd495ff2f614f1495f652c86f3902d3bde537"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 28 17:18:29 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 28 17:34:47 2011 -0700"
      },
      "message": "Provide a convenience for logging types that don\u0027t have an operator\u003c\u003c.\n\nChange-Id: I650b852ded67576dc5ec7c8e57732cfb49f1ecd6\n"
    },
    {
      "commit": "00fae585c6e4a37b964c77f557fbf84f11e2d930",
      "tree": "a4c392a07c0f19c388bfad90cf2f0f8540a9a86a",
      "parents": [
        "fab62933853bf86275e683246f427cfe77205de3"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Oct 28 01:16:28 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Oct 28 12:34:54 2011 -0700"
      },
      "message": "Improved ClassLoader support for JNI FindClass, FieldFieldID, JNI_OnLoad\n\nAlso fix AttachCurrentThread to use the peer\u0027s thread name,\nnot the possibly null name from the arguments.\n\nChange-Id: I12e612619d828734d8353a0dca44fb4f11ee0c66\n"
    },
    {
      "commit": "47179f76e3f03fe3eb21dfb081d50733ca316371",
      "tree": "22300f10c4a07478be40653a50a59cc35dda8c0d",
      "parents": [
        "9876d923fd8867425b565ea12648506584c2bfb2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 27 16:44:39 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 27 16:44:39 2011 -0700"
      },
      "message": "Better -verbose:thread logging, and revert a CHECK.\n\nGo back to the old scheme where we\u0027d just refuse to take a suspend count\nnegative. (Like dalvik.)\n\nChange-Id: I4d37189dff1ffc035a9b5d65d97710ef65ead2d3\n"
    },
    {
      "commit": "cc4540ece917ef4b5c81ee684e3294e47e49ff5b",
      "tree": "a43560b6c3f70708cad676476e7aca395c10e337",
      "parents": [
        "baba887a4f5d2a454ab3f8f36a26346f8fdd0670"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Oct 27 13:06:03 2011 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Oct 27 13:10:05 2011 -0700"
      },
      "message": "Add slow path for OP_NEW_INSTANCE\n\nIf the type is unresolved at verification time, we can\u0027t be sure\nit\u0027s a valid new.  The compiler will now check for type resolution\nat compile time.  If unresolved, we\u0027ll call out to the slow path,\nwhere the access check will take place.\n\nThis CL only contains the compiler portion of this change.  For\nnow, the slow path code just calls out to the normal routine.\n\nChange-Id: Ia568a164389baedaa695a44f6845a0fdfe585b56\n"
    },
    {
      "commit": "9074b99bfbd5419e340f138a018b673ce71f77e8",
      "tree": "0910d8eb0e08eb6cb45a1f307b31b1bc17d70c31",
      "parents": [
        "b82b6878fb000d4731063b1bf15c39ff7c50b61f"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 26 17:41:55 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 26 22:53:21 2011 -0700"
      },
      "message": "Better unresolved type support.\n\nAlso fix bug where miranda methods were changing their declaring class\nand thereby breaking their return type indices.\nAdd support for dumping stacks on abort.\n\nChange-Id: I3782864736b12d1f81ab9aea4909213d3344ba13\n"
    },
    {
      "commit": "b82b6878fb000d4731063b1bf15c39ff7c50b61f",
      "tree": "8764bcc9307fb2f57820b25b1d098e15166a24bc",
      "parents": [
        "bfe487be25652c5456236661b9d9c3579d2296c1"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Oct 26 17:18:07 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Oct 26 21:43:27 2011 -0700"
      },
      "message": "Make sure threads allocating are in the kRunnable state\n\nChange-Id: I55a08fcd38b3388698ef571d2d4fa9553210e197\n"
    },
    {
      "commit": "bfe487be25652c5456236661b9d9c3579d2296c1",
      "tree": "03e98cfc794946a85a5dfcc3170ae138f78da9b1",
      "parents": [
        "234ab15b00f8120282d1833e5d7480eca2e35a29"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 26 15:48:55 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 26 16:52:02 2011 -0700"
      },
      "message": "Makes objects known to the debugger GC roots, implements the THST message, and lets DDMS request stack traces.\n\nThis fills out correct data in all columns of the \"Threads\" table, and\ndouble-clicking on a thread shows that thread\u0027s stack.\n\nChange-Id: I48f63c3612e12d35269158dc3a283f07db28c8e7\n"
    },
    {
      "commit": "234ab15b00f8120282d1833e5d7480eca2e35a29",
      "tree": "80f30c5cc581a1522369ebbae3e81182aad89dfd",
      "parents": [
        "c37e9a5c68724d09539f0b6bc3e4877faa597b39"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 26 14:02:26 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 26 14:24:38 2011 -0700"
      },
      "message": "Implement Dbg::Disconnected and Dbg::UndoDebuggerSuspensions.\n\nYou can now start and stop oatexec-based apps with DDMS running, with\nno UNIMPLEMENTEDs.\n\nChange-Id: Ic53e7bdd4ddd3ed93f9d807499d991ea30f48810\n"
    },
    {
      "commit": "f28bc5b6df6edb4b22aeca360ff102a95f3155e1",
      "tree": "45249fe10034ae05b945abb400822c91133436ca",
      "parents": [
        "03ddf6b9355b29b90c955359e104bd247640fd8b"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Oct 26 01:15:03 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Oct 26 13:50:03 2011 -0700"
      },
      "message": "Callers of SuspendAll should be in the kRunnable state\n\nChange-Id: I37996164a5fd56251134683f717e6e00541cab22\n"
    },
    {
      "commit": "0dd7ddaa36a2cf37490dc166ebc21818364130a7",
      "tree": "e381ae0cc965d2135ad99f07826333ccd03dfe90",
      "parents": [
        "ed6d78ed93c9b5b1988af6ca502a7e2eee0f2aaf"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Oct 25 15:47:53 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Oct 25 20:28:07 2011 -0700"
      },
      "message": "Several fixes for proper creation and use of vmap tables\n\nChange-Id: I7696115af4263df18ede0777ae14de7a3a7ada3b\n"
    },
    {
      "commit": "475fc23a4a7f35d1be87ea0b06c80df317a720ac",
      "tree": "91954099b3f4168a4bb97613219d1f5e329c1597",
      "parents": [
        "6ba581a6711c4fed24828c9a294b1b49ac6bbb30"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 25 15:00:35 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 25 15:00:35 2011 -0700"
      },
      "message": "More debugger support.\n\nThis gets us as far as the first DDMS-specific message, which means\nit\u0027s time to bring in a bunch more code.\n\nChange-Id: I3f9d75706d5ddde0aa21fcca558132282b94eff4\n"
    },
    {
      "commit": "6b4ef025af12b158d117fc80fc79acf620f411a0",
      "tree": "223c580477cbb7bde240b599da4bbee793b8dcaf",
      "parents": [
        "21b9f1355f0311b5c67bfdfa9dd63cacb1fba502"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Oct 23 14:59:04 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Oct 25 00:03:03 2011 -0700"
      },
      "message": "Make ResolveField not rely on Field::GetType resolution\n\nChange-Id: I10f4a874809ac9db2cd54e200cf10eb7c8979fce\n"
    },
    {
      "commit": "d81871cbbaa34c649e488f94f61a981db33123e5",
      "tree": "a3adf3b7469fee507a4d4c4491942fbd48b4483d",
      "parents": [
        "262bf46ddc91e5b4fbd367127ff21a1877d939f2"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 03 13:57:23 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 24 11:56:15 2011 -0700"
      },
      "message": "Verifier clean up.\n\nThis is the first part in trying to move to a more rigorous mode of\nasserting the validity of garbage collection maps.\nIn the bring over of the verifier from Dalvik a large class had been\ncreated where all of the Dalvik/Dex functions were static methods of\nthat class. This rewrite introduces 3 key classes, Verifier that\norchestrates the verification of a method, RegisterLine which describes\nthe types associated with registers for a particular PC and RegType\nwhich describes the current type of a register within a line. The\nfunctionality is brought over from Dalvik but cleaned up to not do\nthings like goto. Failing within the verifier is also cleaned up. By\nvirtue of having stateful objects the interfaces between different\naspects of the verifier are greatly simplified.\nTo save space, RegTypes are cached upto a maximum possible 2^16, and\ngiven an Id. As the number of RegTypes is typically small this means\nthat we have a full OO implementation but at a lower space cost than the\ncurrent convention that uses botched together enum values requiring\n32bits of storage in a RegisterLine rather than 16bits (ie half the\nspace requirement per register in a register line). To make use of\nthis space more rigorous monitor verification is brought back, and\nultimately I think we can work around bug 3215458 with richer RegTypes\nthat are aware of literal objects.\nThe code removes short cuts that had been added to Dalvik\u0027s verifier and\nappear illegitimate, it also fixes a large number of bugs in the\ndescription of the verifier.\nWhere possible the spaghetti of code is replaced with straight line\nif-then-elsif.. code that clearly follows the ordering semantics of the\nspecification. The code is also aiming toward having a more type\nrigorous description of the verification process, and when this isn\u0027t\npossible following the description convention of the specification.\n\nChange-Id: Id25b742018a2ad5ea95687973cca610d7e19513c\n"
    },
    {
      "commit": "4514d3c0e69a49f5dbe19138330a2bb2aee36d63",
      "tree": "f5bd420d6e5f1f2daeb418561c7adf016c161810",
      "parents": [
        "872d4ec7225444d9400d30f9027247deb91012fd"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Oct 21 17:01:31 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Oct 21 17:55:30 2011 -0700"
      },
      "message": "Fixes for ThreadStress test\n\n- Fix deadlock when ThreadGroup.remove(Thread) was run with\n  thread_list_lock_ but needed to GC to allocate an iterator\n- Fix ~MonitorList to clean ownership of any locks that might be held\n  by JNI or daemon threads on shutdown.\n\nChange-Id: I95e23c3b7c745f6a8387789949f3ec849458a27d\n"
    },
    {
      "commit": "872d4ec7225444d9400d30f9027247deb91012fd",
      "tree": "f293f31987efc6b43ab64fe043390959dc59c816",
      "parents": [
        "8f903f2c1832a93d3b479d412664e0972cc14d6a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 21 17:07:15 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 21 17:51:01 2011 -0700"
      },
      "message": "Bring across the JDWP implementation.\n\nThis compiles and links, but does nothing until we fill out the 100 or so\nunimplemented methods in \"debugger.cc\". Note that I also need to add the\nextra command-line handling for the JDWP agent stuff, and add calls from\nthe runtime to the various \"something interesting is going on\" hooks.\n\nChange-Id: I477cf3caf9e248c384ce1d739cbfadb60e2008bc\n"
    },
    {
      "commit": "6a4be3a6226cec645cf905dd352e44f7968a7fa4",
      "tree": "15c98c404db44f60850a94d9b3cff29ff16e1cd5",
      "parents": [
        "fb8a127fd2ca8eb6cbbc9d62b708c1fc2b3003a4"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 20 16:34:03 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 20 17:01:32 2011 -0700"
      },
      "message": "Fix calling conventions for UnresolvedDirectMethodTrampolineFromCode\n\nChange-Id: I1b35c33d89f0526c80bc8d21e064617d0eac6cd1\n"
    },
    {
      "commit": "40381fb9dc4b4cf274f1e58b2cdf4396202c6189",
      "tree": "8281b105d3e8a0850984f0ee182db01c33613f27",
      "parents": [
        "b06631143b944388fc68bedf6679c006dde5f461"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Oct 19 14:13:40 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 20 12:19:25 2011 -0700"
      },
      "message": "Reuse SIRT for C++ references\n\nChange-Id: I8310e55da42f55f7ec60f6b17face436c77a979f\n"
    },
    {
      "commit": "362f9bc807169bcfc8761dde067bbfb79b5ad0fd",
      "tree": "100689aa13a39913b43cb12780ba472897cd665a",
      "parents": [
        "fc86162ce2a3467acb690e18cc8bd9b3daafc606"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 17 18:56:41 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 17 20:26:54 2011 -0700"
      },
      "message": "Fix cpplint\u0027s whitespace warnings.\n\nChange-Id: I16b69d773e59b49e8e30227b5aa5cb1959a8930f\n"
    },
    {
      "commit": "fc86162ce2a3467acb690e18cc8bd9b3daafc606",
      "tree": "949145ce27225c93a41354460fa76cdc62647076",
      "parents": [
        "24a3c2e9924e8765c4a9b4d383cb8f3b922f9c9f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 17 17:57:47 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 17 20:21:27 2011 -0700"
      },
      "message": "Implement lock contention event logging.\n\nChange-Id: I88b30985590157bb5d04229a97f191b898f141bb\n"
    },
    {
      "commit": "24a3c2e9924e8765c4a9b4d383cb8f3b922f9c9f",
      "tree": "1f61ecb377be4abcba4838651bc9d98b548a3f81",
      "parents": [
        "3535c22d05bb4600255db90b490e625eda874b53"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Oct 17 18:07:52 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Oct 17 18:17:36 2011 -0700"
      },
      "message": "ClassLinker changes\n\n- Add ClassLinker::LockOwner for SignalCatcher\n- ClassLinker::ResolveMethod now sets CodeAndDirectMethod when code is available\n\nChange-Id: I404b80d1994808e018d00e0b30e8ba4f9d08fecc\n"
    },
    {
      "commit": "6fd03fb67e4628689f0abf34edeacc0e35b6295e",
      "tree": "89e287870dfb98b31f2ea7336166801dad5cd55a",
      "parents": [
        "29405cfc691196c21325e80d9a9f3795026eff4e"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Oct 17 16:11:00 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Oct 17 16:21:03 2011 -0700"
      },
      "message": "Fix ObjectInitFromCode to do callee frame setup\n\nChange-Id: I70512c85a3a810fd672495b86655c215a07bb977\n"
    },
    {
      "commit": "498508c1187dc07d3eae5476784cde20f5224d93",
      "tree": "cc7a3d31d9852ad5acbad2f3b51870d774ac64b7",
      "parents": [
        "accd83d1523545ac69bafd38e72a7d5cff8e2fac"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 17 14:58:22 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 17 14:58:22 2011 -0700"
      },
      "message": "Clean up the makefile and add a missing \u0027static\u0027.\n\nChange-Id: I9665c4c2ed6e2b4e9ad84e6c476d54b4e90a011c\n"
    },
    {
      "commit": "accd83d1523545ac69bafd38e72a7d5cff8e2fac",
      "tree": "1bad139a9b741483e34adc23b249e9f7fd1b6913",
      "parents": [
        "6f7c958469d9b5a44ca2472058961a13d437b7bf"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 17 14:25:58 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 17 14:25:58 2011 -0700"
      },
      "message": "Fix a heap lock/thread list lock deadlock.\n\nWe had an uncaught OOME whose uncaught exception handler -- running\nwith the thread lock held -- was trying to cause a GC while some\nother thread had the heap lock and was waiting for the thread list\nlock.\n\nChange-Id: I22177129562268837127d9edcc63ef5e93054bdf\n"
    },
    {
      "commit": "2ced6a534157d5d963693346904389c19775d2da",
      "tree": "469f865b0cca1c8388aad9b656258a7eef645c8c",
      "parents": [
        "7f14116b1daeb2d6c80ed93716f734d34865eae1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Oct 16 18:44:48 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 17 10:52:26 2011 -0700"
      },
      "message": "Implement EnsureCapacity, PushLocalFrame, and PopLocalFrame.\n\nThese are as good as the old implementations, except that unbalanced usages\nwon\u0027t be cleaned up completely (you\u0027ll slowly grow the vector in your JNIEnv).\n\nThis patch also renames IndirectReferenceTable::Contains to the less misleading\nContainsDirectPointer, and fixes JNI::GetObjectRefType to not claim that\ninvalid local references are locals indefinitely.\n\nWe also now include detail messages in OOMEs where possible. (Test 061 still\npasses.) We still log regardless, since OOME should be a rare thing.\n\nChange-Id: I77b2f44ea066e92c517e5c96700ec533727b9c78\n"
    },
    {
      "commit": "b04f69f90d2594092bec5b294bbe7329d295bd66",
      "tree": "b0b0bb6c4db1da0dbe5ff4025013247cc7815b41",
      "parents": [
        "0691851db8fb542f4058dfb6e75faf3f9a9f5ff4"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 17 00:40:54 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 17 00:41:31 2011 -0700"
      },
      "message": "Fix for test 069.\n\nCan\u0027t throw exception in fast interface lookup. Extra debugging that\nmethods look sane when creating native to managed records.\n\nChange-Id: If0b970c418db5ff075334af8359541a94e8680b7\n"
    },
    {
      "commit": "9fd66f5bb6a514147a53d57b419d18ecc7937122",
      "tree": "e053c8cd08ba67fc396bcb0bbf39b71c1b515783",
      "parents": [
        "3b6baaa203fa63f1522b2172a1645f90412afdae"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Oct 16 12:13:26 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Oct 16 12:53:42 2011 -0700"
      },
      "message": "Fix GetCurrentMethod to cope with callee-save frames.\n\nWe want to report something like this:\n\n Aborting because JNI app bug detected (see above for details)\n              in call to Throw\n              from Main.throwNullPointerException()V\n\nRather than something like this:\n\n Aborting because JNI app bug detected (see above for details)\n              in call to Throw\n              from java.lang.reflect.Method.$$$callee_save_method$$$()V\n\nChange-Id: I84491c315dc0f114da1ab1fd9f191b5d04daf76e\n"
    },
    {
      "commit": "466bb25416b88fabd5d4387b7c7e5cc1ece78b8c",
      "tree": "8d0952cbd850f1d0ac2e43a8372ce571fb4982d1",
      "parents": [
        "a10cd94bb77ed66fa0a8b66141c4504045c92d30"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 14 03:29:56 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 14 21:45:27 2011 -0700"
      },
      "message": "Proxy implementation\n\nThis rounds out the proxy implementation by adding missing pieces to the\nclass linker, extending tests and fixing issues in the runtime support.\nThere are also some tweaks for performance and to clean up Method/Object\na little.\nA unit test of the functionality is \"art/test/run-test 044\"\n\nChange-Id: Id94102d10b81cd9b12b95ba8618f6187490204c4\n"
    },
    {
      "commit": "30646836b4a1c6e5e80ddaea246cf9669eaa0628",
      "tree": "5713b45d0e42e4ec319d8aea75b6d2a6bdb079c3",
      "parents": [
        "95caa791e560da97363c0c0d22bfda4a7e7377c3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 13 16:59:46 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 13 16:59:46 2011 -0700"
      },
      "message": "Fix the double-OOME case again.\n\nThe key ingredient to this change is that the NULL check on the NewStringUTF\ncall in ClassLinker::FindClass was accidentally checking the input to the\nfunction (which we know isn\u0027t null) rather than the output (which will be\nif allocation fails).\n\nI\u0027ve also fixed a bunch of places where we were missing null checks on\nallocation, but there\u0027s a lot more to do.\n\nI\u0027ve stopped -Xcheck:jni from trying to dump pending OutOfMemoryError stacks\nbecause that\u0027s highly likely to go horribly wrong and just gets in the way\nof debugging the actual problem. (We could perhaps do better, so I\u0027ve added\na TODO.)\n\nIn DexFile, we were always allocating java.lang.Strings for the names of\neach local variable, even if we were only parsing the debug info for the\npurposes of translating a line number. This was less of a problem in Dalvik\nwhere the names were just const char*s, but since we go straight to Strings,\nthis was causing yet more OOME carnage (and is a lot of wasted effort).\n\nThis fixes the regression we were seeing in 061.\n\nChange-Id: I6241602756db3070b214ccb35e3760b37e1e3d10\n"
    },
    {
      "commit": "caab8c4ef372db5c119bfac1911fa27b174a935c",
      "tree": "375a1e284b123b91d4960aa674b223e1eea0583a",
      "parents": [
        "14b1b249bdd21d674c9371dee34f8ae055f73ba2"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 12 12:11:18 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 12 18:12:21 2011 -0700"
      },
      "message": "Various tidy ups, add LIKELY/UNLIKELY macros.\n\nMake more aggressive use of the dex cache when we have it.\n\nChange-Id: I125a7bac031f7f0cec68194b5380bdfd83c92833\n"
    },
    {
      "commit": "3147a2347d4fd775d51ec0a558955332beb9d1fe",
      "tree": "475ddcfda38de4162f62c41ae44a31611189b17f",
      "parents": [
        "7178e733005d40cb50cbfea4a9355765ccf05ee7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 12 15:55:07 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 12 16:08:09 2011 -0700"
      },
      "message": "Work around a bionic bug until I can fix bionic.\n\nAlso remove the Thread::pthread_ field, which isn\u0027t really needed. We also\ndon\u0027t need to update the TLS pointer to our Thread*, because the\naddress will be the same in the child anyway.\n\nChange-Id: I595832a682a03ccdbb510e8e9ce0a32d5c6526b3\n"
    },
    {
      "commit": "0796af03edc06d92bb8d631f1c0c23befdae2315",
      "tree": "c8681daeed4fb155b43d8a824e09a2fb973ff7fc",
      "parents": [
        "1761ffc98298999f929e17cc3707aede5b890e0a"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Oct 12 14:31:45 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Oct 12 14:37:20 2011 -0700"
      },
      "message": "Fix Object::IsSoftReference\n\nAlso changed -Xzygote to default boot.art and log arguments\n\nFinally Makefile work:\n- separate out test dependencies\n- changed zygote with art to work by replacing libdvm with libart[d]\n- changed Makefile defines to name and error check their arguments\n  This was to fix bug in generating ART_TARGET_EXECUTABLES\n  where we used $(1) when we meant $(3)\n\nChange-Id: I7ef6008eff1fe99b59d151b6793e8fd8ea5304d4\n"
    },
    {
      "commit": "caabb1b77b4a55eb1bb45ebcd3071c9ea01dd3cf",
      "tree": "b4c83f013acb40f842e45128c3fe7f6fe6580d47",
      "parents": [
        "1b5f4975e6e822ae06e2ccd361d62e4c1664d404"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Oct 11 18:09:13 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Oct 11 22:29:58 2011 -0700"
      },
      "message": "Implement Zygote_nativeForkSystemServer\n\nChange-Id: I2f0c7b93e8ac3b3fa4bb350e787065f92c17972f\n"
    },
    {
      "commit": "9f865379c9ddf03f7363f362a8d63cb5d5b4e722",
      "tree": "46de99ac011f522744d06102a0b1ed93c582bb17",
      "parents": [
        "32d6e1e5654433d7eadede89e1c770b2c839aee9"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 11 15:04:19 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 11 15:04:19 2011 -0700"
      },
      "message": "Quieten the \"invoking/returned\" and \"Visiting stack roots\" logging.\n\nChange-Id: I51de60f7baee64a378ca811749e63d5dc2bc9221\n"
    },
    {
      "commit": "5e73f9c8990819054f8e0a60061ee8beff1e024a",
      "tree": "b6cb1216c525c03c03f4948556dd431953735932",
      "parents": [
        "bf61ba3dcd9d9895b86a05e88762ff034b09b263"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Oct 11 11:28:12 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Oct 11 11:28:12 2011 -0700"
      },
      "message": "Do not visit null values in StackIndirectReferenceTable\n\nChange-Id: Ib76b9f6d27b265a35eea3ed69e2f495ed4e3df88\n"
    },
    {
      "commit": "df143242f4beaad4cc9fbabebfc033b68c40964e",
      "tree": "31695ba744f983aa0d8e80c314902e4355cff5ae",
      "parents": [
        "72ee0ae6207a5c0f1b13bb6a556e3e6f4d77a46a"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Oct 10 18:05:34 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Oct 10 18:21:23 2011 -0700"
      },
      "message": "Setup Thread\u0027s context ClassLoader and add image DexFiles to ClassLinker\u0027s boot classpath\n\nChange-Id: I84337c69ff743c58be9e7125d17fcccb514614ef\n"
    },
    {
      "commit": "aded5f7ab991f3c1132851599d3bc60ff6707eed",
      "tree": "7fb5e92c224adf98cadd67b7df99cc2d2851cbcb",
      "parents": [
        "bcbaaf3df56178263dbc110dcb0d1cf6c9d167c3"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Oct 07 17:15:04 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Oct 10 12:51:28 2011 -0700"
      },
      "message": "Working ClassLoader\n\nChange-Id: Ia1122165e47f846a1d4506111849f830d9f14c1b\n"
    },
    {
      "commit": "726079d3e2e50854cd6ca4c393f4529a796dba58",
      "tree": "717baafeaeadead98668b9ae6e0323cbb6347a25",
      "parents": [
        "fe2e17f424584ad6969c6fcf7cf6364c69355d53"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 07 18:43:44 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 10 11:02:18 2011 -0700"
      },
      "message": "Finish the OutOfMemoryError implementation.\n\nThis copes with the double-OOME case.\n\nAlso check that I don\u0027t leave local references in a newly-attached thread\u0027s\nlocal reference table, and fix the leaks this discovered.\n\nAlso fix the code that implements fillInNativeStackTrace to cope with the\nsituation where we\u0027re not able to allocate (because we\u0027re throwing\nOutOfMemoryError and there\u0027s not enough space left for our arrays).\n\nAlso fix the order of checking for a pending exception and popping the\nlocal references in the JNI native method invocation stub. (This fixes\nthe warnings we\u0027d been seeing from the IndirectReferenceTable in test 064.)\n\nAlso improve some -Xcheck:jni output.\n\nThis fixes test 061.\n\nChange-Id: Icc04a2c06339bd28d6772190350a86abfc5734b8\n"
    },
    {
      "commit": "4a510d8750d50b77353d0a5a891d1b9b3a48ecd5",
      "tree": "f6df9490fee55d2eae88b2281993e94953c6a805",
      "parents": [
        "4a14bc2e374add8f7df8232b3af3d8881eb4c84b"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Oct 09 14:30:24 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Oct 09 14:30:24 2011 -0700"
      },
      "message": "Ensure R4 is initialized for upcall. Sort suspend naming.\n\nChange-Id: I73eb49e1af2ced971eeaafb7c07f5d964dae1824\n"
    },
    {
      "commit": "ce9eca6de042f26e9eebc41c9bee8b4d14f753aa",
      "tree": "7a141da8787f6653b30595f478ec656fd8dd01d6",
      "parents": [
        "6384f644e8120a15bddb9a72976eac1c158aba16"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 07 17:11:03 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 07 18:24:23 2011 -0700"
      },
      "message": "Move from code field routines to runtime support.\n\nAdd support for exceptions from these routines. Use a macro for pending\nexception delivery. Fix bug in object_test where the signature of a\nFromCode function had changed.\n\nChange-Id: If486eff8659e5f6bb38d95b1139e8981656e4fb0\n"
    },
    {
      "commit": "f5a7a476e7ea63e094ff0f011dccc170607e6f6b",
      "tree": "4f07e57d5e3d2a82eeefcb7c6409f36b383b1d96",
      "parents": [
        "c2858561314513cc7bce2da7e13664aefef5a2ac"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 07 14:31:02 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 07 15:08:48 2011 -0700"
      },
      "message": "Enhance CHECK_EQ and friends to allow extra detail to be appended (like CHECK).\n\nChange-Id: Iaa980892ab31621c8bcca9ea7c6c4ee743333f45\n"
    },
    {
      "commit": "a43cb5e8fb29989dbb986b9b91a68cda150aa3c8",
      "tree": "de48a2f28f3515b8c668adbcf7d632cf6f76bbf1",
      "parents": [
        "3320cf46afd082398aa401b246e6f301cebdf64d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 07 11:37:59 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 07 12:13:53 2011 -0700"
      },
      "message": "Fix exception_test.cc and thread.cc and revert 3ddac99d4dc6a036fac59d8f0bdc664ef619fb04.\n\nThe test was wrong, and jni_compiler_test failed too because we\u0027d missed one\nplace where we need to mangle the PC.\n\nChange-Id: Ib67ca081e17b5ee8b8c64696082858b212b157f1\n"
    },
    {
      "commit": "3320cf46afd082398aa401b246e6f301cebdf64d",
      "tree": "99ef2b240ad81fa7cafa0bca51ca2364120fa762",
      "parents": [
        "4f0d07c783afef89703dce32c94440fc8621a29b"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Oct 04 14:58:28 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Oct 07 11:59:20 2011 -0700"
      },
      "message": "Move rest of code related blobs from Method to oat\n\nChange-Id: I55041b564ab65317c8b1f863005f20ba650a0322\n"
    },
    {
      "commit": "4f0d07c783afef89703dce32c94440fc8621a29b",
      "tree": "f6f4b68d5afc6551c61d3e86153878d9891ea13a",
      "parents": [
        "3ddac99d4dc6a036fac59d8f0bdc664ef619fb04"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 06 23:38:47 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 07 11:40:56 2011 -0700"
      },
      "message": "Spill possibly reference holding registers for runtime calls.\n\nLive references may be in registers when we crawl a stack for GC during\na runtime call. Whilst an exception won\u0027t occur we need to save the\ncallee save registers into the frame so the stack crawl can find their\nvalues. Create variants of the callee save method to save just the\nregisters that are necessary.\n\nChange-Id: I6fa479bffcbc333fe846f9bd3ef2e626e0209ed9\n"
    },
    {
      "commit": "3ddac99d4dc6a036fac59d8f0bdc664ef619fb04",
      "tree": "6c54efd6041912f1676ac9b43dddcfdd7684560a",
      "parents": [
        "418dfe7849f45535b5388a91bd7a16cfc20a612b"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Fri Oct 07 00:48:09 2011 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Fri Oct 07 00:48:09 2011 -0700"
      },
      "message": "Fix the PC. And we pass the unit tests on host and target again.\n\nChange-Id: I44a8db00269471bacd4031259f57358670583e49\n"
    },
    {
      "commit": "418dfe7849f45535b5388a91bd7a16cfc20a612b",
      "tree": "60af35d2d9352910c782d2ce90f63a4d89d4a516",
      "parents": [
        "1cb0a1dfc32531c79a968aeac26ccb5525862497"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 06 18:56:27 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 06 18:56:27 2011 -0700"
      },
      "message": "Enable AllocWithGrowth and OutOfMemoryError throwing.\n\nAlso fix a bug where we weren\u0027t correcting the pc for the first stack frame.\n\nChange-Id: Ic4196987eac85eff2f6d14171b19b4f5890b6c4d\n"
    },
    {
      "commit": "f57c47c29cd3388d1d78008a71c4e18f2217b70c",
      "tree": "346cbf0cdfa1367d42343cdd3aa98a10bb1bf189",
      "parents": [
        "aeac7543ca481bf84922c1f50df75a27f9fb7163"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 06 00:06:17 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 06 00:08:46 2011 -0700"
      },
      "message": "Fix vmap handling. Adjust all PCs by -2 in WalkStack.\n\nVmap handling didn\u0027t increment the register when it got the first hit in\nthe core spill mask (bug exposed by register promotion). Adjust PCs by -2\nin WalkStack so that ToDexPc calls don\u0027t need adjustment. This corrects\nline number information on \"run-test 054\".\n\nChange-Id: Iebfb4109b5234bb7357b5ba538883c28dfc7cb26\n"
    },
    {
      "commit": "ad25ac568407ceb14334e8551dd1c4dd0fd6993c",
      "tree": "f1e2edb4b87d0b5ce35f94069db2f6cdb77db210",
      "parents": [
        "8c2f6414e1cff9a024a14369352f7ce112528b9e"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 04 19:13:33 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 05 22:40:00 2011 -0700"
      },
      "message": "Static and direct resolution stub.\n\nEnsure that invoke static and direct go through a stub that causes\nresolution and initialization.\n\nChange-Id: I872900560322817d8f4378b04ac410d9ea0b3b17\n"
    },
    {
      "commit": "adb460d96702573de6e732ad58ca0380405cd928",
      "tree": "f70ad27d5fc007b70765a76644519234466dee61",
      "parents": [
        "68e76526e98432625464022cb26f66b9ef6f5af4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 05 17:02:34 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 05 17:02:34 2011 -0700"
      },
      "message": "Implement finalization.\n\nAlso make System.gc no longer a no-op. This replaces some of the\nMemberOffsets exposed by Heap with intention-revealing functions\nthat we\u0027ll want to share between all the actual GC implementations,\nbut there\u0027s still more to be done.\n\nChange-Id: I57ba26c0416fbbfe20142b7b6e27108684add7f9\n"
    },
    {
      "commit": "68e76526e98432625464022cb26f66b9ef6f5af4",
      "tree": "e657a389a34e5c14f0be60621b71124f15c2be4d",
      "parents": [
        "99f272349671e14ceada1cc795ce4c66a38ddd3e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 05 13:22:16 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 05 13:22:16 2011 -0700"
      },
      "message": "Start moving stack-related stuff out of thread.h.\n\nThis was in preparation for implementing \"SmartFrame\", which is back on hold\nwhile I finish finalization.\n\nChange-Id: I006c9cfbc34520b9b0a72972611036d908a1d84b\n"
    },
    {
      "commit": "99f272349671e14ceada1cc795ce4c66a38ddd3e",
      "tree": "ebd4a5c4c1ac47d837174daaf4684ae7b26c7b60",
      "parents": [
        "3ddc0d1108a00e14b60c60edcdeff3b81f9e35f9"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Oct 05 12:56:36 2011 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Oct 05 13:11:35 2011 -0700"
      },
      "message": "Special-case Object.\u003cinit\u003e invoke\n\nIdentify direct invokes to Object.\u003cinit\u003e and handle them similar\nto the old-word OP_INVOKE_OBJECT_INIT_xxx.  Also, added missing\nnull check for range-style invoke-direct and invoke-interface.\n\nChange-Id: I5789db4e85609b780063c4788fa40d627a6988c4\n"
    },
    {
      "commit": "ce30293d222c864fa281da98bc896dd1c98a9a16",
      "tree": "b56c3a7f8be3349aa50c78675e6959e51344938d",
      "parents": [
        "20cde9033d51103f31e21436e88f80e1170c78ad"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Oct 04 14:32:18 2011 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Oct 05 09:22:57 2011 -0700"
      },
      "message": "Compiler cleanup\n\n  o Added slow path for string resolution\n  o Removed dead throw internal and runtime error\n  o Restructured debug and optimization disable flags for make it easier\n    for command-line option support.\n  o Removed/converted #if 1/0 blocks\n\nChange-Id: I65fc561a55437b3f74d0dfff5af87f938008d70e\n"
    },
    {
      "commit": "b408de744566a5c5a80be1ba7f5c88407e816945",
      "tree": "fa282edb7134f16de6e3ff81181e6d9724039ab3",
      "parents": [
        "4377a7e93b47386de1e0c2e472a6e3e99d235331"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 04 14:35:05 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 04 14:51:27 2011 -0700"
      },
      "message": "Implement the \"unreasonable array allocation\" OutOfMemoryError.\n\nThis doesn\u0027t fix test 061 because we still need AllocWithGrowth, but at least\nit gets us far enough to need that.\n\nChange-Id: Ia7b4a1f91a31e25d439f36b17280ce21c9ed8933\n"
    },
    {
      "commit": "7502e2a419f84808518cf212b3d7145c7b959c76",
      "tree": "0eb3a05d72305db9b758ffc2d283ac5e428f9026",
      "parents": [
        "5cb5ad27944efb08d4556b3c0d362302e37e832b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Oct 02 13:24:37 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Oct 02 13:24:37 2011 -0700"
      },
      "message": "Fix the 051-thread test.\n\nThis changes Thread::Create to clean up the requested stack size before\npassing it to pthread_attr_setstacksize.\n\nI modified the test to work around the inherent raciness in the test, which\ncurrently causes us trouble because with all the debug logging, the thread\nthat initializes System.out takes longer than 1ms, so the first 40 or so\nthreads all get woken in non-numeric order.\n\nChange-Id: I8047bf00330aaf4210dcb53a4437b1fe0562179e\n"
    },
    {
      "commit": "5cb5ad27944efb08d4556b3c0d362302e37e832b",
      "tree": "63334f19072ca2ba7179973f0ce62101ee89605d",
      "parents": [
        "d6fe38d96b6116bd53cf2cb14734af8d69e08661"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Oct 02 12:13:39 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Oct 02 12:13:39 2011 -0700"
      },
      "message": "Fix exception throwing to support no detail message.\n\n(The empty string as a detail message is distinct from a NULL detail message,\nand is treated differently by Throwable.printStackTrace.)\n\nChange-Id: I8c65deac9f18c5782dcf6e72e4c37e6dd4174fe9\n"
    },
    {
      "commit": "991e3ac0daf35d23f7c5e602d113c12ff3971544",
      "tree": "2bf5a081893dc38805dbdc107ce0b8031f0ea179",
      "parents": [
        "2d831014d88e38c0c499ce8597dcdb17b9d4c4b9"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Sep 29 15:44:22 2011 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Sep 30 09:19:51 2011 -0700"
      },
      "message": "Clean up instanceof codegen in compiler.\n\nChange-Id: I0179a0746bc5aaef02129169b6a6b1bbbe30dc7e\n"
    },
    {
      "commit": "2d831014d88e38c0c499ce8597dcdb17b9d4c4b9",
      "tree": "793b222f8005580af855692045f7fe2804dca8d4",
      "parents": [
        "5d1ac920fdaef5d4ec8f66bb734488cd9660b024"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Wed Sep 28 22:06:53 2011 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Thu Sep 29 18:39:13 2011 -0700"
      },
      "message": "Code refactoring: Split thread.cc into thread.cc and runtime_support.cc.\n\nChange-Id: I8484ee2993a2eb927ebba1f7b9db4709d16dad00\n"
    },
    {
      "commit": "8dfc9d551a9603eb8bc8463621b7bc73c3035169",
      "tree": "0b2b29321943e40c718ae63f0fe4fdf1bb651a40",
      "parents": [
        "4f894e385e8ac018f078be75fea0a45696626b15"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Wed Sep 28 18:06:15 2011 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Wed Sep 28 18:07:36 2011 -0700"
      },
      "message": "For Stack Indirect Reference Table, visit roots in the table.\n\nChange-Id: Ib2574c54b080944e0be3c498578520d52df4d9ec\n"
    },
    {
      "commit": "4f894e385e8ac018f078be75fea0a45696626b15",
      "tree": "ce10f5891f700c6535091984c251730e8e50d02c",
      "parents": [
        "d1422f81bf9b35cb2aad3fb5615d3f5209014709"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Tue Sep 27 21:33:19 2011 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Wed Sep 28 15:47:56 2011 -0700"
      },
      "message": "Fix stack scanning bugs: Add PC OFFSET before retrieving Registermap.\n\nGC passes for the MemUsage of 5 MB * 100.\nNote that RegisterMap is uncompressed. Also add new GC test.\n\nChange-Id: I7a7afc845d4582f8f2f3ba95e4716266ec46c635\n"
    }
  ],
  "next": "d1422f81bf9b35cb2aad3fb5615d3f5209014709"
}
