)]}'
{
  "commit": "c50d78f30d7ab92076738a453ab71bbf88ba188a",
  "tree": "c12fea147354ea44a50f0d2f81b495860e91fb1c",
  "parents": [
    "3bb8a1ba66c1a1c4ae6e501f4529a88dd23076ed"
  ],
  "author": {
    "name": "David Chisnall",
    "email": "github@theravensnest.org",
    "time": "Fri May 24 14:27:14 2024 +0100"
  },
  "committer": {
    "name": "David Chisnall",
    "email": "davidchisnall@users.noreply.github.com",
    "time": "Fri May 24 14:50:24 2024 +0100"
  },
  "message": "Fix epoch calculation in the allocator.\n\nThe allocator tracks complete (even) and partial (odd) epochs and puts\nthings in a free list depending on the complete epoch that will allow\nthem to be popped.  When we poll the revoker, this means that the\ncurrent epoch may be a partial epoch one *before* the current epoch.\n\nUnfortunately, we were doing this check with unsigned arithmetic and so\nit was possible to remove things from quarantine too early.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5d25b9768dddf83fba9179e4c4f6fc13424531dc",
      "old_mode": 33188,
      "old_path": "sdk/core/allocator/revoker.h",
      "new_id": "e484b4f8e62562967a8cfb773238f0348a370929",
      "new_mode": 33188,
      "new_path": "sdk/core/allocator/revoker.h"
    },
    {
      "type": "modify",
      "old_id": "f088f0a64a52952bdad92105474d9322c85718f2",
      "old_mode": 33188,
      "old_path": "sdk/include/platform/ibex/platform-hardware_revoker.hh",
      "new_id": "c039cce81d2c8d9ca192eaf17b90ed5a33e24580",
      "new_mode": 33188,
      "new_path": "sdk/include/platform/ibex/platform-hardware_revoker.hh"
    }
  ]
}
