)]}'
{
  "commit": "60c6df6343ef0fda5433725178b71f4c13f317da",
  "tree": "e66b7b33371a885cd6a9f48698e007539a21ba5a",
  "parents": [
    "f7d7b6f9c988e1435fc7bc231bfd6bb8936c9061"
  ],
  "author": {
    "name": "scottb@google.com",
    "email": "scottb@google.com@8db76d5a-ed1c-0410-87a9-c151d255dfc7",
    "time": "Wed Feb 16 22:26:49 2011 +0000"
  },
  "committer": {
    "name": "scottb@google.com",
    "email": "scottb@google.com@8db76d5a-ed1c-0410-87a9-c151d255dfc7",
    "time": "Wed Feb 16 22:26:49 2011 +0000"
  },
  "message": "Refactor SOYC to reduce memory footprint.\n\nBefore: correlations from parents get copied to every single child SourceInfoCorrelation, using lots of extra memory.\n\nAfter: SourceInfoCorrelations have parent pointers, and the list of correlations is computed on demand, saving a lot of memory.\n\nOther changes:\n- Got rid of the idea of merging and having more than one correlation of a given type per node.  These features were only used in practice a couple of minor cases (static evaluation of string concats, for example).\n- Generally, not routing through JProgram to create child nodes.\n- Cleaned up a couple of wrongful/wonky attributes.\n- Output is nearly identical after this change.\n\nhttp://gwt-code-reviews.appspot.com/1352804/show\n\nReview by: cromwellian@google.com\n\ngit-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@9747 8db76d5a-ed1c-0410-87a9-c151d255dfc7\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "7ad6d569aa7ddf2229cc9d669e2cea0efb123ed8",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/core/ext/soyc/impl/StoryRecorder.java",
      "new_id": "51bab4bd8c64bc5800c861e73751b87aa075e323",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/core/ext/soyc/impl/StoryRecorder.java"
    },
    {
      "type": "modify",
      "old_id": "72aeb0796adffe2921e7251346e0c673c1d7b013",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/jjs/SourceInfo.java",
      "new_id": "7e914e9367315c7dc2bc3dca03786515ea54df60",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/jjs/SourceInfo.java"
    },
    {
      "type": "modify",
      "old_id": "19d8d906bc0219b3a02af294349741021789746c",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/jjs/SourceInfoCorrelation.java",
      "new_id": "320376e9b2105001255d1e2ff12afe37c17801aa",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/jjs/SourceInfoCorrelation.java"
    },
    {
      "type": "modify",
      "old_id": "eaf3f8ebe9dab967295d7bd91fc03277085a21d0",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/jjs/SourceOrigin.java",
      "new_id": "1a3b7d73f846a4299d2c6a84699dc10f7b5a7642",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/jjs/SourceOrigin.java"
    },
    {
      "type": "modify",
      "old_id": "658fbd42330ab5c7178ca3a9b3116d5ae701394b",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/jjs/ast/JProgram.java",
      "new_id": "aa3977fb7bd5de1852d7a6dce54bf8b93db64fd3",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/jjs/ast/JProgram.java"
    },
    {
      "type": "modify",
      "old_id": "26c15586f9b104169cd53c190cf8df890a41fe48",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/jjs/impl/BuildTypeMap.java",
      "new_id": "d0c0a46501e4f5784a9c4f7a5af38f5fcc1aa8b2",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/jjs/impl/BuildTypeMap.java"
    },
    {
      "type": "modify",
      "old_id": "a346f4c6f10fa30d5cbb530effc534a65f61d7f9",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaAST.java",
      "new_id": "f727a48c119a2ba11caf495e86799c701a0d96a2",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaAST.java"
    },
    {
      "type": "modify",
      "old_id": "062c1b1e53f07c6c4c7e7b972e7798e6a2ba9d5d",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/jjs/impl/JsoDevirtualizer.java",
      "new_id": "84cc483edddde2d01c603a4e104e4a67bb525997",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/jjs/impl/JsoDevirtualizer.java"
    },
    {
      "type": "modify",
      "old_id": "b9ce5aa37dd541c71c000b0ceb31ae6e8a00764a",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/jjs/impl/MakeCallsStatic.java",
      "new_id": "0e9345a89dd97d432f5c4d314fbd10f4817ee66d",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/jjs/impl/MakeCallsStatic.java"
    },
    {
      "type": "modify",
      "old_id": "6b82869b44030c5ab86753d52abdf40b4748966b",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/jjs/impl/ResolveRebinds.java",
      "new_id": "8054c63bb0a29ea30c908e1efd454f42177ae616",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/jjs/impl/ResolveRebinds.java"
    },
    {
      "type": "modify",
      "old_id": "3e9c96ce7954ed290bf764481cb6ac8f2f8992d3",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/js/JsParser.java",
      "new_id": "2a7b21884fc5b87f3f657463994ff140bba8514b",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/js/JsParser.java"
    },
    {
      "type": "modify",
      "old_id": "4d6434c6b75a765ee7a0ce1563aaa259bc4a6e14",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/js/JsStaticEval.java",
      "new_id": "d867d7b49d907af22e89d831b1d8e3141823c0c7",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/js/JsStaticEval.java"
    }
  ]
}
