)]}'
{
  "commit": "978ddc5964f4eeaecb9c04fc5a95b2d582bb7afd",
  "tree": "2b6f680928f933f81ebcfb27beebe968cbdfe07c",
  "parents": [
    "ff7f1003899dd4dce3e7cffe5e3bc5ea4c43ff95"
  ],
  "author": {
    "name": "Nicolas Capens",
    "email": "capn@google.com",
    "time": "Tue Nov 11 12:42:08 2014 -0500"
  },
  "committer": {
    "name": "Nicolas Capens",
    "email": "nicolascapens@google.com",
    "time": "Thu Nov 20 22:45:59 2014 +0000"
  },
  "message": "Fixed memory leak associated with TLS.\n\nWe used to allocate thread-local memory on each compile.\nIf the compile did not happen on the same thread as ShInitialize,\nwe leaked the thread-local memory.\n\nIt turns out that there is no need to allocate any thread-local\nmemory. This patch cleans up all the unnecessary junk around TLS.\n\nBUG\u003dchromium:181691\n\nChange-Id: I4b67ab23dc856d93424ae51ebf8aaf8966b732e4\nReviewed-on: https://swiftshader-review.googlesource.com/1361\nReviewed-by: Nicolas Capens \u003cnicolascapens@google.com\u003e\nTested-by: Nicolas Capens \u003cnicolascapens@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "27a5598290898561d5a4e0c4243b56f846472ddc",
      "old_mode": 33188,
      "old_path": "src/OpenGL/compiler/Common.h",
      "new_id": "1dc5eeb036cfb5600a4807d43092c2340d3ae82d",
      "new_mode": 33188,
      "new_path": "src/OpenGL/compiler/Common.h"
    },
    {
      "type": "modify",
      "old_id": "694586968c059c5fede423bc6ae4b1f94ee98aa5",
      "old_mode": 33188,
      "old_path": "src/OpenGL/compiler/Compiler.cpp",
      "new_id": "28455cf909fcfaebfff32310b22a7f84f37602f8",
      "new_mode": 33188,
      "new_path": "src/OpenGL/compiler/Compiler.cpp"
    },
    {
      "type": "modify",
      "old_id": "6b04310f0fca0cdf26cb38c1acdbcbed46a6a0c8",
      "old_mode": 33188,
      "old_path": "src/OpenGL/compiler/ConstantUnion.h",
      "new_id": "397bb75d669dd159347d23c5789c8beb09f7e592",
      "new_mode": 33188,
      "new_path": "src/OpenGL/compiler/ConstantUnion.h"
    },
    {
      "type": "modify",
      "old_id": "8763cfeea8d760eadb241f2314fc2b7736aabe9c",
      "old_mode": 33188,
      "old_path": "src/OpenGL/compiler/InitializeDll.cpp",
      "new_id": "6c7f27fced174b0b14a67be7c6520f1794e2a766",
      "new_mode": 33188,
      "new_path": "src/OpenGL/compiler/InitializeDll.cpp"
    },
    {
      "type": "modify",
      "old_id": "857238eeae1967a428e34e142957f51a4fb55f7d",
      "old_mode": 33188,
      "old_path": "src/OpenGL/compiler/InitializeDll.h",
      "new_id": "43070cc3ff78f753a246c4606989086a63bf08ba",
      "new_mode": 33188,
      "new_path": "src/OpenGL/compiler/InitializeDll.h"
    },
    {
      "type": "modify",
      "old_id": "842a45281dd6b19588534663432bc2b743cc8e78",
      "old_mode": 33188,
      "old_path": "src/OpenGL/compiler/InitializeGlobals.h",
      "new_id": "071594142471053080386281386a9506fabd0563",
      "new_mode": 33188,
      "new_path": "src/OpenGL/compiler/InitializeGlobals.h"
    },
    {
      "type": "modify",
      "old_id": "1f40cf58006a629403efb22b9ecc115b8a7ef435",
      "old_mode": 33188,
      "old_path": "src/OpenGL/compiler/InitializeParseContext.cpp",
      "new_id": "dfab027330de959162aba6eae825830d9250b493",
      "new_mode": 33188,
      "new_path": "src/OpenGL/compiler/InitializeParseContext.cpp"
    },
    {
      "type": "modify",
      "old_id": "354bfe13aab6f57f0f6cd90b13ab3a06279400f5",
      "old_mode": 33188,
      "old_path": "src/OpenGL/compiler/InitializeParseContext.h",
      "new_id": "4729d3c2ec05edf10a9c7ddc00649344125acbd0",
      "new_mode": 33188,
      "new_path": "src/OpenGL/compiler/InitializeParseContext.h"
    },
    {
      "type": "modify",
      "old_id": "9cdbeaaa23b4e08691ed32413aba5e09b143e245",
      "old_mode": 33188,
      "old_path": "src/OpenGL/compiler/PoolAlloc.cpp",
      "new_id": "6ec3c40b522bd57270e29dca9055ba59d0f8ef75",
      "new_mode": 33188,
      "new_path": "src/OpenGL/compiler/PoolAlloc.cpp"
    },
    {
      "type": "modify",
      "old_id": "c33dfd99be59acbf412a6da42ff5928a76de0193",
      "old_mode": 33188,
      "old_path": "src/OpenGL/compiler/PoolAlloc.h",
      "new_id": "b032c474865a0ce3966c65887e472eed6e9021f3",
      "new_mode": 33188,
      "new_path": "src/OpenGL/compiler/PoolAlloc.h"
    },
    {
      "type": "modify",
      "old_id": "368c0683dc51f64d1aba84400237498c8cc68bc4",
      "old_mode": 33188,
      "old_path": "src/OpenGL/compiler/ShaderLang.cpp",
      "new_id": "cd4e9ad1777085ca7e929e0ce48ea70ccbc208ec",
      "new_mode": 33188,
      "new_path": "src/OpenGL/compiler/ShaderLang.cpp"
    },
    {
      "type": "modify",
      "old_id": "6d4355d8aced77871e9b3fccfa7dcc1c1656bda3",
      "old_mode": 33188,
      "old_path": "src/OpenGL/compiler/SymbolTable.h",
      "new_id": "739b7ad430c98ec46017dfe6f1162d5db5d5dfb8",
      "new_mode": 33188,
      "new_path": "src/OpenGL/compiler/SymbolTable.h"
    },
    {
      "type": "modify",
      "old_id": "ff280d6bc58bcdf4c24102c9ff7f571490b1d739",
      "old_mode": 33188,
      "old_path": "src/OpenGL/compiler/Types.h",
      "new_id": "8b6f07c466e3cb499fd79edbf8b4cb205568205d",
      "new_mode": 33188,
      "new_path": "src/OpenGL/compiler/Types.h"
    },
    {
      "type": "modify",
      "old_id": "5838d0f5fd720ffd18d2ae6314e416bbd9433ec9",
      "old_mode": 33188,
      "old_path": "src/OpenGL/compiler/ValidateLimitations.cpp",
      "new_id": "9219cd1bb1e7464afd528a3f2d309fde0b5e27c0",
      "new_mode": 33188,
      "new_path": "src/OpenGL/compiler/ValidateLimitations.cpp"
    },
    {
      "type": "modify",
      "old_id": "fe7c36362d24a2f79ea12ca9ac336803e36700f2",
      "old_mode": 33188,
      "old_path": "src/OpenGL/compiler/intermediate.h",
      "new_id": "18b889f69b611a423ef89bb6ec8a5d06fb080349",
      "new_mode": 33188,
      "new_path": "src/OpenGL/compiler/intermediate.h"
    },
    {
      "type": "modify",
      "old_id": "253548d427fd6c574710ee167fd45d1b8c481729",
      "old_mode": 33188,
      "old_path": "src/OpenGL/compiler/localintermediate.h",
      "new_id": "805744f9b9b7621a38e8a85ae3b15df372702494",
      "new_mode": 33188,
      "new_path": "src/OpenGL/compiler/localintermediate.h"
    },
    {
      "type": "modify",
      "old_id": "d88e5613f0daf0158bf8d93c04182cf338e7c998",
      "old_mode": 33188,
      "old_path": "src/OpenGL/libGLESv2/Shader.cpp",
      "new_id": "a66a6b6081150f38eb05e371744c0c14f51518c4",
      "new_mode": 33188,
      "new_path": "src/OpenGL/libGLESv2/Shader.cpp"
    },
    {
      "type": "modify",
      "old_id": "adf1c969e5acd8282b2894e6d4b3beca9afd49e4",
      "old_mode": 33188,
      "old_path": "src/OpenGL/libGLESv2/Shader.h",
      "new_id": "009d0dd20deae19a4f04782d46c907cd1eddc382",
      "new_mode": 33188,
      "new_path": "src/OpenGL/libGLESv2/Shader.h"
    },
    {
      "type": "modify",
      "old_id": "27a5598290898561d5a4e0c4243b56f846472ddc",
      "old_mode": 33188,
      "old_path": "src/Radiance/compiler/Common.h",
      "new_id": "1dc5eeb036cfb5600a4807d43092c2340d3ae82d",
      "new_mode": 33188,
      "new_path": "src/Radiance/compiler/Common.h"
    },
    {
      "type": "modify",
      "old_id": "694586968c059c5fede423bc6ae4b1f94ee98aa5",
      "old_mode": 33188,
      "old_path": "src/Radiance/compiler/Compiler.cpp",
      "new_id": "28455cf909fcfaebfff32310b22a7f84f37602f8",
      "new_mode": 33188,
      "new_path": "src/Radiance/compiler/Compiler.cpp"
    },
    {
      "type": "modify",
      "old_id": "6b04310f0fca0cdf26cb38c1acdbcbed46a6a0c8",
      "old_mode": 33188,
      "old_path": "src/Radiance/compiler/ConstantUnion.h",
      "new_id": "397bb75d669dd159347d23c5789c8beb09f7e592",
      "new_mode": 33188,
      "new_path": "src/Radiance/compiler/ConstantUnion.h"
    },
    {
      "type": "modify",
      "old_id": "8763cfeea8d760eadb241f2314fc2b7736aabe9c",
      "old_mode": 33188,
      "old_path": "src/Radiance/compiler/InitializeDll.cpp",
      "new_id": "6c7f27fced174b0b14a67be7c6520f1794e2a766",
      "new_mode": 33188,
      "new_path": "src/Radiance/compiler/InitializeDll.cpp"
    },
    {
      "type": "modify",
      "old_id": "857238eeae1967a428e34e142957f51a4fb55f7d",
      "old_mode": 33188,
      "old_path": "src/Radiance/compiler/InitializeDll.h",
      "new_id": "43070cc3ff78f753a246c4606989086a63bf08ba",
      "new_mode": 33188,
      "new_path": "src/Radiance/compiler/InitializeDll.h"
    },
    {
      "type": "modify",
      "old_id": "842a45281dd6b19588534663432bc2b743cc8e78",
      "old_mode": 33188,
      "old_path": "src/Radiance/compiler/InitializeGlobals.h",
      "new_id": "071594142471053080386281386a9506fabd0563",
      "new_mode": 33188,
      "new_path": "src/Radiance/compiler/InitializeGlobals.h"
    },
    {
      "type": "modify",
      "old_id": "1f40cf58006a629403efb22b9ecc115b8a7ef435",
      "old_mode": 33188,
      "old_path": "src/Radiance/compiler/InitializeParseContext.cpp",
      "new_id": "dfab027330de959162aba6eae825830d9250b493",
      "new_mode": 33188,
      "new_path": "src/Radiance/compiler/InitializeParseContext.cpp"
    },
    {
      "type": "modify",
      "old_id": "354bfe13aab6f57f0f6cd90b13ab3a06279400f5",
      "old_mode": 33188,
      "old_path": "src/Radiance/compiler/InitializeParseContext.h",
      "new_id": "4729d3c2ec05edf10a9c7ddc00649344125acbd0",
      "new_mode": 33188,
      "new_path": "src/Radiance/compiler/InitializeParseContext.h"
    },
    {
      "type": "modify",
      "old_id": "9cdbeaaa23b4e08691ed32413aba5e09b143e245",
      "old_mode": 33188,
      "old_path": "src/Radiance/compiler/PoolAlloc.cpp",
      "new_id": "6ec3c40b522bd57270e29dca9055ba59d0f8ef75",
      "new_mode": 33188,
      "new_path": "src/Radiance/compiler/PoolAlloc.cpp"
    },
    {
      "type": "modify",
      "old_id": "c33dfd99be59acbf412a6da42ff5928a76de0193",
      "old_mode": 33188,
      "old_path": "src/Radiance/compiler/PoolAlloc.h",
      "new_id": "b032c474865a0ce3966c65887e472eed6e9021f3",
      "new_mode": 33188,
      "new_path": "src/Radiance/compiler/PoolAlloc.h"
    },
    {
      "type": "modify",
      "old_id": "368c0683dc51f64d1aba84400237498c8cc68bc4",
      "old_mode": 33188,
      "old_path": "src/Radiance/compiler/ShaderLang.cpp",
      "new_id": "cd4e9ad1777085ca7e929e0ce48ea70ccbc208ec",
      "new_mode": 33188,
      "new_path": "src/Radiance/compiler/ShaderLang.cpp"
    },
    {
      "type": "modify",
      "old_id": "6d4355d8aced77871e9b3fccfa7dcc1c1656bda3",
      "old_mode": 33188,
      "old_path": "src/Radiance/compiler/SymbolTable.h",
      "new_id": "739b7ad430c98ec46017dfe6f1162d5db5d5dfb8",
      "new_mode": 33188,
      "new_path": "src/Radiance/compiler/SymbolTable.h"
    },
    {
      "type": "modify",
      "old_id": "ff280d6bc58bcdf4c24102c9ff7f571490b1d739",
      "old_mode": 33188,
      "old_path": "src/Radiance/compiler/Types.h",
      "new_id": "8b6f07c466e3cb499fd79edbf8b4cb205568205d",
      "new_mode": 33188,
      "new_path": "src/Radiance/compiler/Types.h"
    },
    {
      "type": "modify",
      "old_id": "5838d0f5fd720ffd18d2ae6314e416bbd9433ec9",
      "old_mode": 33188,
      "old_path": "src/Radiance/compiler/ValidateLimitations.cpp",
      "new_id": "9219cd1bb1e7464afd528a3f2d309fde0b5e27c0",
      "new_mode": 33188,
      "new_path": "src/Radiance/compiler/ValidateLimitations.cpp"
    },
    {
      "type": "modify",
      "old_id": "fe7c36362d24a2f79ea12ca9ac336803e36700f2",
      "old_mode": 33188,
      "old_path": "src/Radiance/compiler/intermediate.h",
      "new_id": "18b889f69b611a423ef89bb6ec8a5d06fb080349",
      "new_mode": 33188,
      "new_path": "src/Radiance/compiler/intermediate.h"
    },
    {
      "type": "modify",
      "old_id": "253548d427fd6c574710ee167fd45d1b8c481729",
      "old_mode": 33188,
      "old_path": "src/Radiance/compiler/localintermediate.h",
      "new_id": "805744f9b9b7621a38e8a85ae3b15df372702494",
      "new_mode": 33188,
      "new_path": "src/Radiance/compiler/localintermediate.h"
    },
    {
      "type": "modify",
      "old_id": "e8d2925337c9d558bda272aefab4b6fa060e6c9a",
      "old_mode": 33188,
      "old_path": "src/Radiance/libRAD/Shader.cpp",
      "new_id": "8908dc601c5335629d0b55e73c6a52490ee6a5a4",
      "new_mode": 33188,
      "new_path": "src/Radiance/libRAD/Shader.cpp"
    },
    {
      "type": "modify",
      "old_id": "4eb93127d3e8ea257917040e0b3a5933f9f7caee",
      "old_mode": 33188,
      "old_path": "src/Radiance/libRAD/Shader.h",
      "new_id": "409cbd7cdd2eb0ff2abef76fa5474b5e32eae3e6",
      "new_mode": 33188,
      "new_path": "src/Radiance/libRAD/Shader.h"
    }
  ]
}
