)]}'
{
  "commit": "6e3c4e7365ddcc329f090f96e4348398f6310088",
  "tree": "ff9f0b0ccd69d8127487e3086091abb900b074ef",
  "parents": [
    "5bceb69540612522dda873bd734395b4a43b1d41"
  ],
  "author": {
    "name": "Brad Fitzpatrick",
    "email": "bradfitz@golang.org",
    "time": "Tue Aug 07 15:59:08 2018 +0000"
  },
  "committer": {
    "name": "Marcel van Lohuizen",
    "email": "mpvl@golang.org",
    "time": "Fri Aug 10 15:35:55 2018 +0000"
  },
  "message": "unicode/norm: move sync.Once check out of loop\n\nFollow-up to CL 127926.\n\nThe recompMap map is only used by func combine, which only has one\ncaller. Move the sync.Once.Do call that populates the map out of func\ncombine up to its sole caller.\n\nI wasn\u0027t actually able to measure a difference with this, but\nit seems better to do one-time work outside of a loop.\n\nAnd I verified that combine is still inlined, even with the nil check+panic.\n\n./composition.go:501:24: inlining call to combine\n\nChange-Id: I6929af1de5f068051ef00cf0938b880ff87e1ce4\nReviewed-on: https://go-review.googlesource.com/128575\nRun-TryBot: Brad Fitzpatrick \u003cbradfitz@golang.org\u003e\nTryBot-Result: Gobot Gobot \u003cgobot@golang.org\u003e\nReviewed-by: Kevin Burke \u003ckev@inburke.com\u003e\nReviewed-by: Marcel van Lohuizen \u003cmpvl@golang.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9f37ef0ce9a74066a8d415d2f29664844eb4213d",
      "old_mode": 33188,
      "old_path": "unicode/norm/composition.go",
      "new_id": "e2087bce52771ac4fc906f1afa9d27efecbac975",
      "new_mode": 33188,
      "new_path": "unicode/norm/composition.go"
    },
    {
      "type": "modify",
      "old_id": "f7fbf86d15cfecebef938f3446fe6800d32b075a",
      "old_mode": 33188,
      "old_path": "unicode/norm/forminfo.go",
      "new_id": "526c7033ac464cc1fe840feac6bb84d81917514c",
      "new_mode": 33188,
      "new_path": "unicode/norm/forminfo.go"
    }
  ]
}
