)]}'
{
  "commit": "1eb7ac67d308d1cdf62a0e775ac593a4c74c8132",
  "tree": "a1d7ddbe9a67b9f620f47dc613c034fe18d09d26",
  "parents": [
    "c1d7d98e89a21530f43b085f1e97e820802466d4"
  ],
  "author": {
    "name": "luigi-rosso",
    "email": "hello@rive.app",
    "time": "Wed Apr 12 18:21:00 2023 +0000"
  },
  "committer": {
    "name": "luigi-rosso",
    "email": "hello@rive.app",
    "time": "Wed Apr 12 18:21:00 2023 +0000"
  },
  "message": "Fix for runtime crash with skins nested in solo nodes.\n\nFixes a crash @HayesGordon caught when using the GameKit. Turns out it\u0027s a bug in the C++ runtime with loading of skins inside of nested solo nodes.\n\nWe used to resolve the parent of a skin in the \"onAddedClean\" cycle as it assumed onDirty would only be called after load. Solos can now call that during the \"onAddedClean\" cycle. We can do the same logic \"onAddedDirty\" and then the onDirty calls will only happen after we\u0027ve ascertained we have a valid skinnable parent, so the assumptions still hold.\n\nDiffs\u003d\n9266e0d30 Fix for runtime crash with skins nested in solo nodes. (#5109)\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2744b5e8d0689d3592210343c68e146eaa9306d4",
      "old_mode": 33188,
      "old_path": ".rive_head",
      "new_id": "6ae37bf0d837fa2a9370650f01a5ca6738f27f7d",
      "new_mode": 33188,
      "new_path": ".rive_head"
    },
    {
      "type": "modify",
      "old_id": "ba7042024482ba22fa2d55fcc6394e80a75f8a3b",
      "old_mode": 33188,
      "old_path": "include/rive/bones/skin.hpp",
      "new_id": "862b60effb8e9efcc059d0be66dbc82024f725f2",
      "new_mode": 33188,
      "new_path": "include/rive/bones/skin.hpp"
    },
    {
      "type": "modify",
      "old_id": "4a67abc6dc226d481217c21e5c97dbf2bc13295f",
      "old_mode": 33188,
      "old_path": "src/bones/skin.cpp",
      "new_id": "33a27c689db7fefd786f1f589f5d3d8335b005fc",
      "new_mode": 33188,
      "new_path": "src/bones/skin.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "153254d13acf19305b6ed340bfeb0d466ccfc894",
      "new_mode": 33188,
      "new_path": "test/assets/death_knight.riv"
    },
    {
      "type": "modify",
      "old_id": "9483e1bdf64e116845dfeefcde0db4b38860dfd5",
      "old_mode": 33188,
      "old_path": "test/solo_test.cpp",
      "new_id": "8757162e512e26a97268418c534674fcc42587ed",
      "new_mode": 33188,
      "new_path": "test/solo_test.cpp"
    }
  ]
}
