)]}'
{
  "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "b0460eaa2cb131f1dbdd5a7217bd36b9a9f1b995",
      "tree": "7b06bde279ff798413a531728ce51aafb122aa5e",
      "parents": [
        "8989d990e5be3982ab5ba4e7aa574652f71632ca"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 29 10:08:05 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Aug 02 22:17:44 2011 -0700"
      },
      "message": "Add support for opening classes.dex file from zip, jar, apk\n\nAdding new ZipArchive class and test\n\n\tsrc/zip_archive.h\n\tsrc/zip_archive.cc\n\tsrc/zip_archive_test.cc\n\tbuild/Android.common.mk\n\nChange from host only use of build dex file for libcore to using host\nand target core.jar containing classes.dex files. This requires\nsetting up an ANDROID_DATA directory to containing an art-cache file\nfor the extracted dex files, similar to the dalvik-cache for odex\nfiles. A unique ANDROID_DATA and art-cache is created and cleaned up\nfor each test run (similar to vogar).\n\n\tsrc/common_test.h\n\nAdd dependency for libcore jar files to test targets to support\nRuntimeTest use of core.jar\n\n\tAndroid.mk\n\nExtract common includes to ART_C_INCLUDES when adding zlib dependency\n\n\tbuild/Android.common.mk\n\tbuild/Android.libart.mk\n\tbuild/Android.test.mk\n\nAdding TODO regarding unordered map for ClassLinker::classes_ table.\n\n\tsrc/class_linker.h\n\nAdding DexFile::OpenZip (also changed OpenFile to take\n\tsrc/dex_file.cc\n\tsrc/dex_file.h\n\nAdding kPageSize of 4096, validated by Runtime::Init\n\n\tsrc/globals.h\n\tsrc/runtime.cc\n\n    Updated to use kPageSize where it seemed appropriate.\n\n\tsrc/jni_compiler.cc\n\tsrc/jni_compiler_test.cc\n\tsrc/space.cc\n\tsrc/thread.cc\n\tsrc/thread_x86.cc\n\nChanged thread_list_ and class_linker_ to be declared in Runtime::Init\ninitialization order.\n\n\tsrc/runtime.h\n\nChange-Id: Id626abe5b6c1990e4f93598256ee0fae000818f6\n"
    },
    {
      "commit": "7a90959d4ef7a69f3bcb7b8763f646e12d9267d3",
      "tree": "1324ba0128921ad5d1b5f74244b471a4431c0040",
      "parents": [
        "913af1bd90a6e8fd56f1f851db1f098636dae6a5"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Sun Jul 24 19:21:59 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Sun Jul 24 19:21:59 2011 -0700"
      },
      "message": "Make the RuntimeTest use Runtime instances instead of its constituents.\n\nChange-Id: I1005f279259917ff07d24e3bcd3643992ec8e3bd\n"
    },
    {
      "commit": "578bbdc684db8ed68e9fedbc678669d27fa68b6e",
      "tree": "d752941d81ad6d7e248c349ce21371a8ae369693",
      "parents": [
        "45a76cb99104a222d6a9bd768a084893dcb7cf30"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jul 21 14:07:47 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 22 15:23:33 2011 -0700"
      },
      "message": "Move DexFiles to be allocated on the heap\n\nRemoved pointer from DexFile to RawDexfile to allow heap allocation of\nDexFile. DexFile is now an ObjectArray of ObjectArrays. Removing the\npointer from DexFile to RawDexfile meant adding arguments to pass the\nRawDexfile along to ClassLinker::LoadClass, LoadInterfaces, LoadField,\nLoadMethod, LinkClass, LinkInterfaces, ResolveClass to avoid the need\nto look a RawDexfile up from a DexFile. ClassLinker::CreateArrayClass\nnow takes the raw_dex_file to assist in looking up the component class\nfrom the proper source. Moved Method::HasSame* methods to ClassLinker\nsince for access to the RawDexfile (and tests of HasSame from\nObjectTest to ClassLinkerTest.\n\n\tsrc/dex_file.cc\n\tsrc/dex_file.h\n\tsrc/class_linker.cc\n\tsrc/class_linker.h\n\tsrc/object.h\n\nRunTime::Create/RunTime::Init/ClassLinker::Create/ClassLinker::Init\nnow take the boot class path. A boot class path with\nLjava/lang/Object; must be provided to initalize [Ljava/lang/Object;\nduring startup in order to heap allocate DexFiles.\n\n\tsrc/class_linker.cc\n\tsrc/class_linker.h\n\tsrc/runtime.cc\n\tsrc/runtime.h\n\nRestored FindClass to load from a specific dex file. This is for use\nby class loaders, otherwise it is assumed the caller wants to use the\nboot classpath. We now distinguish and track the boot classpath as\nseparate from other dex files known to the class linker. Renamed\nAppendToClassPath to AppendToBootClassPath and FindInClassPath to\nFindInBootClassPath to clarify.\n\n\tsrc/class_linker.cc\n\tsrc/class_linker.h\n\nCleaned up AllocCharArray to generic AllocArray and added\nAllocObjectArray. Added a functional ObjectArray implementation and a\nObjectTest to cover it.\n\n\tsrc/heap.h\n\tsrc/object.h\n\tsrc/object_test.cc\n\nSwitched more Object* downcasting to down_cast\n\n\tsrc/class_linker.cc\n\nSwitched order of arguments for DexFile::SetResolved to follow more\nconventional collection ordering ( \"(index, value)\" vs \"(value, index)\" )\n\n\tsrc/dex_file.h\n\tsrc/class_linker.cc\n\tsrc/class_linker.h\n\nAdded class_linker_ and java_lang_raw_dex_file_ to RuntimeTest as\nconvenience to test subclasses. ClassLinkerTest now can use these to\nsimplify its ::Assert* methods. JniCompilerTest now uses it for\nsetting up its boot class path. Removed now unneeded\nOpenDexFileBase64.\n\n\tsrc/common_test.h\n\tsrc/class_linker_test.cc\n\tsrc/jni_compiler_test.cc\n\nAdd external/gtest/include to non-test include path so FRIEND_TEST can be used.\nAdd src to include path to remove the need of using in in art/src files.\n\n\tbuild/Android.libart.host.mk\n\tbuild/Android.libart.mk\n\tsrc/assembler.cc\n\tsrc/assembler.h\n\tsrc/assembler_arm.cc\n\tsrc/assembler_arm.h\n\tsrc/assembler_x86.cc\n\tsrc/assembler_x86.h\n\tsrc/assembler_x86_test.cc\n\tsrc/base64.cc\n\tsrc/base64.h\n\tsrc/calling_convention.cc\n\tsrc/calling_convention.h\n\tsrc/calling_convention_arm.cc\n\tsrc/calling_convention_x86.cc\n\tsrc/casts.h\n\tsrc/class_linker.h\n\tsrc/class_linker_test.cc\n\tsrc/common_test.h\n\tsrc/constants.h\n\tsrc/constants_arm.h\n\tsrc/constants_x86.h\n\tsrc/dex_file.cc\n\tsrc/dex_file.h\n\tsrc/dex_file_test.cc\n\tsrc/dex_instruction.cc\n\tsrc/dex_instruction.h\n\tsrc/dex_instruction_visitor.h\n\tsrc/dex_instruction_visitor_test.cc\n\tsrc/dex_verifier.cc\n\tsrc/dex_verifier.h\n\tsrc/heap.cc\n\tsrc/heap.h\n\tsrc/jni_compiler.cc\n\tsrc/jni_compiler_test.cc\n\tsrc/jni_internal.cc\n\tsrc/jni_internal.h\n\tsrc/leb128.h\n\tsrc/managed_register.h\n\tsrc/managed_register_arm.cc\n\tsrc/managed_register_arm.h\n\tsrc/managed_register_arm_test.cc\n\tsrc/managed_register_x86.cc\n\tsrc/managed_register_x86.h\n\tsrc/managed_register_x86_test.cc\n\tsrc/mark_stack.cc\n\tsrc/mark_stack.h\n\tsrc/mark_sweep.cc\n\tsrc/mark_sweep.h\n\tsrc/memory_region.cc\n\tsrc/memory_region.h\n\tsrc/monitor.h\n\tsrc/object.cc\n\tsrc/object.h\n\tsrc/object_bitmap.cc\n\tsrc/object_bitmap.h\n\tsrc/object_test.cc\n\tsrc/offsets.cc\n\tsrc/offsets.h\n\tsrc/raw_dex_file.cc\n\tsrc/raw_dex_file.h\n\tsrc/raw_dex_file_test.cc\n\tsrc/runtime.cc\n\tsrc/runtime.h\n\tsrc/scoped_ptr.h\n\tsrc/space.cc\n\tsrc/space.h\n\tsrc/space_test.cc\n\tsrc/stringpiece.cc\n\tsrc/thread.cc\n\tsrc/thread.h\n\tsrc/thread_arm.cc\n\tsrc/thread_x86.cc\n\tsrc/utils.h\n\nChange-Id: Ib633cea878c36921e9037b0464cb903aec318c3e\n"
    },
    {
      "commit": "176f59cd8997a0491ea5ccdea8e9dfff85dd32d6",
      "tree": "94a57402ca10c334363fe78bb504c66d550dfa8d",
      "parents": [
        "b033c75ebda80ac75f936366fe78d1edf5cec937"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jul 20 13:14:11 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jul 20 13:14:11 2011 -0700"
      },
      "message": "Fix build breakage.\n\nChange-Id: I7fe647db9e04653af204e41a10702b06626576bb\n"
    },
    {
      "commit": "b033c75ebda80ac75f936366fe78d1edf5cec937",
      "tree": "7a457c99acf23b0cc9b86b2a6d8cc2593e85f127",
      "parents": [
        "cdc8de4642ca447a7ed205f0d2203cb217e48aad"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jul 20 12:22:35 2011 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jul 20 12:22:35 2011 -0700"
      },
      "message": "x86 JNI compiler and unit tests.\n\nChange-Id: I4c2e10328961a2e8e27c90777fe2a93737b21143\n"
    },
    {
      "commit": "1f359b08f5ad33ae72e4073b86a9257fe1ed11e5",
      "tree": "3f22a152793289174822b023ad279e125a307418",
      "parents": [
        "ffe6736397d17457188727510f0a2953f69a383a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Jul 17 14:27:17 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Jul 17 14:27:17 2011 -0700"
      },
      "message": "Improve CHECK_\u003cop\u003e logging.\n\nThis patch lets us show the lhs and rhs when a relational check fails. (I show\nboth, even though that looks silly in cases like CHECK_EQ(rc, 0) where we\u0027ll\nsay \"rc\u003d-1, 0\u003d0\", because it\u0027s helpful in cases like CHECK_LT(i, size()) where\nwe want \"i\u003d4, size\u003d2\".)\n\nI had to add a few operator\u003c\u003cs for enums, and fix a bunch of signed/unsigned\nmismatches, and put the StringPiece operator\u003c\u003c in the right namespace.\n\nChange-Id: I390f38bd97b3f50e12182f36ff027ca067c48d69\n"
    },
    {
      "commit": "a5780dad67556297c8ca5f2608c53b193e6c4514",
      "tree": "9d582f869b8ac863249007ff6ff92055afbb685b",
      "parents": [
        "3acbfa4a3f8272d9a42bdd14e64dedb7db6a7ffe"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Jul 17 11:39:39 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Jul 17 11:39:39 2011 -0700"
      },
      "message": "Fix class_linker_test.\n\nClassLinker::FindClass now requires the calling thread to be attached. Also\nimprove the error reporting in Thread::Attach.\n\nChange-Id: I95bae22288902a8c19a99c14ad66f3dbcca4a0b6\n"
    },
    {
      "commit": "eb4f614f2eb53b92ebd416fa418f550861655887",
      "tree": "71e0df5217ab8b4e9fb71bb24abac41777ca1084",
      "parents": [
        "f10edcac1f8ab835d60fc8268f8c574005619998"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 15 17:43:51 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Jul 17 10:44:51 2011 -0700"
      },
      "message": "Flesh out the logging implementation.\n\nAdd PLOG and ensure we have CHECK_STREQ and CHECK_STRNE to go with\nthe existing non-functional DCHECK_STREQ and DCHECK_STRNE.\n\nThis also gives us two different logging implementations, one for\nthe host that just uses std::cerr, and one for Android that uses\nthe Android log.\n\nAlso bring in the StringPrintf family.\n\nChange-Id: I8e190c2c58f26b22ee76a2a87d447df6eb0fa73b\n"
    },
    {
      "commit": "61e019d291583029c01b61b93bea750f2b663c37",
      "tree": "4f4dc6041fe9079fec440feefaebe7c035cae582",
      "parents": [
        "934486cf07c578b6494417ca5dcbae89cf04b019"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Thu Jul 14 16:53:09 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Thu Jul 14 23:06:37 2011 -0700"
      },
      "message": "Initialize runtime constituents on runtime construction.\n\nChange-Id: I63fff272b64bd29a7f828dac48aed91833af1eee\n"
    },
    {
      "commit": "b557353b22c728eecbd1c68593b482622c7782a8",
      "tree": "ed2e35548c5b769803c33a901ff2634bdfa91162",
      "parents": [
        "528153d96162da53af031a9c4d52d82512aa2a3c"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Tue Jul 12 18:22:59 2011 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Tue Jul 12 18:22:59 2011 -0700"
      },
      "message": "Add more functionality to the thread and mutex implementation.\n\nChange-Id: I33b2e53acb4c4c6653f13f1bbdd77cc7ce27e581\n"
    }
  ]
}
