)]}'
{
  "log": [
    {
      "commit": "69f5bc6759f256a146eefd8a7141d39fcc3b0421",
      "tree": "40e1560f51f346b21fbbf89c0a0e83f88f07f2ec",
      "parents": [
        "d11af152ff36b06883364d9728735ed8162ee306"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 24 09:26:14 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 24 09:26:14 2011 -0700"
      },
      "message": "If JNIEnvExt is-a JNIEnv, we can lose a bunch of reinterpret_casts.\n\nLikewise with JavaVM.\n\nChange-Id: I505e42e9197951b6c82e6dbf8dcc1fc4dd5aad31\n"
    },
    {
      "commit": "d11af152ff36b06883364d9728735ed8162ee306",
      "tree": "f021a574b7a2b7dde410b0cccc6be459cfdd4877",
      "parents": [
        "408f79aeb676251ba35667a64e86c20638d7cb0b"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Tue Aug 23 16:02:11 2011 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Tue Aug 23 20:54:16 2011 -0700"
      },
      "message": "Change FrameSize to FrameSizeInBytes.\n\nAvoid confusion that it\u0027s in words.\n\nChange-Id: Ic7bfa3e00eec4ba49a4abf351913625e33529846\n"
    },
    {
      "commit": "408f79aeb676251ba35667a64e86c20638d7cb0b",
      "tree": "419c9dca6bc1fd5c13a997d4fad62f92960e5e45",
      "parents": [
        "72025e5f8f2743b4af33453df5b3bddada2078db"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 23 18:22:33 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 23 18:56:54 2011 -0700"
      },
      "message": "Add validate object, clean up stack indirect reference table.\n\nChange-Id: Ifb329ae7d3bede3e95d48e6761cee1412a33d867\n"
    },
    {
      "commit": "72025e5f8f2743b4af33453df5b3bddada2078db",
      "tree": "495ae6aca2e52112c1793d0638c44de19fe7440b",
      "parents": [
        "5433072f589b61413e042eddf76e8190a048f71d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 23 17:50:30 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 23 18:09:06 2011 -0700"
      },
      "message": "Implement JNI virtual calls to managed methods, JNI ExceptionDescribe, and JNI MonitorEnter/MonitorExit.\n\nChange-Id: Id21a0a7cdc3fa43a2d3b025a83bf3153eff028d4\n"
    },
    {
      "commit": "5433072f589b61413e042eddf76e8190a048f71d",
      "tree": "02ff83e20b1b0bc9dbbf387768d118a4d7aa6dbc",
      "parents": [
        "3ea4ec5629613013ad9b0d7a69abdb94491ac46f"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Aug 23 16:46:55 2011 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Aug 23 16:46:55 2011 -0700"
      },
      "message": "Added support for 64-bit shifts, fix const-wide\n\nChange-Id: I4823056d83652ecc7d3e391e905d480d73fab718\n"
    },
    {
      "commit": "3ea4ec5629613013ad9b0d7a69abdb94491ac46f",
      "tree": "43274b3154f0b2cf58fe1abbe21151652a6bf8fc",
      "parents": [
        "5174fe6e4e931c423e910366ff22ce0838567940"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Mon Aug 22 17:37:19 2011 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Aug 23 16:21:20 2011 -0700"
      },
      "message": "Misc fixes, new compiler unit tests\n\nFixed disassembly logging, miscellaneous codegen bugs and added a\nset of unit tests (most of which fail because array allocation isn\u0027t quite\nthere yet in the codegen).\n\nFailing tests conditionally compiled out for now.\n\nChange-Id: I39c148f9a7686fac21c844a7a7f5ec86d4e0e1c5\n"
    },
    {
      "commit": "5174fe6e4e931c423e910366ff22ce0838567940",
      "tree": "6eaa36ae0cfb476ddfac9fcf46c2a3918d9510f6",
      "parents": [
        "814e40397fe6c8a2c645bae99f356dbddd6dbe18"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 23 15:12:35 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 23 15:12:35 2011 -0700"
      },
      "message": "Add the condition variable to System.loadLibrary and implement UnregisterNatives.\n\nAlso change PrettyDescriptor now descriptors are String*s rather than StringPiece\u0026s.\n\nChange-Id: Id07affb26038f5f4a3bee4396c65f71d7bc38be3\n"
    },
    {
      "commit": "814e40397fe6c8a2c645bae99f356dbddd6dbe18",
      "tree": "39e7de56ada11f00d4541e4bdb2e76dad6cc5c0a",
      "parents": [
        "d2fbb2bd2448f0872878258727aa1eb2558a0c3b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 23 12:07:56 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 23 14:02:10 2011 -0700"
      },
      "message": "Add some missing JNI string functions, GetObjectArrayElement, and all the primitive array region functions.\n\nThis also pulls the UTF-8/UTF-16 functions out of class String.\n\nChange-Id: I75936b84fd619c9cf91f6e6a6037488220b05781\n"
    },
    {
      "commit": "d2fbb2bd2448f0872878258727aa1eb2558a0c3b",
      "tree": "2c42f71f66bd6c877dfb2180a4d4ee7f89400f79",
      "parents": [
        "762400c72e9c2491fb66364908c3717f8f1289ec"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Aug 23 11:57:08 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Aug 23 13:58:09 2011 -0700"
      },
      "message": "Give an example of walking TypeIds in a DexFile\nAlso prevent accidentally copying of DexFile structures\n\nChange-Id: I293bdfe073ce1e1a54f6de2e0abadac312503016\n"
    },
    {
      "commit": "762400c72e9c2491fb66364908c3717f8f1289ec",
      "tree": "b8e8988d7c122f70eef4e118540e14499a3c3b71",
      "parents": [
        "e5b0dc83537bf915c6abe4efeae6e501daf75a27"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 23 12:14:16 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 23 12:14:16 2011 -0700"
      },
      "message": "Support for return PC offset and frame size in JNI compiler.\n\nFor stack crawls we need the return PC and the size of frames, store\nthis information in the Method.\n\nChange-Id: Ic616b4f78ca571c837e5c8473607285a7e8b58f0\n"
    },
    {
      "commit": "e5b0dc83537bf915c6abe4efeae6e501daf75a27",
      "tree": "09b9ed8051636953f46f33c1e736dcdaee506711",
      "parents": [
        "1a18c8c1c0e4ea1ff06177e93c7ff703376dcee2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 23 09:59:02 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 23 10:52:37 2011 -0700"
      },
      "message": "Add \"class Throwable\" and rewrite exception throwing to use JNI.\n\nChange-Id: I79836075337eedfc5923ebff028176615ffd3598\n"
    },
    {
      "commit": "1a18c8c1c0e4ea1ff06177e93c7ff703376dcee2",
      "tree": "1a37b77910cbb6c628113b61175d7011b7e6a6cd",
      "parents": [
        "37f7a40f6789bb287f287a9af00777af9d6428ee"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Sun Aug 14 17:47:36 2011 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Tue Aug 23 10:17:07 2011 -0700"
      },
      "message": "Initial implementation of throw+unwind+Frame.\n\nUnit tests on Exception Handling pass.\n\nChange-Id: I33505dacc6648e72e2ed80c2cca83643cfaef86b\n"
    },
    {
      "commit": "37f7a40f6789bb287f287a9af00777af9d6428ee",
      "tree": "edb907134b656748decd1ca894836326a50518bc",
      "parents": [
        "885c3bd4d7adcc7f60f656b4f7247e7065feadf3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 22 18:56:01 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 22 18:56:01 2011 -0700"
      },
      "message": "Implement more of the exception/object/class JNI functions.\n\nChange-Id: Id835c1a37e5034d11e2fc43ccf49e578510abfc1\n"
    },
    {
      "commit": "885c3bd4d7adcc7f60f656b4f7247e7065feadf3",
      "tree": "795774b8a63c9d0d52b9652de88f15da085efa61",
      "parents": [
        "bd9359912e5398799f60649b86ae80644ec72627"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 22 16:59:20 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 22 16:59:20 2011 -0700"
      },
      "message": "Implement field access (and a few other bits and bobs).\n\nChange-Id: I837eb0ae4af8e314761bb42d3405f05b7a79573e\n"
    },
    {
      "commit": "bd9359912e5398799f60649b86ae80644ec72627",
      "tree": "f3f016f1e5a2dd4f4010cd211b017fa7a62ff983",
      "parents": [
        "4873d465a1eb6dfbdeddb085c81239d39db60c42"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 22 11:59:34 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 22 11:59:34 2011 -0700"
      },
      "message": "Add JNI GetArrayLength and start throwing from FindClass.\n\nChange-Id: I080a6ffc5496b47454273acd58c230bda5e04cdd\n"
    },
    {
      "commit": "4873d465a1eb6dfbdeddb085c81239d39db60c42",
      "tree": "8eb73bf441d631b34252d8e358eff66718b63aab",
      "parents": [
        "94496d37e42dbbbcf515f43ccb9a03ac82e48927"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Aug 21 15:23:39 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Aug 22 09:27:33 2011 -0700"
      },
      "message": "Move static field storage to end of Class instance\n\nChange-Id: I90061999c9eef9d900e4269508b983a61f48b264\n"
    },
    {
      "commit": "94496d37e42dbbbcf515f43ccb9a03ac82e48927",
      "tree": "dd9aefda30f93dac0921f2de112528b9663b36c5",
      "parents": [
        "edcc09c737b00462881f147602656739d029571e"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Aug 22 09:22:47 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Aug 22 09:22:47 2011 -0700"
      },
      "message": "Conditionalize compilation\n\nChange-Id: I21dd4baf48df1e503f2701ffade73a5e77ecb392\n"
    },
    {
      "commit": "edcc09c737b00462881f147602656739d029571e",
      "tree": "06f763e94567b687c229743f884ce87deee818ed",
      "parents": [
        "c143c55718342519db5398e41dda31422cf16c79"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Aug 21 18:47:05 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Aug 21 18:47:05 2011 -0700"
      },
      "message": "Cleanup.\n\nChange-Id: I15704e76662bcf9bc10560679500c98a4baa68ab\n"
    },
    {
      "commit": "c143c55718342519db5398e41dda31422cf16c79",
      "tree": "b2d80bd5dc63e0eb0bea372651de12dcaf2e7f0d",
      "parents": [
        "195487cb0b11e64917df01f8d55671344db2e97f"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Sat Aug 20 17:38:58 2011 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Sun Aug 21 17:42:55 2011 -0700"
      },
      "message": "Updating the compiler to use the new-world model\n\nNew compiler is integrated and passes first test (Fibonacci).\n\nChange-Id: Ic5448ab89ebd22baa30fafc3d1300324687d1fc2\n"
    },
    {
      "commit": "195487cb0b11e64917df01f8d55671344db2e97f",
      "tree": "92a20353f0d33e028ae9716beb5165b3fcd4799d",
      "parents": [
        "c4fa2c0c6302d3d9979e8d8a4030499c10d6b68b"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Sat Aug 20 13:29:04 2011 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Sun Aug 21 15:17:23 2011 -0700"
      },
      "message": "Initial implementation for adding StackTraceElement support.\n\nLine # information added.\n\nChange-Id: I5a68383e74a19fa28d82a33bb1db649ef570f3b0\n"
    },
    {
      "commit": "c4fa2c0c6302d3d9979e8d8a4030499c10d6b68b",
      "tree": "9060e2d8c31a02b639ea2fe3a0005be890a9647e",
      "parents": [
        "a663ea5de4c9ab6b1510fdebd6d8eca77ba699ae"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Aug 21 03:00:12 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Aug 21 13:53:18 2011 -0700"
      },
      "message": "Add Method::dex_cache_*_ short cuts to declaring_class_-\u003edex_cache_\n\nChange-Id: I6e14b296abdd74b7fe810fc43d814931fd8cb770\n"
    },
    {
      "commit": "a663ea5de4c9ab6b1510fdebd6d8eca77ba699ae",
      "tree": "37078335c64cb760a0379a33eb4ceaf6b08356ea",
      "parents": [
        "68f4fa09cfd72b4292cbe7a213f03da7902ba775"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Aug 19 23:33:41 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Aug 21 12:30:48 2011 -0700"
      },
      "message": "Initialize ClassLinker from image\n\nChange-Id: Ibaf47b4181f7c6603a8b37e2eba8fa6509c927ed\n"
    },
    {
      "commit": "68f4fa09cfd72b4292cbe7a213f03da7902ba775",
      "tree": "cf7e20d2c2f710141e2b760b3ae67697dcffe53e",
      "parents": [
        "a0b8feb34a8492c6b8d430f6ca0716e7ff4f4c57"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Aug 21 10:46:59 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Aug 21 10:46:59 2011 -0700"
      },
      "message": "Add an Array::Alloc convenience for the compiler.\n\nChange-Id: Ie65321d7439ac0ff0b4a39cb507710df088baa6d\n"
    },
    {
      "commit": "a0b8feb34a8492c6b8d430f6ca0716e7ff4f4c57",
      "tree": "4c7c1613f5b7af65bfabde2091a2bf106171a9de",
      "parents": [
        "9cff8e13d41825c4f3f0127af061e94b06114fc8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Aug 20 09:50:55 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Aug 20 09:54:46 2011 -0700"
      },
      "message": "Turn off the \u0027public\u0027 check for main, and improve diagnostics.\n\nWe\u0027re likely to be able to invoke a static main method before we can invoke\na virtual getModifiers, and right now we don\u0027t care whether we\u0027ve been asked\nto run a non-public main.\n\nAlso adds PrettyMethod for improved diagnostics.\n\nChange-Id: Iea08f0be980386adbe408b476449c2066c4e6da8\n"
    },
    {
      "commit": "9cff8e13d41825c4f3f0127af061e94b06114fc8",
      "tree": "3425941132a8b1406126015cf9c45fd661b574a2",
      "parents": [
        "67bf885d62b1473c833bece1c9e0bb624e6ba391"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Aug 18 16:47:29 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Aug 19 22:01:22 2011 -0700"
      },
      "message": "Convert Class::descriptor_ from StringPiece to String (as part of image loading)\n\nChange-Id: Iab5ffa353661a7c06ee79af1f40d399a53777174\n"
    },
    {
      "commit": "67bf885d62b1473c833bece1c9e0bb624e6ba391",
      "tree": "a6069d30bb0e25d4ed1f19d7a3c2b55c4aef7127",
      "parents": [
        "f4c21c9f6440c3980c47a297519f758796dbc039"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Aug 17 17:51:35 2011 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Aug 19 20:14:15 2011 -0700"
      },
      "message": "Oat compiler integration snapshot.\n\nCleanly compiles, but not integrated.  Old-world dependencies captured\nin hacked-up temporary files \"Dalvik.h\" and \"HackStubs.cc\".\n\nDalvik.h is a placeholder that captures all of the constants, struct\ndefinitions and inline functions the compiler needs.  It largely consists\nof declaration fragments of libdex, Object.h, DvmDex.h and Thread.h.\n\nHackStubs.cc contains empty shells for some required libdex routines.\n\nChange-Id: Ia479dda41da4e3162ff6df383252fdc7dbf38d71\n"
    },
    {
      "commit": "f4c21c9f6440c3980c47a297519f758796dbc039",
      "tree": "edf57389c14f8f4e1082bf3969c13e70279731e3",
      "parents": [
        "ed8952fbf6b8d74fdd741cdfe76867a5a01e161c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 19 17:31:31 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 19 18:30:29 2011 -0700"
      },
      "message": "Initialize classes in GetFieldID/GetMethodID.\n\nChange-Id: I2ccf5d021067e4d18803bd505d5bdc1fcbbb3433\n"
    },
    {
      "commit": "ed8952fbf6b8d74fdd741cdfe76867a5a01e161c",
      "tree": "10f2e8ccb92950376f22f11f4e9d81a62863f2e4",
      "parents": [
        "a8cd9f4a849835af7856f9c9782ea59e11ddef85"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Aug 19 17:11:22 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Aug 19 17:11:22 2011 -0700"
      },
      "message": "Method* for upcalls should be null.\n\nIn order to terminating stack crawls through managed frames the Method*\nshould be null.\n\nChange-Id: I03562be3b591c8b1978319126347eb97fec928de\n"
    },
    {
      "commit": "a8cd9f4a849835af7856f9c9782ea59e11ddef85",
      "tree": "f194c58f4a6f491a6fc123c0873bde2ae06a5ecc",
      "parents": [
        "cdf53120cd5a73cbedc1654e22542848468c0d2f"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Aug 19 16:43:41 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Aug 19 17:02:14 2011 -0700"
      },
      "message": "Support for local references allocated in SHBs.\n\nLocal references passed in the stack handle block by the managed to\nnative bridge code generated jni_compiler need support for decoding. Add\nsupport and extend jni_compiler_test to check the validity of jobject\narguments in the stack handle block.\n\nChange-Id: Ibba60451c21f6e41023b8d837310f15ea69c44f8\n"
    },
    {
      "commit": "cdf53120cd5a73cbedc1654e22542848468c0d2f",
      "tree": "cbe7f43df0d424dd93c3561aefa7cb5414218b5d",
      "parents": [
        "0297290eb61c72c420c72b914e46cc176e1bfb42"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 19 15:46:09 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 19 16:14:26 2011 -0700"
      },
      "message": "Implement jfieldID and jmethodID properly.\n\nChange-Id: I048107fbca4e21cf34e8fda6defdbc0b97421cf0\n"
    },
    {
      "commit": "0297290eb61c72c420c72b914e46cc176e1bfb42",
      "tree": "2ac2b4644a607bcb1007ea9fb759971d93a5dd48",
      "parents": [
        "aecc03ff2dd75a87b44b5d4a35bfb5886aff4d55",
        "6de0860c491d390b7a53be436519ef2d9234c4c9"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Aug 19 15:56:11 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 19 15:56:11 2011 -0700"
      },
      "message": "Merge \"Record thread data when making reentrant transitions.\" into dalvik-dev"
    },
    {
      "commit": "6de0860c491d390b7a53be436519ef2d9234c4c9",
      "tree": "ad6e4a64551bc0cc8cb9e5f04272c1b6f819c3e0",
      "parents": [
        "cdd1d2d3fee0711b8b11db99f2dfb80113520100"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Aug 19 14:52:39 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Aug 19 15:46:24 2011 -0700"
      },
      "message": "Record thread data when making reentrant transitions.\n\nCalls from managed to native code record the top of the managed stack\nfor stack crawls. Up calls from native to managed (already in the\nrunnable managed thread state) need to preserve this data as the managed\ncode may call back into native code. This change introduces a linked\nlist of records from native to managed code, that allows the regions of\nmanaged code to have their stack crawled.\n\nChange-Id: I71bf680cf1fc2e95d261063050dd6effb72b1786\n"
    },
    {
      "commit": "aecc03ff2dd75a87b44b5d4a35bfb5886aff4d55",
      "tree": "1f2c0109b3a1f3214ad49a59c4aebd7787bfb308",
      "parents": [
        "cdd1d2d3fee0711b8b11db99f2dfb80113520100",
        "0a96fe07175b960050a606fadbf76d85a060e4fa"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 19 10:46:33 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 19 10:46:33 2011 -0700"
      },
      "message": "Merge \"Use libnativehelper\u0027s existing code for creating a String[].\" into dalvik-dev"
    },
    {
      "commit": "cdd1d2d3fee0711b8b11db99f2dfb80113520100",
      "tree": "3c88f60d82232e887a6a38e8b92066cd4802260a",
      "parents": [
        "bfaadc83460726b049614a8616effbb03a247552"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Aug 18 09:58:17 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Aug 19 10:35:57 2011 -0700"
      },
      "message": "Move JNI compiler tests to use pure JNI.\n\nImplement JNI upcalls for x86.\nFix off by 1 bug in JNI calling convention for x86.\nFix bugs in ARM JNI upcalls.\nStraw man JNI invoke nonvirtual implementations.\nMatch va_start with va_end in JNI internals.\n\nChange-Id: I64d62eca41ac726ae0d007c1f41d2193db5be82e\n"
    },
    {
      "commit": "0a96fe07175b960050a606fadbf76d85a060e4fa",
      "tree": "3a2ff3afaa4931b86bb98d0dd616e71a5dc2c665",
      "parents": [
        "bfaadc83460726b049614a8616effbb03a247552"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 19 10:22:04 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 19 10:22:04 2011 -0700"
      },
      "message": "Use libnativehelper\u0027s existing code for creating a String[].\n\nChange-Id: I9d3341b2db5de0313b3542307a43a7be6b83a927\n"
    },
    {
      "commit": "bfaadc83460726b049614a8616effbb03a247552",
      "tree": "b90f575044f6bf74509769b7d3e4efbd3c936c3f",
      "parents": [
        "de69d7f8c32be83c405bf5a9c5f15fc655f578fa"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 18 17:36:58 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 18 17:36:58 2011 -0700"
      },
      "message": "Replace a dangerous function with the convenience function callers actually want.\n\nChange-Id: Ic22dc4db36850507760a917033c254b88749b657\n"
    },
    {
      "commit": "de69d7f8c32be83c405bf5a9c5f15fc655f578fa",
      "tree": "cb55a919ba3fc9f5ee0e8f70cf22235bd6161532",
      "parents": [
        "2cfd15d1940c848fd60b454c545a33e2a78d185e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 18 16:49:37 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 18 16:49:37 2011 -0700"
      },
      "message": "Clean up mutexes on shutdown.\n\nChange-Id: Ib961f954280c27f8858c4d6fb9010cc833bb28d2\n"
    },
    {
      "commit": "2cfd15d1940c848fd60b454c545a33e2a78d185e",
      "tree": "7bb234b295ff13a8554db38f6acabc06d40c65ca",
      "parents": [
        "1c332df048f796ad0656644cb0433bd6e7a49aa3",
        "18c0753c1659629021b4becdaa3f6ea81aecce35"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 18 15:58:49 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 18 15:58:49 2011 -0700"
      },
      "message": "Merge \"Initialize the rest of libcore\u0027s native code.\" into dalvik-dev"
    },
    {
      "commit": "18c0753c1659629021b4becdaa3f6ea81aecce35",
      "tree": "2ccf75312b252af340eac79f161c077a979b78ca",
      "parents": [
        "c5f7c91ab89055cffb573fff7e06dbdd860bcced"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 18 15:50:51 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 18 15:58:13 2011 -0700"
      },
      "message": "Initialize the rest of libcore\u0027s native code.\n\nThis native code requires NewGlobalRef, so this patch also implements\nNewLocalRef/DeleteLocalRef, NewGlobalRef/DeleteGlobalRef, and\nNewWeakGlobalRef/DeleteWeakGlobalRef.\n\n(The assembler change is because \"math.h\" also defines OVERFLOW. A slight\nchange in #include ordering caused the names to conflict.)\n\nChange-Id: Ifbf3b532ec3b0896bd7507d2881c6b77b64f01e7\n"
    },
    {
      "commit": "1c332df048f796ad0656644cb0433bd6e7a49aa3",
      "tree": "3dc2cabad9919290c89aa14f32ac65b5361a8baa",
      "parents": [
        "c5f7c91ab89055cffb573fff7e06dbdd860bcced",
        "84d00e6caa8302abafca8907a2404eadc920f6a8"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Thu Aug 18 14:58:25 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 18 14:58:25 2011 -0700"
      },
      "message": "Merge \"Fix a typo that breaks the arugment size computation.\" into dalvik-dev"
    },
    {
      "commit": "84d00e6caa8302abafca8907a2404eadc920f6a8",
      "tree": "205ef242e6d6c927bf42c0d17f9ee93bfeec046d",
      "parents": [
        "6c1a394b47c85c8d1723fc3b156a3b1b0b29a757"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Thu Aug 18 14:57:20 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Thu Aug 18 14:57:20 2011 -0700"
      },
      "message": "Fix a typo that breaks the arugment size computation.\n\nChange-Id: Id776dd6f546a04f157403d47cfa7311b77e8b589\n"
    },
    {
      "commit": "c5f7c91ab89055cffb573fff7e06dbdd860bcced",
      "tree": "e96e62e1220adfb93a72ddc91a7a38755cd4942a",
      "parents": [
        "4a289ed61242964b921434de7d375f46480472a1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 18 14:00:42 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 18 14:15:22 2011 -0700"
      },
      "message": "Switch to indirect references rather than direct pointers.\n\nThis also required a bit of fiddling to break cyclic dependencies,\nnow \"jni_internal.h\" needs Mutex from \"thread.h\".\n\nChange-Id: I1d6fb2d801c190f72255f5e447a0a8a65cc3e673\n"
    },
    {
      "commit": "4a289ed61242964b921434de7d375f46480472a1",
      "tree": "fa1a25f1eec3ef79fd9765e9c89ce21afbd8144c",
      "parents": [
        "44753c3908fcd5ccc066bf0dceddeabfeacf9f24"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Aug 16 17:17:49 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Aug 18 12:25:10 2011 -0700"
      },
      "message": "Work on heap and space initialization to support image loading\n\nChange-Id: Icab25efa4dee17e4b6c6e97e38f63f5ab8a8a005\n"
    },
    {
      "commit": "44753c3908fcd5ccc066bf0dceddeabfeacf9f24",
      "tree": "9e10f9b3e7aa18135e3e3d5aab0a6576f700748b",
      "parents": [
        "4b3b727d405da366f480f438e9b968ee09bf958d"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Aug 17 22:22:11 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Aug 18 12:22:26 2011 -0700"
      },
      "message": "Add unordered_set\n\nChange-Id: I2f8a7dba75b8cf26e23a350720920ba2e694e840\n"
    },
    {
      "commit": "4b3b727d405da366f480f438e9b968ee09bf958d",
      "tree": "2330063ea97fdc96b5021ec05cc680454ee0bf46",
      "parents": [
        "b765be0d656c3073402693aeaf64e95a0e49f218"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 18 09:52:17 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 18 09:59:58 2011 -0700"
      },
      "message": "Add vogar-like --invoke-with to \u0027art\u0027, and fix a bug valgrind finds.\n\nAlso add -d to run aexecd.\n\nChange-Id: I38fefd9ad2e08b42039cb2a09351b4e6e30a9c5c\n"
    },
    {
      "commit": "b765be0d656c3073402693aeaf64e95a0e49f218",
      "tree": "82cedc276a8530c14d2e6ecc539526acbef68c8a",
      "parents": [
        "f734cf55d510976f4862b15e35fc86eae2a3daf8"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Aug 17 23:54:10 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Aug 18 08:43:24 2011 -0700"
      },
      "message": "Alloc stack using MemMap and -Xss\n\nChange-Id: Ib6d52e41e62bf9cd111b2f03257ead53673d3e81\n"
    },
    {
      "commit": "f734cf55d510976f4862b15e35fc86eae2a3daf8",
      "tree": "cdb1077841e6be87353c27f2a30d352ac627663a",
      "parents": [
        "0af5543f8ea20c3e655b2d748a1b7dcf283792fe"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Aug 17 16:28:14 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Aug 17 21:51:13 2011 -0700"
      },
      "message": "Add ParsedOptions test (and migrate RuntimeTest to CommonTest)\n\nChange-Id: Ic338520dfaca2228260e546ed1522c37b83f42ac\n"
    },
    {
      "commit": "0af5543f8ea20c3e655b2d748a1b7dcf283792fe",
      "tree": "c1321a3c1e0fe700fa024294fa940d6d02c98d39",
      "parents": [
        "6c1a394b47c85c8d1723fc3b156a3b1b0b29a757"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 17 18:37:28 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 17 20:46:34 2011 -0700"
      },
      "message": "Code for loading shared libraries and calling JNI_OnLoad.\n\nThis causes a bit of log spam as we call unimplemented JNI functions,\nbut fixing those is my first job tomorrow. The exciting thing here is\nthat we\u0027re now loading libcore\u0027s classes and libcore\u0027s JNI.\n\nI\u0027ve changed ParsedOptions\u0027 std::vector of verbose options over to a\nstd::set for the convenience of callers, and defaulted -verbose:jni to\non. (This is not the cause of the log spam.)\n\nThe only nasty bit here is that icu4c doesn\u0027t like being initialized\nmore than 10 times, because it has a 10-element fixed-size array. The\nu_cleanup function is not publicly accessible, so we have to fiddle\naround with dlsym(3) twice in one patch...\n\nChange-Id: I9f6b5d74621eb2e88d04a89f00335067fda4ccbe\n"
    },
    {
      "commit": "6c1a394b47c85c8d1723fc3b156a3b1b0b29a757",
      "tree": "122185299351264d8e86db2399bbf8aef2a09e97",
      "parents": [
        "0db8cf440970b36d9511f20984150c06e504ab19"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 17 15:00:06 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 17 15:20:34 2011 -0700"
      },
      "message": "Add IndirectReferenceTable and initialize all the instances.\n\nWe\u0027re not _using_ any of the tables yet (except in tests), but all the\nreference tables are now in place.\n\nChange-Id: Ifd3fc114254460b4a1302520f2a4653319b113e5\n"
    },
    {
      "commit": "0db8cf440970b36d9511f20984150c06e504ab19",
      "tree": "7c128d914c2636ec96d458d4354b66159525283c",
      "parents": [
        "a04d397b990ee7d3ce120e317c19fb4409d80d57",
        "5b1982d2b41ab7a664fb04117539f29eadafa773"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Wed Aug 17 12:05:36 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 17 12:05:36 2011 -0700"
      },
      "message": "Merge \"Get rid of some C artifacts as noted in the initial review.\" into dalvik-dev"
    },
    {
      "commit": "a04d397b990ee7d3ce120e317c19fb4409d80d57",
      "tree": "c65e2f3d361adca3cd479db25d5481804bd9e3fd",
      "parents": [
        "515a5bc89282d6f910cae4d5852bb77124a47825"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Aug 17 11:33:44 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Aug 17 11:37:09 2011 -0700"
      },
      "message": "Issue 5177609: remove Monitor(Enter|Exit)Helper\n\nAdd necessary indirection for synchronized native methods that\nlock/unlock the object/class using the regular JNI MonitorEnter/Exit\nfunctions.\n\nChange-Id: I00cda7284fcfa09e1218ddbfb1e24ea4aaa94ac3\n"
    },
    {
      "commit": "515a5bc89282d6f910cae4d5852bb77124a47825",
      "tree": "431eabffeba344b671a19267829991585c16fda6",
      "parents": [
        "4dd71f1538a8d788c56c77378a59ce32afa519d7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 17 11:08:34 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 17 11:08:34 2011 -0700"
      },
      "message": "Add the -Xcheck:jni option.\n\nAnd make sure the boolean is available in every JNIEnv, so we\ndon\u0027t have to look it up via Runtime and JavaVM every time we\nneed to use it.\n\nChange-Id: I2d4b5d04ded196e7c7602406d854bb35227d767a\n"
    },
    {
      "commit": "4dd71f1538a8d788c56c77378a59ce32afa519d7",
      "tree": "cb83b727cc997991ba597bf6ff9627d6da93e2ad",
      "parents": [
        "bbd76717c14822b68ae6d122d88610b46286272f"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 16 14:16:02 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Aug 17 10:40:54 2011 -0700"
      },
      "message": "Implement various JNI internals. Fix off by 1 bug.\n\nMake GetMethodID and GetStaticMethodID throw NoSuchMethodError. Add\nsimple unit tests. Implement RegisterNatives.\nFix bug that CreateArgArray doesn\u0027t pass the last argument correctly.\n\nChange-Id: I5b87ffdbb72a7ef75147a002560b8c47e7af35f4\n"
    },
    {
      "commit": "bbd76717c14822b68ae6d122d88610b46286272f",
      "tree": "c3575373babafb78979c133d04b79e64c7598608",
      "parents": [
        "b3c5ea6d937900651d6d0f8106fbd166256a59cb"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 17 10:25:24 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 17 10:28:30 2011 -0700"
      },
      "message": "Add the two ReferenceTables.\n\nChange-Id: Ie9200e6246dc07d867de0a70de52c1b2dc034f5b\n"
    },
    {
      "commit": "5b1982d2b41ab7a664fb04117539f29eadafa773",
      "tree": "c4c347fce75552a63269c6dbd979432b34a4e7be",
      "parents": [
        "b3c5ea6d937900651d6d0f8106fbd166256a59cb"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Tue Aug 16 18:35:19 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Tue Aug 16 18:35:19 2011 -0700"
      },
      "message": "Get rid of some C artifacts as noted in the initial review.\n\nChange-Id: If476df8bbd0505157fce938777d3ee17d6da5c98\n"
    },
    {
      "commit": "b3c5ea6d937900651d6d0f8106fbd166256a59cb",
      "tree": "9b328d88b3edd0091d55b1d0fb918cc918f9d694",
      "parents": [
        "e5da7d8e729058bd6a0a23efeb7806a3a67e7c63",
        "11e45077acba2e757799a00b3be9d63fec36a7cc"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 16 18:10:26 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 16 18:10:26 2011 -0700"
      },
      "message": "Merge \"Add a reference table implementation.\" into dalvik-dev"
    },
    {
      "commit": "11e45077acba2e757799a00b3be9d63fec36a7cc",
      "tree": "3538d83b1bdb862d657a93aa894ad74fc6ec9c68",
      "parents": [
        "e2ff782c0cf770c3f72916ba9072bc24bf732ce0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 16 17:40:46 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 16 18:00:12 2011 -0700"
      },
      "message": "Add a reference table implementation.\n\nThis is suitable for pinned array references and the like.\n\nI\u0027ve also brought in some of the human-readable type printing stuff\nfor the benefit of the reference table dumping code.\n\nThis patch includes tests, but doesn\u0027t yet wire anything up.\n\nChange-Id: Iaf6066201bbd254e033dee4fd0b8dfd0bc17afa9\n"
    },
    {
      "commit": "e5da7d8e729058bd6a0a23efeb7806a3a67e7c63",
      "tree": "cdc4892cd856011de2ea113d67f06fda592e4c8d",
      "parents": [
        "e2ff782c0cf770c3f72916ba9072bc24bf732ce0",
        "6ea095ad30bf13cc00b4fee7afbbe4731a349c83"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Aug 16 15:45:52 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 16 15:45:52 2011 -0700"
      },
      "message": "Merge \"Parse required options\" into dalvik-dev"
    },
    {
      "commit": "6ea095ad30bf13cc00b4fee7afbbe4731a349c83",
      "tree": "fa86d5b6e4876c0abab7727d5d9a10c0b1974eb6",
      "parents": [
        "8a436595d36c1e4935984fcac249d7d877e00383"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Aug 16 15:26:54 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Aug 16 15:44:55 2011 -0700"
      },
      "message": "Parse required options\n\nChange-Id: Ia534132dcb1bfc4adbde3ed8afb07535e26ba942\n"
    },
    {
      "commit": "e2ff782c0cf770c3f72916ba9072bc24bf732ce0",
      "tree": "6e45d0141b4149765baa94276cb4f91dedda27df",
      "parents": [
        "8a436595d36c1e4935984fcac249d7d877e00383",
        "710a0cbb4b0af03ce8651ed7936437c73250045e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 16 14:50:40 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 16 14:50:40 2011 -0700"
      },
      "message": "Merge \"Extra tests (and a bug fix).\" into dalvik-dev"
    },
    {
      "commit": "710a0cbb4b0af03ce8651ed7936437c73250045e",
      "tree": "161a43b45307333ffba2b9751ba4ed0a5b16e72c",
      "parents": [
        "a5b897eae4b6f9f9608faa9eada7ddf42bf1bfd2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 16 14:32:37 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 16 14:32:37 2011 -0700"
      },
      "message": "Extra tests (and a bug fix).\n\nI\u0027ve also added a trailing \" \" to the CHECK/UNIMPLEMENTED macros\u0027\noutput, to make it more natural for callers to add their own detail.\n\nChange-Id: I59bc51ac54aaff93f37a6b35082301e19db91304\n"
    },
    {
      "commit": "8a436595d36c1e4935984fcac249d7d877e00383",
      "tree": "66e6ecb9afb1c9950285c52fe98b93206436fccd",
      "parents": [
        "a5b897eae4b6f9f9608faa9eada7ddf42bf1bfd2"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Aug 15 21:27:23 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Aug 16 13:50:46 2011 -0700"
      },
      "message": "Work on option parsing as prelude to image loading\n\nChange-Id: I13edbd9b341e603817941beaca676535a7e590c7\n"
    },
    {
      "commit": "a5b897eae4b6f9f9608faa9eada7ddf42bf1bfd2",
      "tree": "2bcc495bc93b435c03807d0b24434f11d5baa0b7",
      "parents": [
        "83ab4f3b4e5544dc78c059e139f20cf93e5c6ce6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 16 11:33:06 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 16 12:58:11 2011 -0700"
      },
      "message": "Add semi-functional exception throwing.\n\nWe still need a way to call \u003cinit\u003e on the new exception instance, in particular.\n\nChange-Id: I839365d20288208cb8847253380cf654a35aeddd\n"
    },
    {
      "commit": "83ab4f3b4e5544dc78c059e139f20cf93e5c6ce6",
      "tree": "589783014bbaaeabcddb4d8dcef677ea717f82de",
      "parents": [
        "289da82ae82438ab3aed1898c82fd87c16846e74"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Mon Aug 15 20:21:39 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Tue Aug 16 12:49:38 2011 -0700"
      },
      "message": "Add an implementation of GetMethodID.\n\nAlso, add an initialization check to GetStaticMethodID.\n\nChange-Id: I45f3aa3bc335b697cfe7d3308ba36bd9911ebe49\n"
    },
    {
      "commit": "289da82ae82438ab3aed1898c82fd87c16846e74",
      "tree": "31cff59beae91556fb85aa2e11da1697b6feea67",
      "parents": [
        "04b63fd60de0d9e6f07763511a1a9622accfeed7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 16 10:11:20 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 16 10:35:27 2011 -0700"
      },
      "message": "Add bounds checking to our internal array get/set methods.\n\nChange-Id: Ia570615e6b4ea81d796b6bf720444c62830a4f89\n"
    },
    {
      "commit": "04b63fd60de0d9e6f07763511a1a9622accfeed7",
      "tree": "7eee41b63389eec5b1631a3e6b45980ae3beda32",
      "parents": [
        "d46f9dbe1c7c2d4cab36026c5653a29548c3ded1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 16 09:40:10 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 16 09:40:10 2011 -0700"
      },
      "message": "Using \u0027size\u0027 to mean anything other than \"element count\" on a collection is confusing.\n\nThis name was okay on Object itself, but it\u0027s confusing on its array subclasses.\n\nChange-Id: I3d545d8c1001a157a68eefd34d6d411f4408ec9e\n"
    },
    {
      "commit": "8a26c5c4c74b09e2887593c733a22652a9f80d7c",
      "tree": "880dee46cc2e56c3903c216ad0e846dccc37a71a",
      "parents": [
        "f2682d5a6ce0f7de58da8fd4ec8aec200c43b92e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 15 18:35:43 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 15 18:35:43 2011 -0700"
      },
      "message": "Implement NewStringUTF and SetObjectArrayElement.\n\nTurns out there are a couple more calls needed by aexec.\n\nI\u0027ve added a placeholder AddLocalReference too, so we can add calls\nrather than TODOs.\n\nChange-Id: I3228a68527540b7cca665a8f35143a7401107e24\n"
    },
    {
      "commit": "f2682d5a6ce0f7de58da8fd4ec8aec200c43b92e",
      "tree": "e7669f0833a588eb5231fb4452bbac091cc5037e",
      "parents": [
        "0d666d8769714dcbc2acc4dd5b06f0deffa6e0a1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 15 16:37:04 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 15 18:34:59 2011 -0700"
      },
      "message": "Fix the invocation interface.\n\nPreviously, we just cast the Runtime* to a JavaVM*, which blew up as soon as\nthe caller tried to use their supposed JavaVM*.\n\nThis also implements NewObjectArray. Running aexecd on the host, this gets us\nas far as not having an x86 CreateInvokeStub...\n\nChange-Id: Iba5f148797d053fba1c69af99b20508ea6aff5cb\n"
    },
    {
      "commit": "0d666d8769714dcbc2acc4dd5b06f0deffa6e0a1",
      "tree": "18952f6a1ec70d26c4bcea809d093c027115776e",
      "parents": [
        "4e777d4e005375a5a41c4ec3c55783c09565df0d"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Aug 14 16:03:46 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Aug 15 18:12:54 2011 -0700"
      },
      "message": "Fix JNI compiler for synchronized methods.\n\nCalls to the monitor enter/exit routines were passing the JNI env with\nthe iterator in the wrong position. Reset the iterator to make sure it\nis in the correct position for the monitor enter/exit call.\n\nAlso fix clobbering of arguments in registers when calling monitor enter\nfor synchronized methods on ARM.\n\nAlso some tidying of code/comments.\n\nChange-Id: I5bf1dd7e65d925e768411cb5865919ee5f54edbf\n"
    },
    {
      "commit": "4e777d4e005375a5a41c4ec3c55783c09565df0d",
      "tree": "f78e875fba9fb3ca7d22c4b7dd0fecda657f5976",
      "parents": [
        "d8ddfd5eadde1d5f53ef1419f529c799233eaa62"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Aug 15 13:53:52 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Aug 15 15:20:50 2011 -0700"
      },
      "message": "Revisions to \"First pass of ImageWriter\"\n\nCleanup from accidental commit of:\n\n    commit db4d54081f09abcbe97ffdf615874f2809a9e777\n    Author: Brian Carlstrom \u003cbdc@google.com\u003e\n    Date:   Tue Aug 9 12:18:28 2011 -0700\n\n        First pass of ImageWriter\n\nChange-Id: I0168c05d229e0c7f8059dc1ab1b46dc2dc426c53\n"
    },
    {
      "commit": "d8ddfd5eadde1d5f53ef1419f529c799233eaa62",
      "tree": "bf891ae82d622da180d7857d9a86db37b26dbe32",
      "parents": [
        "3cd987f5c2d152b82a530207d6eeac064f67739b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 15 14:32:53 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 15 14:55:18 2011 -0700"
      },
      "message": "Implement JNI NewBooleanArray et cetera.\n\n(Primitive types only. NewObjectArray to come...)\n\nChange-Id: I2f54031d96062d666089c91ba40e16028ae21bd4\n"
    },
    {
      "commit": "3cd987f5c2d152b82a530207d6eeac064f67739b",
      "tree": "a5949cfd20841b68631cf11d6ee952cf500cbdbf",
      "parents": [
        "db4d54081f09abcbe97ffdf615874f2809a9e777"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 15 10:39:47 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 15 10:39:47 2011 -0700"
      },
      "message": "Pass the correct Thread* when calling back into Java.\n\nChange-Id: I39ff5fdcd0d787a23db19c2e39f62472d84d467a\n"
    },
    {
      "commit": "db4d54081f09abcbe97ffdf615874f2809a9e777",
      "tree": "86d4b6cdbfda6538ebf3fbb2f362209eb6867ce5",
      "parents": [
        "350dad1bb785281d6740633f219a2832feda6ff3"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Aug 09 12:18:28 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Aug 15 10:03:22 2011 -0700"
      },
      "message": "First pass of ImageWriter\n\nChange-Id: I4f189587a2e3cc1c265200b8fa64321b299947eb\n"
    },
    {
      "commit": "350dad1bb785281d6740633f219a2832feda6ff3",
      "tree": "40751b3075ae5a450dc00cd1cd8a9f6152791264",
      "parents": [
        "ad107abee00fb523b9fda575a40395e9d6d9510d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 15 09:50:26 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 15 09:50:26 2011 -0700"
      },
      "message": "Fix zip_archive_test on the target.\n\nChange-Id: I50d4bb7cd3252efb6b19d712badd71d06e13c433\n"
    },
    {
      "commit": "ad107abee00fb523b9fda575a40395e9d6d9510d",
      "tree": "9db5ff4af4613224ed136bedce10b88538933bff",
      "parents": [
        "650a07d237f219ee6f23cfe939118e6f9c48f4d3"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Sun Aug 14 15:54:24 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Sun Aug 14 15:54:24 2011 -0700"
      },
      "message": "Remove author attributions.\n\nChange-Id: I58d2983ce41f6b3f3a4e1bbd1d075e794b8257e3\n"
    },
    {
      "commit": "9b9ba28b1277b4ddb967c5a968c6d550febce6af",
      "tree": "d895f4134ac8d0b7e5b86307c0ed9aef76606a40",
      "parents": [
        "fe909f29eb417199497a640abd78057fa83c076c"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Sun Aug 14 15:30:39 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Sun Aug 14 15:30:39 2011 -0700"
      },
      "message": "Implement upcalls with compiled JNI callback bridges.\n\nChange-Id: Ib475a5957a3e2596a812df1314fbc73a96f01725\n"
    },
    {
      "commit": "fe909f29eb417199497a640abd78057fa83c076c",
      "tree": "3482bdced2dfc5e398b02e6c5927906c8fa00e2e",
      "parents": [
        "53b61314370c49354ed6f8d616d6a9a182410fc1"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Fri Aug 12 19:20:26 2011 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Fri Aug 12 20:18:33 2011 -0700"
      },
      "message": "Get should be a const method.\n\nOtherwise, the returned handler_ can still be modified.\n\nChange-Id: I59dea4aa5284f7154d3c096556e6e497890c26ca\n"
    },
    {
      "commit": "53b61314370c49354ed6f8d616d6a9a182410fc1",
      "tree": "e744dfef8b45438bb992b08633439522095cd967",
      "parents": [
        "5511f2161d71ac67a9bc140cbbca5d9637ab7499"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 18:28:20 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 18:28:34 2011 -0700"
      },
      "message": "Use the UNIMPLEMENTED macro everywhere.\n\nAs suggested in review.\n\nChange-Id: Ic14c91a622b545b4800ef021dfb501fb09cbda9d\n"
    },
    {
      "commit": "b20a554613609dc372073d2ebd9fbc3925a429f5",
      "tree": "48778232d101782dfab6bb47498f39401c4ca975",
      "parents": [
        "46b92ba72247e10884714d0b683bdb5e9d9ce59d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 18:03:12 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 18:03:12 2011 -0700"
      },
      "message": "Implement a few of the easy JNI functions.\n\nExceptionCheck was the next thing we need; the others are just targets of\nopportunity.\n\nChange-Id: I1c9e50fd5b5702b6f2afc8b4a31231af2a871b66\n"
    },
    {
      "commit": "46b92ba72247e10884714d0b683bdb5e9d9ce59d",
      "tree": "85a0ba2189bef8de8e5a64b461e705967447f83e",
      "parents": [
        "e0fc0ef0facabaf44b6fd460db4469ab0dab9696"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 17:57:34 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 17:57:34 2011 -0700"
      },
      "message": "Factor out NeedsEscaping from the Printable* functions.\n\nAs suggested in review.\n\nChange-Id: I07efa577878b5782fc5c30ee0382d24f69d4adeb\n"
    },
    {
      "commit": "e0fc0ef0facabaf44b6fd460db4469ab0dab9696",
      "tree": "f887577ed88b685e97381dbb597bf6cc13dc6fc8",
      "parents": [
        "91779c841f8bfaf2416576d0c44fa5f50f95b60b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 17:39:17 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 17:39:17 2011 -0700"
      },
      "message": "Fix a few more scoped_ptr/scoped_array confusions, and stop tring to optimistically load non-existent .dex files.\n\nChange-Id: I0c12a731bdf1da49f2f51665181e5b4d2b423ba2\n"
    },
    {
      "commit": "91779c841f8bfaf2416576d0c44fa5f50f95b60b",
      "tree": "fc3c14d8204c8089fc4dc0c361781332b58ff9ab",
      "parents": [
        "d6c705a0ed2ea5180268366b868f25b7265da3d0",
        "330304de14dc7118b45b8e7b5bd11a172fa61701"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 17:37:33 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 12 17:37:33 2011 -0700"
      },
      "message": "Merge \"Create JNIEnv*s on the right threads.\" into dalvik-dev"
    },
    {
      "commit": "d6c705a0ed2ea5180268366b868f25b7265da3d0",
      "tree": "66b1cbafec1d1a51d3a5e8417503d3ee2713932f",
      "parents": [
        "22f409320323f0f7df53954ce9193436b96444dc",
        "28e76279ae857306113278223fde8e66528f4065"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Aug 12 16:06:58 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 12 16:06:58 2011 -0700"
      },
      "message": "Merge \"Add some exceptions classes for throw\" into dalvik-dev"
    },
    {
      "commit": "28e76279ae857306113278223fde8e66528f4065",
      "tree": "be4e3a1afbb1ce777d8466e0f0c9e51f33e11020",
      "parents": [
        "40ef99eb9dd91c2fa549f40973964529c927bb3c"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Aug 12 14:58:56 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Aug 12 14:58:56 2011 -0700"
      },
      "message": "Add some exceptions classes for throw\n\nChange-Id: Ic01714860598f365439733329df6f7671582d7e9\n"
    },
    {
      "commit": "330304de14dc7118b45b8e7b5bd11a172fa61701",
      "tree": "9f2d095d9f2da8f82984f58d9b3491bbe438e315",
      "parents": [
        "22f409320323f0f7df53954ce9193436b96444dc"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 14:28:05 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 14:36:54 2011 -0700"
      },
      "message": "Create JNIEnv*s on the right threads.\n\nThis exposes a bug in jni_compiler.cc --- it passes the right JNIEnv* to the\nnative method and to MonitorExit, but it passes a bogus value to MonitorEnter.\n\nChange-Id: Icbf505d24294d14ce3e40180a20254789cb69904\n"
    },
    {
      "commit": "22f409320323f0f7df53954ce9193436b96444dc",
      "tree": "4de73b864b9271a8f3c70b009b1f06adec27f14f",
      "parents": [
        "c7ac37f0b8b64cfb53d8b9cc8dddbb34be3dd5ee"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 13:06:37 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 13:06:37 2011 -0700"
      },
      "message": "Add ScopedJniThreadState.\n\nVery similar to what we had before, except workAroundAppJniBugs is hard-coded\non until we have somewhere to put options.\n\nChange-Id: I8dcf4fade237ca230138e355dcc20319f3d7a540\n"
    },
    {
      "commit": "c7ac37f0b8b64cfb53d8b9cc8dddbb34be3dd5ee",
      "tree": "86b0ec39efb6a8fb758311ab035466a1a1edefd2",
      "parents": [
        "0c9cd5692fbbc5d92fcdc1ef41ef881a492b00ce"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 12:21:58 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 12:21:58 2011 -0700"
      },
      "message": "Be more specific when we exit because of an unimplemented JNI call.\n\nAlso add basic char/string escaping functions for cleaning error messages.\n\nChange-Id: I03df28e30a492bfd293ef6aa56a703ec87817ed5\n"
    },
    {
      "commit": "0c9cd5692fbbc5d92fcdc1ef41ef881a492b00ce",
      "tree": "d56f02b3e9c5116b2625c2da44c605fcf7f67129",
      "parents": [
        "191e4165ad316e1e0a12f3e91fb764694b4b82c0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 10:59:29 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 11:51:30 2011 -0700"
      },
      "message": "Add tests for JNI FindClass.\n\nChange-Id: I409887167229a421d19adb0f884518e843ca7690\n"
    },
    {
      "commit": "191e4165ad316e1e0a12f3e91fb764694b4b82c0",
      "tree": "7a7804d20c3bc1a521692cd2421a57d1cbacaf96",
      "parents": [
        "4e5c0b92d03fdee18aee6073ad26995f94159866",
        "6b436857669d8d1d9be43a70fd8fd33e508276ce"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 10:27:57 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 12 10:27:57 2011 -0700"
      },
      "message": "Merge \"Translate JNI class descriptors into regular class descriptors in FindClass.\" into dalvik-dev"
    },
    {
      "commit": "6b436857669d8d1d9be43a70fd8fd33e508276ce",
      "tree": "ae1b978c5b5adc29afa70cb7f7e3dd930d799761",
      "parents": [
        "40ef99eb9dd91c2fa549f40973964529c927bb3c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 10:16:44 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 12 10:16:44 2011 -0700"
      },
      "message": "Translate JNI class descriptors into regular class descriptors in FindClass.\n\nThe descriptors passed to JNI\u0027s FindClass use a different syntax than those\nused by ClassLinker::FindClass.\n\nChange-Id: I1510e807e078fd04c9d56bd4483eb79c3503d8ab\n"
    },
    {
      "commit": "4e5c0b92d03fdee18aee6073ad26995f94159866",
      "tree": "5bf4418d387c36d90757b95ca27f4c7a61730e0d",
      "parents": [
        "40ef99eb9dd91c2fa549f40973964529c927bb3c"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Thu Aug 11 22:50:08 2011 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Thu Aug 11 22:50:08 2011 -0700"
      },
      "message": "End() should check if remaining_count_ \u003d\u003d -1, instead of checking negative.\n\nChange-Id: I4b0e113f48902a4056d07bdcc2ffdba90d7fde7b\n"
    },
    {
      "commit": "40ef99eb9dd91c2fa549f40973964529c927bb3c",
      "tree": "317dfd56abeacb4c0dd3cf7f63a4801828d7dff9",
      "parents": [
        "5381cf941d26030199fcdbe61a614ff01e55a27c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 11 17:44:34 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 11 22:02:10 2011 -0700"
      },
      "message": "Start implementing JNI.\n\nThis patch replaces our JniEnvironment class with the regular JNIEnv.\n\nThis patch also adds support for .jar, .zip, and .apk files in the\nboot classpath.\n\nThere\u0027s also an attempt at implementing JNIEnv::FindClass.\n\nI\u0027ve also fixed a few scoped_ptr/scoped_array bugs (this kind of thing\nbeing the reason we use UniquePtr in libcore), and removed some\nunnecessary .\n\nThe \u0027tools/art\u0027 script makes it easier to play with aexec on the command-line.\n\nChange-Id: Ic4f704c12e0071f17e95b6e182fdab9370ead9b0\n"
    },
    {
      "commit": "5381cf941d26030199fcdbe61a614ff01e55a27c",
      "tree": "225eca00d1593e63f88a73459a52f342a7942fc4",
      "parents": [
        "2fb9753c58ce1a511fd6996856840120eb2930db"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Wed Jul 27 00:28:04 2011 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Thu Aug 11 21:14:43 2011 -0700"
      },
      "message": "Handle double and long on the Managed side, and follow AAPCS on the Native side.\n\nChange-Id: I43a8fa36cb79fb438f075986a46c66ab8258e725\n"
    },
    {
      "commit": "2fb9753c58ce1a511fd6996856840120eb2930db",
      "tree": "4e646106bd572224f690d5e8e64b397b25887ae8",
      "parents": [
        "0dab4ecc01c5db0d0846bf5b4f608634d7404f74"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Thu Aug 11 16:17:23 2011 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Thu Aug 11 18:31:05 2011 -0700"
      },
      "message": "Exception Handling: libdex integration. Also added unit test on exception.\n\nRuntime processing of TryItem and CatchHandler. Added iterator.\n\nNext step: Exception Handling: RT integration. Implement throw and\nunwind.\n\nChange-Id: Idf88ce83e37b004016f1eca2c621e5a86948fe91\n"
    },
    {
      "commit": "0dab4ecc01c5db0d0846bf5b4f608634d7404f74",
      "tree": "28f48ad1713ac07c817b034bcbb6d7171c72e614",
      "parents": [
        "35baaab2a79014f35e225b189f6dbec1b4ba9542"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 11 12:19:32 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 11 12:19:32 2011 -0700"
      },
      "message": "Switch to the libcore ScopedLocalRef.\n\nAlso stop returning a deleted local reference from CreateStringArray.\n(In a later patch I\u0027ll switch us over to the libcore toStringArray.)\n\nChange-Id: I83cb10b9ecda32476f94a1120325ac4121f9e4fb\n"
    },
    {
      "commit": "35baaab2a79014f35e225b189f6dbec1b4ba9542",
      "tree": "78b714e339b12c51b48a038d4a9d8c8c2397b919",
      "parents": [
        "7833bd261d78be2c42284031f169a62c9065cc3c"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Wed Aug 10 16:18:03 2011 -0400"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Wed Aug 10 16:24:08 2011 -0400"
      },
      "message": "Combine InstanceField and StaticField and Field.\n\nThis gives us full consistency with the java.lang.reflect.Field type.\n\nChange-Id: Ib17c7fca4fe2c912fa9f5e37da2be0aebb8def9c\n"
    },
    {
      "commit": "7833bd261d78be2c42284031f169a62c9065cc3c",
      "tree": "79b5625e5f2ef2f69bd6890de8e961548468b178",
      "parents": [
        "f7ed11ae81002f83b78012c4bbe01e5e994ecc3b"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Aug 09 18:31:44 2011 -0400"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Wed Aug 10 15:24:37 2011 -0400"
      },
      "message": "Store static field values in arrays.\n\nEach static field is stored in one of three arrays:\n - references are stored in static_references_\n - 64 bit primitives are stored in static_64bit_primitives_\n - everything else is in static_32bit_primitives_\n\nChange-Id: I1c0e182582f776c62edbd9bd97ffd4fd7e516c99\n"
    },
    {
      "commit": "f7ed11ae81002f83b78012c4bbe01e5e994ecc3b",
      "tree": "01ff697d30fe8cdb65288ad953dd2421a3d71cff",
      "parents": [
        "df4189cc2381be21cb0a1586f4e079d394c4d057"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Aug 09 17:55:51 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Aug 09 18:31:22 2011 -0700"
      },
      "message": "Adding Object::InstanceOf and Class::IsAssignableFrom\n\nSummary:\n- Add Object::InstanceOf and Class::IsAssignableFrom\n- Fix Cloneable and Serializable interfaces on arrays to be \u003d\u003d with FindSystemClass results\n- Changed Object::Alloc(Class*) to be Class-\u003eNewInstance()\n\nDetails:\n\nAdd Object::InstanceOf and Class::IsAssignableFrom\n\n\tobject.h\n\tcommon_test.h\n\tobject_test.cc\n\nFix bug where Cloneable and Serializable where created with AllocClass\nand never inserted in the classes table with FindSystemClass by just\ncreating them directly with FindSystemClass\n\n\tclass_linker.cc\n\tobject_test.cc\n\nChanged Object::Alloc(Class*) to be Class-\u003eNewInstance()\n\n\tclass_linker.cc\n\tobject.h\n\nChange-Id: I528767fff43aff32c8dc4f7a2d4157598a7dbb89\n"
    },
    {
      "commit": "df4189cc2381be21cb0a1586f4e079d394c4d057",
      "tree": "21940c869f89ea7b0b4d1acc4e15323d3bdb1e76",
      "parents": [
        "0024d6cb8043a8967fdfb20561f321b2fe65c41f"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Aug 09 17:10:28 2011 -0400"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Aug 09 17:28:34 2011 -0400"
      },
      "message": "Follow up from Carl\u0027s comments on new primitive array types.\n\nChange-Id: I0c53d5c327070034562051f3f18582a9d108075c\n"
    },
    {
      "commit": "0024d6cb8043a8967fdfb20561f321b2fe65c41f",
      "tree": "e9f14d1a157816f51336ac98d348fff99678b9c4",
      "parents": [
        "4bfab0a48a7e94597498b3e8cd520c4e6df0dcd8"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Aug 09 08:26:12 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Aug 09 10:55:30 2011 -0700"
      },
      "message": "Minor zip cleanups\n\nChange-Id: Iaa2552245e9dac5fabc6a9fb553174e4d5d84142\n"
    }
  ],
  "next": "4bfab0a48a7e94597498b3e8cd520c4e6df0dcd8"
}
