)]}'
{
  "log": [
    {
      "commit": "98e2017cac7ca554602480fcefabbbe630a4a39b",
      "tree": "343df607f7735b57c4e066e9fbdccf0e8baca58a",
      "parents": [
        "72395bf298b7707ad9d93c3e51b57e1b8e010311"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 24 15:38:13 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 24 15:38:13 2012 -0700"
      },
      "message": "Remove the explicit dump of \"THREAD ENTRY POINTS\" from oatdump...\n\n...but ensure that the new code (which decodes references to the\nentry points in situ) gains the extra sanity checking that the\nexplicit dump had.\n\nChange-Id: I08802d6a0dc4295bf86f961b536c9adeab27396f\n"
    },
    {
      "commit": "5b17d08be8f9508ead25891c4d3e707f9dddfbc5",
      "tree": "7ff4d953cc0ec18761e318d3e23afbc4b1397bc9",
      "parents": [
        "4ba528faea217d7fc2b858cf878f6f4d8c6173d2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 23 16:57:28 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 23 16:57:28 2012 -0700"
      },
      "message": "Include stack sizes and address ranges in the SIGQUIT output.\n\nChange-Id: Idf96c5ccc6e33c8d58e8c05f830a41d7ef54a941\n"
    },
    {
      "commit": "e188419b971936086a188843378375f5ced13724",
      "tree": "176f45c1395b3efee8a6330512ee023960522797",
      "parents": [
        "90dc30f4b9967e850d0594e57dfa8e7cb0369575"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 23 12:38:15 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 23 12:38:15 2012 -0700"
      },
      "message": "Make Thread::InitStackHwm work on Mac OS.\n\nChange-Id: Id0170dbdff8112d8e48d41ab50a311076863151e\n"
    },
    {
      "commit": "c8dc101f8e89feb588de3326bd9be0b84228ca2a",
      "tree": "22a62a4fa08fcada514f6d6f4497dcef5a2221e5",
      "parents": [
        "8cfa88200fcae8dd0a9c4d3cadffc9284985c771"
      ],
      "author": {
        "name": "TDYa127",
        "email": "tdy@google.com",
        "time": "Thu Apr 19 07:03:33 2012 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Sat Apr 21 15:08:42 2012 -0700"
      },
      "message": "Use dex_pc instead of line_number.\n\nChange-Id: I3759319562428bccabccc66d7afd691682ecca55\n"
    },
    {
      "commit": "7b9d996e4cd7d154bb1a244d67139aff0c363cf2",
      "tree": "a9dabe8f910b4b8bf29c2f4285d860995e25f58d",
      "parents": [
        "934100aea5a0f498c17e2c4a1fd0193af1557b42"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 20 18:48:18 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 20 18:57:19 2012 -0700"
      },
      "message": "Tidy up some C-isms.\n\nChange-Id: I53b457cab9067369320457549071fc3e4c23c81b\n"
    },
    {
      "commit": "174651dea03956e160a2cff0d842954823c49134",
      "tree": "cee1f154612afe918a0640ee8aa33644b604c039",
      "parents": [
        "640529bdc78deaeb8d1f3e95da90f9eb5ce9806d"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Apr 19 15:27:22 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Apr 19 16:01:28 2012 -0700"
      },
      "message": "Fixed x86 division and modulus and merged their entry points.\n\nAlso enabled compilation of fill-array-data instructions in x86\n(untested), and improved x86 disassembly.\n\nChange-Id: Ia3d8d0766080d01f1c228f9283085024cadd528b\n"
    },
    {
      "commit": "4c5231d2cd83536584f7f1063d0afffa124fcec4",
      "tree": "73287cf769bd5214812be6da87e33809818198f2",
      "parents": [
        "a7e6cb4efd9384ac1520976f2d620c72bb08b758"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 18 16:54:31 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 18 16:54:31 2012 -0700"
      },
      "message": "Work around a Mac OS libc bug.\n\nIf you\u0027re dismantling the alternate signal stack the ss_size field should be\nignored, but isn\u0027t on Mac OS.\n\nChange-Id: Id6e93ed5089e375f0bd84a68efee36c34462cdf0\n"
    },
    {
      "commit": "36ecb789775eb5bd284ce5dd35d2e31e42354f24",
      "tree": "5265dd2a4cf859a2e5cee4b59197dfc3f4099e33",
      "parents": [
        "2acf36d8cfeb5ddb293904148aa70f25ef6d8845"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 17 16:55:45 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 17 16:55:45 2012 -0700"
      },
      "message": "Fix stack overflow handling.\n\nChange-Id: I829001fdf52d33fdeac599ba9225e9f8a40b7881\n"
    },
    {
      "commit": "2acf36d8cfeb5ddb293904148aa70f25ef6d8845",
      "tree": "5c62c963b8f46dadee9ab24a0264603dacd42fad",
      "parents": [
        "d8af1592a97f7447ecf93f85098cb36340ab0fe2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 17 13:30:13 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 17 13:30:13 2012 -0700"
      },
      "message": "Don\u0027t rely on transitive #includes.\n\nChange-Id: I76af535da581002b7c5315d432e5c19db62a86eb\n"
    },
    {
      "commit": "d8af1592a97f7447ecf93f85098cb36340ab0fe2",
      "tree": "3dd133bce3d71626a9662e6e44bafe80167b06fe",
      "parents": [
        "99250ba6a2cc72b8894dffa77c1fca5570087e3c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 16 20:40:15 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 17 13:11:30 2012 -0700"
      },
      "message": "Use an alternate signal stack for the unexpected signals on the host.\n\nThis lets us report native stack overflow somewhat sensibly.\n\nChange-Id: I841c285b2481aecc6edb0800f385ccc5665067ff\n"
    },
    {
      "commit": "99250ba6a2cc72b8894dffa77c1fca5570087e3c",
      "tree": "14f2ae6f7a229ed1c12d039a0dbf09e81f28afa5",
      "parents": [
        "a093362689f39f9c59a6e06782e028d2ddfe24bc"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 17 11:09:17 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 17 11:09:17 2012 -0700"
      },
      "message": "Fix Mac build.\n\nChange-Id: I290a782268af1171de971331e85661d68eebb2a6\n"
    },
    {
      "commit": "6e94f144e2d41c75c17c11f41ee8daba3455980b",
      "tree": "dbf12b488676c3208447795da00060a3279740d4",
      "parents": [
        "53d160d2bf4ae21fa524b7476da1feab8f1b819c"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Mon Apr 16 18:14:14 2012 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Mon Apr 16 18:39:47 2012 -0700"
      },
      "message": "Fix LLVM runtime failures.\n\nChange-Id: I39b35696687e00f7c3153b65fd49d741ce4625d0\n"
    },
    {
      "commit": "3ea0f42467790809fcfc9fc861605d465808090f",
      "tree": "a82b6c09bdc3819fc2da571a631401b5973888f2",
      "parents": [
        "4047efcc2fd4147a044a799400851a3bc470b738"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 16 17:01:43 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 16 17:01:43 2012 -0700"
      },
      "message": "Make failures caused by unimplemented entry points much clearer.\n\nBefore:\n\n  F 32344 32344 runtime_linux.cc:183] *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***\n  F 32344 32344 runtime_linux.cc:183] Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR) fault addr (nil)\n  F 32344 32344 libartd.so:-1] \t#00 ??+0x3adc15 [0x5592ac15]\n  F 32344 32344 libartd.so:-1] \t#01 ??+0x3ae5b9 [0x5592b5b9]\n  F 32344 32344 ??:-1] \t#02 [0x55573410]\n  F 32344 32344 libartd.so:-1] \t#03 ??+0x24cb86 [0x557c9b86]\n  F 32344 32344 libartd.so:-1] \t#04 ??+0x24d0c3 [0x557ca0c3]\n  F 32344 32344 libartd.so:-1] \t#05 art::JNI::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, char*)+0x48 [0x557d76e8]\n  F 32344 32344 libartd.so:-1] \t#06 art::CheckJNI::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, char*)+0xce [0x556e5cee]\n  F 32344 32344 oatexecd:-1] \t#07 _JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+0x29 [0x8085739]\n  F 32344 32344 oatexecd:-1] \t#08 ?? [0x8073c35]\n  F 32344 32344 oatexecd:-1] \t#09 ?? [0x8073fd7]\n  F 32344 32344 libc.so.6:-1] \t#10 __libc_start_main()+0xe6 [0x55afcbd6]\n  F 32344 32344 oatexecd:-1] \t#11 ?? [0x8071fc1]\n\nAfter:\n\n  F  5527  5527 thread.cc:81] void art::UnimplementedEntryPoint() unimplemented\n  F  5527  5527 runtime.cc:160] Runtime aborting...\n  F  5527  5527 runtime.cc:160] \"main\" prio\u003d5 tid\u003d1 Runnable\n  F  5527  5527 runtime.cc:160]   | group\u003d\"main\" sCount\u003d0 dsCount\u003d0 obj\u003d0x6121e928 self\u003d0x8c0c618\n  F  5527  5527 runtime.cc:160]   | sysTid\u003d5527 nice\u003d0 sched\u003d0/0 cgrp\u003ddefault handle\u003d1439185696\n  F  5527  5527 runtime.cc:160]   | schedstat\u003d( 66360090 54151 15 ) utm\u003d6 stm\u003d0 core\u003d20 HZ\u003d100\n  F  5527  5527 runtime.cc:160]   at java.lang.Math.ceil(Native method)\n  F  5527  5527 runtime.cc:160]   at java.lang.RealToString.longDigitGenerator(RealToString.java:269)\n  F  5527  5527 runtime.cc:160]   at java.lang.RealToString.convertDouble(RealToString.java:111)\n  F  5527  5527 runtime.cc:160]   at java.lang.RealToString.doubleToString(RealToString.java:59)\n  F  5527  5527 runtime.cc:160]   at java.lang.Double.toString(Double.java:317)\n  F  5527  5527 runtime.cc:160]   at java.lang.String.valueOf(String.java:1676)\n  F  5527  5527 runtime.cc:160]   at java.io.PrintStream.println(PrintStream.java:479)\n  F  5527  5527 runtime.cc:160]   at ReflectionTest.testFieldReflection(ReflectionTest.java:40)\n  F  5527  5527 runtime.cc:160]   at ReflectionTest.main(ReflectionTest.java:269)\n  F  5527  5527 runtime.cc:160]\n  F  5527  5527 libartd.so:-1] \t#00 ??+0x3adcb5 [0x5592acb5]\n  F  5527  5527 libartd.so:-1] \t#01 art::Runtime::Abort(char const*, int)+0x99 [0x558a1439]\n  F  5527  5527 libartd.so:-1] \t#02 art::LogMessage::~LogMessage()+0x3d0 [0x557dc060]\n  F  5527  5527 libartd.so:-1] \t#03 ??+0x33f644 [0x558bc644]\n  F  5527  5527 ??:-1] \t#04 [0x60735b9a]\n  F  5527  5527 libartd.so:-1] \t#05 ??+0x24cb86 [0x557c9b86]\n  F  5527  5527 libartd.so:-1] \t#06 ??+0x24d0c3 [0x557ca0c3]\n  F  5527  5527 libartd.so:-1] \t#07 art::JNI::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, char*)+0x48 [0x557d76e8]\n  F  5527  5527 libartd.so:-1] \t#08 art::CheckJNI::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, char*)+0xce [0x556e5cee]\n  F  5527  5527 oatexecd:-1] \t#09 _JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+0x29 [0x8085739]\n  F  5527  5527 oatexecd:-1] \t#10 ?? [0x8073c35]\n  F  5527  5527 oatexecd:-1] \t#11 ?? [0x8073fd7]\n  F  5527  5527 libc.so.6:-1] \t#12 __libc_start_main()+0xe6 [0x55afcbd6]\n  F  5527  5527 oatexecd:-1] \t#13 ?? [0x8071fc1]\n\nChange-Id: Id55f10f910ace94de3c985fabfd9a0fe15c3c8bf\n"
    },
    {
      "commit": "6414a97a3c6dc101ae8ebc9480114d0c327e8e8d",
      "tree": "23163e12928771d37c6156fd4bf31900793ce02f",
      "parents": [
        "d668a06b5dcc3b0f7f788da4d756cd4ee6f1d0fa"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Apr 14 14:20:04 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Apr 15 17:58:26 2012 -0700"
      },
      "message": "Add additional stack space to account for the dalvik native stack size\n\nChange-Id: Iede575cf5b2185f374c0617208e924cc88cdba6c\n"
    },
    {
      "commit": "776ac1fa61237db645adb4370a4aab888530caf4",
      "tree": "fbdfe1dec5f1c890d479f700f2b11549d5574119",
      "parents": [
        "42f302c1da4cf1abf935d7aee29ece8d90441e0c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Apr 13 23:36:36 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Apr 14 13:38:06 2012 -0700"
      },
      "message": "Separate out more of LLVM build. Move verifier.\n\nMove the verifier to its own directory and break out major components.\nAvoid compiling unused files as part of the LLVM build, increase the use\nof unimplemented for LLVM.\n\nChange-Id: Icd3b1708363fb70ae99417d06ef8669d60446533\n"
    },
    {
      "commit": "8a8b9cbe158ee13477f2381f164c519762a06fef",
      "tree": "df162a67ab78e40f8baf515f5d7bd18de1f368c4",
      "parents": [
        "e5eb1914de86129d78e965fb9f2e1bfb2aa68640"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 13 18:29:22 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 13 18:29:22 2012 -0700"
      },
      "message": "Improved OOME detail messages.\n\nExample (from logcat):\n\n  Throwing OutOfMemoryError \"Failed to allocate a 1036-byte byte[] (143176 total bytes free; largest possible contiguous allocation 976 bytes)\"\n\nChange-Id: I4c83cafef775aa0590613f26080981eae5ce7da4\n"
    },
    {
      "commit": "f24d3cedd395690f6904aaac80f84a100420f7a3",
      "tree": "1867ff0b6f3bebb4f611eaf72b05b14843c55d93",
      "parents": [
        "14fe6aea00598ba5d40d3e5bfa62f26a1c8cfdff"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 11 17:43:37 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 11 17:43:37 2012 -0700"
      },
      "message": "Enforce the use of accessors on JValue so we can ensure sign extension.\n\nChange-Id: I34810af7661d8674c84707afe5cfdf9e2c233f8b\n"
    },
    {
      "commit": "3d71d0799748aac23ce5935d61b909bec6e96461",
      "tree": "e9df4425b3f6aeb889c0e30d0a54fb667b8a70ea",
      "parents": [
        "836eb8086a58cefb2cd7c31df86ac071f80f0fda"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 10 18:28:35 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 10 18:28:35 2012 -0700"
      },
      "message": "Improve ARM disassembler to cope with JNI stubs.\n\nAlso decode r9-relative loads/stores, and add the Thread::state_ offset.\n\nAlso lose the implicit \u0027s\u0027 on the test instructions, and don\u0027t show the\ndestination register for those instructions, since they don\u0027t use it.\n\nExamples:\n\n            0x60cdd718: e599c060    ldr     r12, [r9, #96]  ; top_sirt_\n\n            0x60cdd754: e589c06c    str     r12, [r9, #108]  ; state_\n\n            0x60cdd760: e35c0000    cmp     r12, #0\n\n            0x60cdd7c4: 1a00000b    bne     44 (0x60cdd7f8)\n\n            0x60cdd814: e1200070    bkpt    #0\n\nChange-Id: I4afa9f47267daefded46211d62718fd7fb87cf97\n"
    },
    {
      "commit": "28fa76d17d741238da86dbdb47f721ae97c9eac8",
      "tree": "de34f96fbbda6d650db267bd595a20191b9a07cf",
      "parents": [
        "82914b6164fd0109531391975389e4f0ff6832c8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 09 17:31:46 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 09 17:59:35 2012 -0700"
      },
      "message": "A dirty (but useful) hack to decode thread offsets in disassembly.\n\nPlus more readable x86 formatting.\n\nAlso fix a bug decoding LDR (immediate, Thumb) encoding T1.\n\nChange-Id: I95c79d3fb4d912d1ef386b5843abd37d3652a476\n"
    },
    {
      "commit": "34e069606d6f1698cd3c33b39e72b79ae27e1c7b",
      "tree": "0feb7e9bde6cfe01c0df3ef2d8de3210570f7ce2",
      "parents": [
        "e62934d85fbc2d935afdad57eeade39ecbd7440a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 09 13:55:55 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 09 13:55:55 2012 -0700"
      },
      "message": "Remove the useless \"suspend count already zero\" message for new threads.\n\nWe can actually detect the expected case of this warning ourselves, and\nnot emit it. Then we can upgrade the WARNING to a FATAL.\n\nI also tripped over the fact that the operator\u003c\u003c for Thread::State was out\nof date, so I\u0027ve moved the Thread enums up to namespace scope so the script\ncan automatically generate correct operator\u003c\u003c implementations for us. (All\nthe high-numbered thread states have been off by one for a couple of weeks.)\n\nChange-Id: I5de573d33d641e5a3cba87b370e9620c8c66e633\n"
    },
    {
      "commit": "e62934d85fbc2d935afdad57eeade39ecbd7440a",
      "tree": "4792b15a3e58728d85adeed068d08d7e0dbfb67f",
      "parents": [
        "b0aa9d313b2cc36a0b6420266131631bee2da807"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 09 11:24:29 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 09 11:26:39 2012 -0700"
      },
      "message": "Like Mutex, failure to destroy a ConditionVariable on shutdown is a special case.\n\nChange-Id: Id9b710a4676169abab5eabb0603947e599012be3\n"
    },
    {
      "commit": "9c750f9b6283f62b3e6a93c0c6b2838abde5000e",
      "tree": "ba9d030321e0528a18159e74e23a6b65218b2555",
      "parents": [
        "c8eeb9b283d5053c1b1092363320646dc7c0deab"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 05 12:07:59 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 05 12:07:59 2012 -0700"
      },
      "message": "Ensure we don\u0027t AddLocalReference a bogus value when returning to native code from an upcall that threw.\n\nAlso add a few missing CHECKs.\n\nChange-Id: Icf29506b258a2177b5e80c75cd2710761431ba4b\n"
    },
    {
      "commit": "0791adc2249366c50684935a4c42ba5e58bc3746",
      "tree": "bc667e81a3528952ad144da7e181189eb9804727",
      "parents": [
        "540a5b768bf5f76bd71ebf66612fb2298899480f"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Apr 04 11:14:32 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Apr 04 11:26:11 2012 -0700"
      },
      "message": "Fix method tracing and allow alloc counting during tracing.\n\nForcing alignment on art_trace_exit_from_code was preventing the LR of\nprofiled frames from matching. Also, the merge of the different types of\nstalk walks introduced a small bug.\n\nThe metrod tracer now also supports the TRACE_COUNT_ALLOCS flag to count\nallocations during method tracing.\n\nChange-Id: Ief9e4612471a134a90eabf15432135162b633b92\n"
    },
    {
      "commit": "540a5b768bf5f76bd71ebf66612fb2298899480f",
      "tree": "fcba13f1694e25289f0dc79e6c097c03e65e386e",
      "parents": [
        "4165a83d250165c839850651e1b2a69e06128000"
      ],
      "author": {
        "name": "TDYa127",
        "email": "tdy@google.com",
        "time": "Tue Apr 03 18:56:08 2012 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Wed Apr 04 00:42:30 2012 -0700"
      },
      "message": "Compiler_LLVM doesn\u0027t use reference map.\n\nAlso, for runtime_support_llvm, we fix the throw_exception_from_code bug.\n\nCompiler LLVM haven\u0027t done the write barrier, so we need to scan image space.\n\nChange-Id: I2be8b5fb1cf2a677d90f568480e58c10b315f42d\n"
    },
    {
      "commit": "20efe54063f2740d16f01190b280cdba384c869b",
      "tree": "271e06250a2f738901c632bdca91dd4d8dcc52eb",
      "parents": [
        "64f884de66d0eb888a215e276f9b10ade0690413"
      ],
      "author": {
        "name": "TDYa127",
        "email": "tdy@google.com",
        "time": "Tue Apr 03 17:40:49 2012 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Tue Apr 03 23:27:29 2012 -0700"
      },
      "message": "Fix the GetCurrentMethod bug.\n\nChange-Id: I1f28dd991ed209afe42d785887bc15344baa4526\n"
    },
    {
      "commit": "17057b15cb8d8da97b2bc28fd38bdcc7a34e846e",
      "tree": "68112562cc3bece94ac075c918bdb1f91bce96ee",
      "parents": [
        "c5f40bf576e2acc148366b84a22842f321290aab"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 03 10:22:39 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 03 10:22:39 2012 -0700"
      },
      "message": "Fix shutdown when the current thread has been manually detached.\n\nChange-Id: I76990a88c31ff671c13e1e1a90710749911d185c\n"
    },
    {
      "commit": "3db5285b363553ea81bd8dd88ec448b66cf33d71",
      "tree": "a077922e6fe93d197dffc5ef196446e12e9fe1e4",
      "parents": [
        "2d7d319eb9161a6520709e33eaaa4fbb038d3019"
      ],
      "author": {
        "name": "TDYa127",
        "email": "tdy@google.com",
        "time": "Sun Apr 01 15:11:43 2012 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Sun Apr 01 21:35:39 2012 -0700"
      },
      "message": "Don\u0027t check gcmap while using LLVM compiler.\n\nChange-Id: If7b7113e3dd20b42b34cde1267cfe80e9122845b\n"
    },
    {
      "commit": "ee0d3fb2fbd736484fe8c3177a4e965ea86d1c65",
      "tree": "ea4c94a803007cb51faca6b520073e95d9f5de1a",
      "parents": [
        "f058c0fc5c32b45620d8e3ddc2758faf3be22a2c"
      ],
      "author": {
        "name": "TDYa127",
        "email": "tdy@google.com",
        "time": "Sun Apr 01 14:55:33 2012 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Sun Apr 01 18:25:21 2012 -0700"
      },
      "message": "LLVM doesn\u0027t use Frame.\n\nChange-Id: I34200a874739598c33cc8fe17db4f70d29073310\n"
    },
    {
      "commit": "0045a290e6b79a274250e3112880c04bde437d4a",
      "tree": "a125d556b6c817218b14f6f3f72079b83d0032c4",
      "parents": [
        "d23f5206cf72ca3fb53ac3049649bb7d018232bf"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Mar 31 21:08:41 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Mar 31 22:38:22 2012 -0700"
      },
      "message": "Avoid a case of eager initialization.\n\nDon\u0027t mark as initialized classes that contain static field\ninitialization.\n\nChange-Id: Iedcabbdf355e8861eb7731650eee1467f68ae0cd\n"
    },
    {
      "commit": "b5db3bb5b17f2bb42f3c62408938f4bf939f8a39",
      "tree": "c807681e5c5bab85d858bda8ce31b391131f5740",
      "parents": [
        "630e77d4648093ce9870c7558d78edea24eab06d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 29 20:00:31 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 29 20:00:31 2012 -0700"
      },
      "message": "Include more detail in a few CHECKs.\n\nChange-Id: Ie8142ebb8c353bcbca27708bf662f21018c2c915\n"
    },
    {
      "commit": "57b86d47b66322693a070185fadfb43cb9c12eab",
      "tree": "81d53304a63a660a683917a19f7dd83723a397ad",
      "parents": [
        "68aefb06c449df0bd8a34f3491f7594ee3f9dd0b"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Mar 27 16:05:41 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Mar 29 11:51:44 2012 -0700"
      },
      "message": "Refactor runtime support.\n\nChange-Id: Id7470a4105838150d5ceb73ab2c8c83e739660df\n"
    },
    {
      "commit": "534da072d3db3beecbd74e5aa23d630d73695f2c",
      "tree": "7967a15e2a3963d02fd0853e0d3c1941db4c635e",
      "parents": [
        "22869a9026a08b544eca4cefd67386d347e30d2c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 27 15:17:42 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 27 15:17:42 2012 -0700"
      },
      "message": "Reinstate code accidentally removed while moving it from ThreadList to Thread.\n\nChange-Id: I640741a4a64bccb408ac8c053a3538588fa9a8e1\n"
    },
    {
      "commit": "22869a9026a08b544eca4cefd67386d347e30d2c",
      "tree": "814001ed308907e6562516c247658291cc805545",
      "parents": [
        "ab7b9dcbfc4264a0bc4889c3e463ff88a67f6a30"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 27 14:08:24 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 27 14:08:24 2012 -0700"
      },
      "message": "Warn if a thread attaches without a name and blow up if a thread detaches while running.\n\nAlso don\u0027t crash if a thread attaches without a name. Doing so is allowed, even\nif it\u0027s not a good idea.\n\nChange-Id: If5796af689e9221ce21f443023b0d793a8be15b0\n"
    },
    {
      "commit": "ab7b9dcbfc4264a0bc4889c3e463ff88a67f6a30",
      "tree": "bc178657f840f31aeeb5ddf049c63b5091342d0b",
      "parents": [
        "0e6b28ca17396ce3fb6137391b1c30c34fde7fde"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 27 13:16:29 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 27 13:16:29 2012 -0700"
      },
      "message": "Actually track the JNI MonitorEnter/MonitorExit calls.\n\nAlso log if we do end up having to clean up behind a detaching thread.\n\nAlso add a few missing \"static\"s.\n\nChange-Id: I4ba1734b04b9a6dde112f3693a6dd171b42cd69c\n"
    },
    {
      "commit": "02f01fedc5180d1d5a795674f8c5bd0a3ce974d2",
      "tree": "a7984e631466aa39943082a771043b36855a0bde",
      "parents": [
        "b4669208ee02f16c198eb21332701b6a0c5af278"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Mon Mar 26 12:58:11 2012 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Mon Mar 26 21:13:11 2012 -0700"
      },
      "message": "Fix exception_test for (USE_LLVM_COMPILER) build.\n\nFinally tdy\u0027s patch marks the passing of all gtests on host.\n\n(cherry picked from commit daadfea12645ffafefa1c7debe1178ffc0db1148)\n\nChange-Id: I73ad33cba74d728716cee3656cd76b4be6febe1e\n"
    },
    {
      "commit": "9b2ba2ee9fafe46a08473657a2387fd20ab49a35",
      "tree": "fd2fd68fac377d3c342f511f5cc20fdaed94b75c",
      "parents": [
        "31a9933bfe68ef1241c74c6586b3bc259a0244ea"
      ],
      "author": {
        "name": "TDYa127",
        "email": "tdy@google.com",
        "time": "Mon Mar 19 10:12:32 2012 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Mon Mar 26 21:07:56 2012 -0700"
      },
      "message": "Implement LLVM version of stack walking. Fix Jni_Compiler tests.\n\nThread.cc has many visitors such as CatchBlockStackVisitor and\nReferenceMapVisitor that assume non-LLVM stack layout. LLVM version\u0027s\nexception handling and gc have no use of those. Per Ian\u0027s suggestion,\nthis LLVM CL relies on ShadowFrame to implement stack walking. And\nwe use the same Frame class in LLVM version. Result: The Thread.cc\nruntime is common across LLVM and non-LLVM compilers, except for\nWalkStack utility in Thread.cc.\n\nKey: LLVM\u0027s Frame has its (only) field point to the method* in the\nShadowFrame. With this, we finally pass all the jni_compiler tests.\n\n(cherry picked from commit aa4923361d850f8094a546e84ec18672ebbb19fb)\n\nConflicts:\n\n\tsrc/stack.cc\n\nChange-Id: I77098ee5fa7b16cb7e21c0de667e3d7ca5be256f\n"
    },
    {
      "commit": "28f1a147d77ec772db98bed890b50a9ddcff2365",
      "tree": "bebca04cea429109260854778da197ae594450d7",
      "parents": [
        "1cb0ae742072b5ea2c7f677e6ad220ba01255dae"
      ],
      "author": {
        "name": "TDYa127",
        "email": "tdy@google.com",
        "time": "Thu Mar 15 21:51:52 2012 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Mon Mar 26 20:53:38 2012 -0700"
      },
      "message": "Implement LLVM version of jni_compiler to pass 17 jni_compiler tests.\n\nBecause we now have both shadow_frame and sirt (which is just for SirtRef\u003c\u003e\nin the LLVM version), we define a new function NumStackReferences() as follows:\n  NumStackReferences() \u003d NumSirtReferences() + NumShadowFrameReferences().\n\n(cherry picked from commit 18fe89a14d212da9ec6841f4d19d08482a9610b7)\n\nChange-Id: Idd95ee4276801b1555be87934cd9c4f33ab8a88a\n"
    },
    {
      "commit": "f7ad17e108b9357d7c94c6218a8521140a667f3d",
      "tree": "79ab38c8ff414cd3ccd81782b14de88406f761be",
      "parents": [
        "eeb7edf786abf6dbcfc37964af8854caafda6b0b"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Thu Mar 15 03:10:03 2012 +0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Mon Mar 26 20:49:44 2012 -0700"
      },
      "message": "Split shadow stack from SIRT.\n\n(cherry picked from commit 4455f868a9a6553827ccbe1d25e29cf528a74422)\n\nChange-Id: I4f467cf5be812c600dc5fdb56a9236fe144bd380\n"
    },
    {
      "commit": "398f64b5805246765b699839b439e18c0dfbf2ee",
      "tree": "de3f86de82289b1734b12cdc7c4292f4aff16f55",
      "parents": [
        "ee0fa76b2e5d39ad36d1ff144b2d0270df81e606"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 26 18:05:48 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 26 18:05:48 2012 -0700"
      },
      "message": "Remove more lint, mostly C-style casts.\n\nChange-Id: Iaf1f23290e35ed48e5795fb20690953a9a834457\n"
    },
    {
      "commit": "fc9e6fabed89d948fa8c0e9d673e430076712c60",
      "tree": "12e01ab3a937729d9482ab7fded1f1e0ab73dbd7",
      "parents": [
        "67d920071fe4a0aa8b8bc339e93b18276238c320"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Mar 23 15:14:29 2012 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Mon Mar 26 16:06:01 2012 -0700"
      },
      "message": "Compiler intrinsics\n\nAdd intrinsic support.  Some of these appear to be of\nlimited value, so we may end up removing a few.  In general,\nthe instrinsics provide small, but measurable, gains.\n\nOnly Arm is currently supported, but most of these should\nwork for our other targets as well.\n\nThis is an interim solution.  My plan is to the intrinsic\nrecognition action up into the basic block building phase once\nwe start doing inlining.\n\nChange-Id: Ia2913f2cdecaa4e80469caf69dbf8e2f61d4506a\n"
    },
    {
      "commit": "c0f0933249cf516b37717faa766e1e9808f7c1f8",
      "tree": "04aedbf3e8502637673b82cf181dfab1b5aca1a6",
      "parents": [
        "942df41c03ddb9f7b47a34fcfc4414d8b8ca8ce1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 26 13:27:06 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 26 13:27:06 2012 -0700"
      },
      "message": "Add the missing link between compiled code and the debugger.\n\nWhen a debugger connects and disconnects, we now let compiled code know that we\nneed to be kept informed about what\u0027s going on.\n\nAlso fix a threading bug when threads exit with a debugger attached.\n\nAlso some minor tidying, mostly involving naming.\n\nChange-Id: Iba0e8b9d192ac76ba1cd29a8b1e6d94f6f20dea8\n"
    },
    {
      "commit": "462c94449720e0dc6b93d7138d835d345ccf67ae",
      "tree": "e719ceab0e64e0cc2ca4acb6ee715623ab458215",
      "parents": [
        "81ff3184e7eb8de4605c7646674ea4f9fa29b5f3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 23 18:47:50 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 26 08:42:04 2012 -0700"
      },
      "message": "Fix AttachCurrentThread to use the right thread group.\n\nChange-Id: I9818845c005563d894a571edc4f9be9862312380\n"
    },
    {
      "commit": "81ff3184e7eb8de4605c7646674ea4f9fa29b5f3",
      "tree": "eaf443fcc575d3a793af3ab3e435211981a1c1b1",
      "parents": [
        "5147733292cd0b80ca7da3099e43cc549d67526b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 23 20:35:56 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 26 08:38:34 2012 -0700"
      },
      "message": "Nomenclature improvements.\n\nChange-Id: I809ab04b6ee74bb8141791e1f3f5d7e3f4efb61c\n"
    },
    {
      "commit": "e66ac79b90a12b01b9d67ee9f7f586e638e67fab",
      "tree": "aec673a015a0b6ef3107a2612b2dc455ea163561",
      "parents": [
        "250455229aa0cc07bbd18174efe510bd52631a99"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon Mar 19 16:08:46 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Mar 23 16:53:08 2012 -0700"
      },
      "message": "Fix to use a new context when verifying the stack.\n\n(cherry picked from commit 19ff5e52f1409838a505c7f63fd57604c3b48fb3)\n\nChange-Id: I45e8cc09a81d41b250a4496e2d010746b208a715\n"
    },
    {
      "commit": "250455229aa0cc07bbd18174efe510bd52631a99",
      "tree": "1499cfc216d6092057a4c4bf996c2ce1a2c360ca",
      "parents": [
        "eb5701498830a406e957d11481296eb11734e850"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue Mar 13 19:34:37 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Mar 23 16:49:39 2012 -0700"
      },
      "message": "Added option to allow verification of objects on the stack.\n\nCurrently it\u0027s defined out by VERIFY_OBJECT_ENABLED. Also made various\nfixes to allow heap object verification to work again.\n\n(cherry picked from commit d4983495782be8d54c9c1f0266dc52395b947724)\n\nChange-Id: Icd625e1e0dc240c0ad1d10e2c58c7d5d63fec030\n"
    },
    {
      "commit": "c6f3bb87ffbb44d902c4a1f67a71bb108bd01560",
      "tree": "c423db1d6e7914e57559ab5a4325094e6f1ea5c0",
      "parents": [
        "e5b7894351ecc5ef99442eea0700c913178c95ce"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Mar 21 20:40:33 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Mar 21 20:41:16 2012 -0700"
      },
      "message": "Further x86 progress and image creation.\n\nChange-Id: Idafadfc55228541536f25d2c92d40d9e0510b602\n"
    },
    {
      "commit": "b3ab25b58945f1bd22da1be2eb49dc3eb121011e",
      "tree": "e17de76e6be5e2b1bbeea8c66cecc782bc7fb417",
      "parents": [
        "19daac61b9e73c0c805538e77f6e75ef273caa0f"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Mar 19 01:12:01 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Mar 19 08:39:59 2012 -0700"
      },
      "message": "Enable compiler_test on host.\n\nChange-Id: I67a745ba78567af6c967cc44cd9c9640ef5ba398\n"
    },
    {
      "commit": "1bac54ffa933fbe9b92b62437577f2f4583eff1a",
      "tree": "a27134343ed3cd45a286c3a68b9a4469e70f13e7",
      "parents": [
        "96970cdab3e28511322ce37fa578f6eff8931d72"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 16 12:48:31 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 16 12:48:31 2012 -0700"
      },
      "message": "Fix all our unused parameter warnings so we let GCC report them.\n\nThere were a couple of genuine bugs here (fixed), plus there\u0027s a missing\nfeature in trace.cc that I\u0027ve just added a TODO for.\n\nAlso note that I haven\u0027t touched the compilers; this warning is still\nexplicitly disabled for that code. I\u0027ll do that when there\u0027s less going\non in those directories.\n\nChange-Id: Ic3570bf82411a07c7530bfaf1995ac995b9fc00f\n"
    },
    {
      "commit": "77405796564c6c1353807cda18b28678a719bd68",
      "tree": "948781c769760d71c7aff4e8db57aa5a9e311372",
      "parents": [
        "f8bbb8448c733e9e3ad43aad69774c37888329b1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 15 15:22:12 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 15 15:46:59 2012 -0700"
      },
      "message": "Rewrite the invoke stubs to use JValue[]s.\n\nThe tests were only testing the static stubs, so extend the tests to include\nnon-static stubs too.\n\nAlso add just enough of an ARM disassembler to disassemble the invoke stubs.\n\nChange-Id: If71dfb66b8b8188f9d871914f0eaf1013c9993b9\n"
    },
    {
      "commit": "f8bbb8448c733e9e3ad43aad69774c37888329b1",
      "tree": "b0f488b0d95c1fe79bc0473e4a98670ceb905139",
      "parents": [
        "98d39884f64d13aada5e716bb38e2f069c7ad0a7"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Mar 14 03:01:42 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Mar 15 03:30:20 2012 -0700"
      },
      "message": "Add code size to oat files\n\nChange-Id: Ic2519551864dd7090ba98f2fc92318f95f92947f\n"
    },
    {
      "commit": "530fa005e2944d3b12712f80d974f0e753f568ef",
      "tree": "0a98404cd017ee5dc1c717039d5caad02fd38f18",
      "parents": [
        "4d26534f6a65d7af89cc32da8fbc32beed693201"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 12 11:44:49 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 12 11:44:49 2012 -0700"
      },
      "message": "Give WalkStack\u0027s callback a way to terminate early.\n\nAlso combine WalkStack and WalkStackUntilUpcall.\n\nChange-Id: Ida25665de72e5fd8e17946886a387b27cf841457\n"
    },
    {
      "commit": "0ece7b950dc5821e79c930acf31fb7e73c570849",
      "tree": "ce4006468c5ea8b068055b5f770b058477e35a25",
      "parents": [
        "e663a5b5b218deae32de739d89f888ceeeba65df"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 09 18:14:40 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Mar 10 09:51:21 2012 -0800"
      },
      "message": "Remove an unnecessary \"art\" prefix on functions in the art namespace.\n\nChange-Id: I160bc78ef9000364f657a9972dd8c648ca2f53aa\n"
    },
    {
      "commit": "b3bd5f07884f5a1f2b84224363b1372d7c28d447",
      "tree": "6e2997ab64b4a4f32d7ef539a4649adc736ea553",
      "parents": [
        "ddbd01ac1660d57416879d5a576482f1048dde64"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 08 21:05:27 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 09 15:37:46 2012 -0800"
      },
      "message": "Refactor the compilers out of libart.\n\nThis builds three separate compilers and dynamically links with the right one\nat runtime.\n\nChange-Id: I59d22b9884f41de733c09f97e29ee290236d5f4b\n"
    },
    {
      "commit": "a433b2e8edf91c8124abd8eb5b3bd558a40fc987",
      "tree": "d0c6b2cd101ed66897193ac03f4738d6a7473da3",
      "parents": [
        "f5a9d80f6afaf714c1afeaf2e869ff194aa2556a"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Mar 09 08:40:33 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Mar 09 08:59:48 2012 -0800"
      },
      "message": "Tidy MIPS floating point helpers.\n\nFix initialization bug in thread.cc.\n\nChange-Id: Ibdc81d6f5c8b1a245044bf901003179167a5d4f1\n"
    },
    {
      "commit": "9a8a8889418e09bf2d4ae3f683fbb40a71c3c8f4",
      "tree": "706ce6181dfd046845a82d60b3b66ee7270131d3",
      "parents": [
        "680b1bdd7e5d112ba4b95d6c81a43b65119b3b9c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Mar 08 02:30:55 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Mar 08 02:30:55 2012 -0800"
      },
      "message": "Disable virtual call sharpening.\n\nA regression in voice search was seen. Disable for now. Add a few\nassertions to aid future diagnostics.\n\nChange-Id: I635b1126b3e45293489b6b7ad54d838773ae7030\n"
    },
    {
      "commit": "11f9d2130e938511efceb6d2a4793cee7dfdde35",
      "tree": "cf6a63ad64a66c5ee225c789adc15ba4962d526c",
      "parents": [
        "e8267506ac2d64351e21ce90e8643b9247e1803c"
      ],
      "author": {
        "name": "Bill Buzbee",
        "email": "buzbee@google.com",
        "time": "Sat Mar 03 20:03:18 2012 -0800"
      },
      "committer": {
        "name": "Bill Buzbee",
        "email": "buzbee@google.com",
        "time": "Sat Mar 03 20:03:18 2012 -0800"
      },
      "message": "Mips portable floating point support\n\nFleshing out the portable floating point.\n\nChange-Id: Ie7a6dcb168a4eb2a61a52e6d747da4118d54f3aa\n"
    },
    {
      "commit": "a4060e5fe4729fa30bde965efc35779690478fa4",
      "tree": "c1689d50ddc3914c64d53ca345157702cdd4e661",
      "parents": [
        "1f729aac2e3a4924d09cdb1a17f72ee2e22745b4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 02 16:51:35 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 02 16:51:35 2012 -0800"
      },
      "message": "Fix a deadlock caused by my big threading change yesterday.\n\nAlso add even more locking diagnostics that catch this class of error and\nexplain what you\u0027ve done in clear terms. In this case:\n\n03-02 16:42:46.040 20768 20785 E art     : holding ThreadListLock while doing condition variable wait on ThreadSuspendCountLock\n...\n03-02 16:42:46.493 23421 23421 I DEBUG   :     #01  pc 00149e5f  /system/lib/libartd.so (art::Runtime::Abort(char const*, int)+338)\n03-02 16:42:46.493 23421 23421 I DEBUG   :     #02  pc 00113c0b  /system/lib/libartd.so (art::LogMessage::~LogMessage()+1026)\n03-02 16:42:46.493 23421 23421 I DEBUG   :     #03  pc 0015a723  /system/lib/libartd.so (art::Thread::CheckSafeToWait(art::MutexRank)+290)\n03-02 16:42:46.493 23421 23421 I DEBUG   :     #04  pc 0012481f  /system/lib/libartd.so (art::ConditionVariable::Wait(art::Mutex\u0026)+26)\n03-02 16:42:46.493 23421 23421 I DEBUG   :     #05  pc 001631fb  /system/lib/libartd.so (art::ThreadList::FullSuspendCheck(art::Thread*)+154)\n03-02 16:42:46.493 23421 23421 I DEBUG   :     #06  pc 00159ffd  /system/lib/libartd.so (art::Thread::SetState(art::Thread::State)+128)\n03-02 16:42:46.493 23421 23421 I DEBUG   :     #07  pc 00161bb5  /system/lib/libartd.so (art::ScopedThreadListLock::ScopedThreadListLock()+64)\n03-02 16:42:46.493 23421 23421 I DEBUG   :     #08  pc 00164a31  /system/lib/libartd.so (art::ThreadList::Unregister()+92)\n03-02 16:42:46.493 23421 23421 I DEBUG   :     #09  pc 0015e537  /system/lib/libartd.so (art::Thread::CreateCallback(void*)+230)\n03-02 16:42:46.493 23421 23421 I DEBUG   :     #10  pc 00013b08  /system/lib/libc.so (__thread_entry+48)\n03-02 16:42:46.493 23421 23421 I DEBUG   :     #11  pc 0001363c  /system/lib/libc.so (pthread_create+180)\n\nChange-Id: I9cdb770e766f63359ab7d11ee1993dd7a6fc1c90\n"
    },
    {
      "commit": "ffb465f23d9549dd591e6aa62e9250523cb00233",
      "tree": "2108ba79a4ec8031faa56ef0806f93bc2217c237",
      "parents": [
        "71ac99485e79ad7eb1ba3ea2d404d53bb5784c13"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 01 18:46:05 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 01 21:15:36 2012 -0800"
      },
      "message": "libcorkscrew native stacks, mutex ranking, and better ScopedThreadListLock.\n\nThis change uses libcorkscrew to show native stacks for threads in kNative or,\nunlike dalvikvm, kVmWait --- working on the runtime directly I\u0027ve found it\nsomewhat useful to be able to see _which_ internal resource we\u0027re waiting on.\nWe can always take that back out (or make it oatexecd-only) if it turns out to\nbe too noisy/confusing for app developers.\n\nThis change also lets us rank mutexes and enforce -- in oatexecd -- that you\ntake locks in a specific order.\n\nBoth of these helped me test the third novelty: removing the heap locking from\nScopedThreadListLock. I\u0027ve manually inspected all the callers and added a\nScopedHeapLock where I think one is necessary. In manual testing, this makes\njdb a lot less prone to locking us up. There still seems to be a problem with\nthe JDWP VirtualMachine.Resume command, but I\u0027ll look at that separately. This\nis a big enough and potentially disruptive enough change already.\n\nChange-Id: Iad974358919d0e00674662dc8a69cc65878cfb5c\n"
    },
    {
      "commit": "1984651929744dd603fd082e23eacd877b9bc177",
      "tree": "ffa10973a88f0f2743f3fbfaf5e7e4235d5f262d",
      "parents": [
        "f3c01c530ab3a645bd5a980522df4d396dcbf228"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 24 11:42:47 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 27 16:08:56 2012 -0800"
      },
      "message": "Invoke static/direct dispatch change.\n\nThere was a subtle race in static/direct dispatch via the code and methods\ntable. This patch removes the table in preparation of architectures like\nx86 which will more aggressively sink loads.\n\nRemoves unused fields, code.. Brings back resolved methods table\nshort-cut and associated fast paths to use this (such as in Proxy). Adds\na resolution method that is used as the trampoline for static and direct\nmethods.\n\nAdd source file and line number to Throwable::Dump.\n\nMethodHelper knowledge of runtime methods.\n\nChange-Id: Ieae1b74c24072e6327a5bb2cad466f04e3c46c4d\n"
    },
    {
      "commit": "8be2d40d42223b515de12629216151a558895969",
      "tree": "eec01e24385066b60b93a239f65f195a232a5ddd",
      "parents": [
        "229feb7a09317919ee51c06d1c3e715cea25da75"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 23 14:22:41 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 23 14:22:41 2012 -0800"
      },
      "message": "Fix GetCurrentMethod to return the actual native PC.\n\nPreviously we were returning the PC of the caller. The \"LR\", if you prefer :-)\n\nChange-Id: I20e9816bb7b720b33e1b89a1a67740abfea35464\n"
    },
    {
      "commit": "c8b306f5221658c7e4b5516be8917dc8c9288e7e",
      "tree": "d8d3499030152361129f002e99d2b4a10d36660d",
      "parents": [
        "6c6f12d0ed64e0f4bcbb7139eca8fe564302f385"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 17 21:34:44 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 17 23:52:39 2012 -0800"
      },
      "message": "Run time illegal access checks on static and direct methods\n\nFixes test 075.\n\nChange-Id: I28b20451dcae8000dc0e2cb9068dfa5166659d43\n"
    },
    {
      "commit": "77f74c1455bd8d29deb8a9367cea35deb930ed10",
      "tree": "b8bd1a605f74c32473a68e93b07196a01453717a",
      "parents": [
        "6818c463c29b8ea54f4ad537ae757d70ecc4a8be"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Feb 16 22:35:30 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Feb 16 22:35:30 2012 -0800"
      },
      "message": "Fix exception regression.\n\nChange-Id: Ibb977d16bfc31ccce9c1508bc9a240ff66c2f40c\n"
    },
    {
      "commit": "267364429db05d964c0922a8b4e49591c00bdc35",
      "tree": "748cbfd0b73858824614f67a1e06a3811639da9b",
      "parents": [
        "a004aa933a58428489e42d77f707c2b063b73747"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Feb 16 18:24:26 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Feb 16 18:24:26 2012 -0800"
      },
      "message": "Fix SEGV when allocation does not fail in stack trace building\n\nChange-Id: Ic01f95d4b4b90b38510c448b05d2efbac95d9c7c\n"
    },
    {
      "commit": "283ed0d9db3084d0fee46d47cd73bf84bd0cfc16",
      "tree": "41144bcf3ce1c85632696e66bf5878e163a00e0f",
      "parents": [
        "a466c161210855d9f43eb2f811dcb4654d625381"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Feb 16 15:25:09 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Feb 16 15:25:09 2012 -0800"
      },
      "message": "Fix SEGV when allocation fails in stack trace building\n\nChange-Id: I8f462b43a7d1f9e8ea24eae227baff50de96f394\n"
    },
    {
      "commit": "f3773f0913f8b76eee2088bfd999aaca6a50e750",
      "tree": "d9c2f8ce0736a6260d96586cbb3fcdb75430d4b2",
      "parents": [
        "a32a6fd4a781262dff4fec102da053d16b7ef6c0"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 13 16:45:29 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 13 16:56:22 2012 -0800"
      },
      "message": "Move finalizer registration into managed code\n\nAlso move Object.getClass into managed code.\n\nChange-Id: If32674ac496116aaa82c461d8e6196e27fa7b591\n"
    },
    {
      "commit": "a32a6fd4a781262dff4fec102da053d16b7ef6c0",
      "tree": "5c2a35aec522902cfdf508a74898ee091c91f7ab",
      "parents": [
        "d08547a802e6dbb71fde3ed3dac9aa0b03a5b17b"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 06 20:18:44 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 13 15:41:26 2012 -0800"
      },
      "message": "Runtime access checks on virtual method calls\n\nAt verification time we may not know that an illegal access or method\nnot found exception should be raised and so we defer the decision to\nruntime. When the decision is deferred we perform an appropriate slow\npath method invocation that can check for access violations.\n\nThis change also attempts to reduce code duplication, improve the\ndiagnostic information in exceptions, clean up field slow paths slightly\nand to move the slow path calls lower in the Thread class so that they\ndon\u0027t effect the offsets of data items when calls are added or removed.\n\nChange-Id: I8376b83dcd7e302cbbddf44c1a55a25687b9dcdb\n"
    },
    {
      "commit": "44b412bb795fa6999129b2bc16f5eec1ea97e8f8",
      "tree": "bf2a45463f46c506130f319b1a176b49db4d5252",
      "parents": [
        "959f8ed11ef9493a89b90a1f9a82a811dbc7ae0e"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Sat Feb 04 08:50:53 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Feb 07 18:19:52 2012 -0800"
      },
      "message": "Codegen support for debugger\n\nAdd the ability to generate code with support for debugging.\nThis involves generating a callout to an equivalent of the\nold \"updateDebugger()\" before each Dalvik opcode, method\nentry and method exit.\n\nThe added code is fairly compact - 8 bytes per Dalvik opcode,\nplus 4 additional bytes per safe point.\n\nI dislike the idea of always making this call, so I\u0027m reusing\nthe dedicated register rSUSPEND to hold the address of the callout.\nrSUSPEND is normally used to reduce the frequency of full suspend\nchecks, but when debugging this isn\u0027t necessary - allowing\nus to resuse this register to hold the address of the callout.\nIf it is non-null we make the callout, otherwise we continue.  I refresh\nthis register from a slot in the Thread structure on method entry\nand also following the return of taken suspend checks.  In this way,\nthe debugger has the ability to control updates on a per-thread basis,\nand the performance penalty is greatly reduced for threads that don\u0027t\nhave any pending debugger requests.  Once the debugger attaches,\nit would suspend all threads, walk through the thread list, set\nthread-\u003epUpdateDebuggerFromCode to art_update_debugger and then\nturn everything loose.\n\nOne thing I\u0027m not doing, though, is debugger updates before and after\ncalls to native methods.  This is something that will have to be done\nby the stubs, because I don\u0027t know which invokes are native.  Oh, and\nthere will also need to be an artUpdateDebugger call on the exception\npath.\n\nI\u0027m passing the DalvikPC to the stub, and am using special\ncodes (-1 and -2) to denote method entry and exit.  The stub\nrecovers the current Method* and Thread* and passes them on to\nartUpdateDebugger().\n\nWhen we\u0027re compiling in this special mode, all optimizations which\nmight result in code motion or suppressed load/store of a Dalvik\nregister are turned off.  No register promotion is done, so everything\nwill be in its home location.\n\nChange-Id: Iaf66f4d0d094a1699269d0a1ad1ed33e7613aef8\n"
    },
    {
      "commit": "06e3ad4a651c2c58dba5e865cd06d2f98462bf1d",
      "tree": "8110ea5a4880e0a6b2c39ce26dab934af29a91c0",
      "parents": [
        "bd411021057416e56a1544b98831b92faf66a1a1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 07 14:51:57 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 07 15:09:59 2012 -0800"
      },
      "message": "Turn on some basic tsan annotations.\n\nThe most useful bit here is that tsan now knows the names of our threads.\n\nChange-Id: I8eef8f31e954ffc373555b392d6d9678d76ead34\n"
    },
    {
      "commit": "1bddec3a6521f16df37499754000a3b1787a52e9",
      "tree": "f605d0f642f2a62012d0f5a1bd0351afbaa8fa5a",
      "parents": [
        "223f20fa939c386c695977263780dea2195093db"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Feb 04 12:27:34 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Feb 05 03:02:00 2012 -0800"
      },
      "message": "Add access check slow paths to field accesses\n\nThis check makes the verifier, compiler and runtime agree with who\nshould perform access checks and fixes compliance for these\ninstructions.\n\nIntroduce new \"fast\" sget/sput that just get the static storage base\nfrom a method\u0027s declaring class when the static field is within the same\nclass. Saves a load and branch in the common case.\n\nFold gen routines for wide and not wide together.\n\nFix bug where sub-classes could appear intialized in the image but their\nparents were only verified.\n\nExtra debug output for test case 075.\n\nChange-Id: I934da3624ed8fa8e026b2c95d936d04b1af022ef\n"
    },
    {
      "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"
    }
  ],
  "next": "a215526d5c789cbef0f81a1f9aba22541a841cca"
}
