)]}'
{
  "commit": "04de4710ca984060cd88d2963b8024c60012131d",
  "tree": "f54eb83b6c4d7143e7c3d91afa7518e5e568756b",
  "parents": [
    "84d4f7707bafaae54b4ff20abc56c4a82c8d542d"
  ],
  "author": {
    "name": "mjtalbot",
    "email": "hello@rive.app",
    "time": "Thu Oct 26 07:56:22 2023 +0000"
  },
  "committer": {
    "name": "mjtalbot",
    "email": "hello@rive.app",
    "time": "Thu Oct 26 07:56:22 2023 +0000"
  },
  "message": "Outofbandcache\n\nOk, got this passing testes, which I guess is a step in the right direction.\n\nBefore changing unique pointers to rcp, we could only use an image once, as soon as we assigned a new image, the old image would get garbage collected. (this is the actual problem we are trying to solve)\n\nThis \"solves\" the problem and  allows us to add images to a cache in wasm, and then cycle through the cache, swapping out the render image to be displayed for a given fileAsset. We can replace images \u0026 fonts on the fly this way.\n\nProblems:\n1. overwriting ref \u0026 unref in RenderImage, shows that is being reffed and un-reffed constantly (when viewing the attached file with the viewer). Is that expected? doing something similar for Font does not show up the same. I suspect this is related to how we use images when it comes to rendering, just figured i\u0027d check\n2. We dont seem to \"leak\" anything as detectable by our tests, which is good, but our wasm examples show that neither our fonts nor our render images get collected. presumably thats because we would need to manually tell wasm via js that we want to let go of an image?\n\nAlso @csmartdalton @umberto-sonnino \u0026 @luigi-rosso  it would be great to see what else is concerning.\n\nexample file\n\n[just_a_box_with_a_tree.riv.zip](https://github.com/rive-app/rive/files/13042414/just_a_box_with_a_tree.riv.zip)\n\nDiffs\u003d\n1506b069c Outofbandcache (#6049)\n\nCo-authored-by: Maxwell Talbot \u003ctalbot.maxwell@gmail.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "944467e069a1c2699fcf73d1d3fbf467248a7bfc",
      "old_mode": 33188,
      "old_path": ".rive_head",
      "new_id": "a791ccf8e5a0a9ff6d6c3d81b2fd7c8fa10ab602",
      "new_mode": 33188,
      "new_path": ".rive_head"
    },
    {
      "type": "modify",
      "old_id": "f9e21bdeaf53f05e66e7175ed99be35d9689a86b",
      "old_mode": 33188,
      "old_path": "cg_renderer/include/cg_factory.hpp",
      "new_id": "ec4c34d2015713fefc7d7c34fcb83cff87f59b48",
      "new_mode": 33188,
      "new_path": "cg_renderer/include/cg_factory.hpp"
    },
    {
      "type": "modify",
      "old_id": "81e4e2f29464ad99ca30bef206c114818171f570",
      "old_mode": 33188,
      "old_path": "cg_renderer/src/cg_factory.cpp",
      "new_id": "fc22574303f0d1881fa9fb95bcffb6cdb27d52bd",
      "new_mode": 33188,
      "new_path": "cg_renderer/src/cg_factory.cpp"
    },
    {
      "type": "modify",
      "old_id": "4791b948973be25f340f34a74f3f7b08eb057f3f",
      "old_mode": 33188,
      "old_path": "include/rive/assets/image_asset.hpp",
      "new_id": "93243fe21e3beb333159fc225ec2ba1760d3af55",
      "new_mode": 33188,
      "new_path": "include/rive/assets/image_asset.hpp"
    },
    {
      "type": "modify",
      "old_id": "b5ac3be4608f2e8a38eb53a2d70185eb18604133",
      "old_mode": 33188,
      "old_path": "include/rive/factory.hpp",
      "new_id": "7cf4649a67221ef29ca2281f9c04b808c53265f8",
      "new_mode": 33188,
      "new_path": "include/rive/factory.hpp"
    },
    {
      "type": "modify",
      "old_id": "194bcc7130db0fd716357e531476d7de5d77ddc4",
      "old_mode": 33188,
      "old_path": "include/rive/refcnt.hpp",
      "new_id": "ed2b31bd6c73b8c3dd09b4b06d8468111b511179",
      "new_mode": 33188,
      "new_path": "include/rive/refcnt.hpp"
    },
    {
      "type": "modify",
      "old_id": "7ca07dcac488b5e53dfa99a77ad10509b1572fbe",
      "old_mode": 33188,
      "old_path": "include/rive/renderer.hpp",
      "new_id": "e59543523b612a5664d55084967d35bf1e26a89b",
      "new_mode": 33188,
      "new_path": "include/rive/renderer.hpp"
    },
    {
      "type": "modify",
      "old_id": "1adcb3dae448ac3fb4cedc41c519cb8c7d6dc3f9",
      "old_mode": 33188,
      "old_path": "include/utils/no_op_factory.hpp",
      "new_id": "cb5f220148d638df9e498f8879dd2152acf285c2",
      "new_mode": 33188,
      "new_path": "include/utils/no_op_factory.hpp"
    },
    {
      "type": "modify",
      "old_id": "c4e2deeb8c56b641c0ea77a42e93e06e9371e002",
      "old_mode": 33188,
      "old_path": "skia/renderer/include/skia_factory.hpp",
      "new_id": "f8c9537c1bb0b49327ec44141812e8b3f3674037",
      "new_mode": 33188,
      "new_path": "skia/renderer/include/skia_factory.hpp"
    },
    {
      "type": "modify",
      "old_id": "96e70b518f3b2c369bfdf249e85b15652a61ddef",
      "old_mode": 33188,
      "old_path": "skia/renderer/src/skia_factory.cpp",
      "new_id": "d3ac0d3ea9eb5d2ec228d4339815f93762fbf1f7",
      "new_mode": 33188,
      "new_path": "skia/renderer/src/skia_factory.cpp"
    },
    {
      "type": "modify",
      "old_id": "f40f32d0267ed7cbb0719d321eba11e40af06746",
      "old_mode": 33188,
      "old_path": "src/assets/font_asset.cpp",
      "new_id": "d87101ddc400cbdcf73363834a0a71ae82fe0950",
      "new_mode": 33188,
      "new_path": "src/assets/font_asset.cpp"
    },
    {
      "type": "modify",
      "old_id": "a5130608107bb5204392a81ca7dc2a03c4000b18",
      "old_mode": 33188,
      "old_path": "src/assets/image_asset.cpp",
      "new_id": "37f2ad2c7b24553b61ed72c03fcfe2cf551b0cfb",
      "new_mode": 33188,
      "new_path": "src/assets/image_asset.cpp"
    },
    {
      "type": "modify",
      "old_id": "6f40b3656136ec4b00b2c212f01ecad4290c57f3",
      "old_mode": 33188,
      "old_path": "src/shapes/image.cpp",
      "new_id": "df51c66a81fe59c65039154f5cf01f9f58c19bc3",
      "new_mode": 33188,
      "new_path": "src/shapes/image.cpp"
    },
    {
      "type": "modify",
      "old_id": "d4739a3f441b002f4340e970cc1abc4395325ef5",
      "old_mode": 33188,
      "old_path": "utils/no_op_factory.cpp",
      "new_id": "16d20c5941485ef6378646c112bbdfffaedd337f",
      "new_mode": 33188,
      "new_path": "utils/no_op_factory.cpp"
    },
    {
      "type": "modify",
      "old_id": "e48517a8a610f5c4de0e64225fbbb4abcde2c1e5",
      "old_mode": 33188,
      "old_path": "viewer/include/viewer/tess/viewer_sokol_factory.hpp",
      "new_id": "59421a414e5624f33af5929158762f1000577a49",
      "new_mode": 33188,
      "new_path": "viewer/include/viewer/tess/viewer_sokol_factory.hpp"
    },
    {
      "type": "modify",
      "old_id": "9f74cbee4f453a94022e13803142c5d8fa8ae17c",
      "old_mode": 33188,
      "old_path": "viewer/src/sample_tools/sample_atlas_packer.cpp",
      "new_id": "9b5d70795a6d3f4ea01bb53296897e4d2899b049",
      "new_mode": 33188,
      "new_path": "viewer/src/sample_tools/sample_atlas_packer.cpp"
    },
    {
      "type": "modify",
      "old_id": "90a8feb66f1c479317ab9fb6acad87b38cb831d7",
      "old_mode": 33188,
      "old_path": "viewer/src/tess/viewer_sokol_factory.cpp",
      "new_id": "c8349bd6f9ac6555205d30a43239bb61a5fecfaa",
      "new_mode": 33188,
      "new_path": "viewer/src/tess/viewer_sokol_factory.cpp"
    },
    {
      "type": "modify",
      "old_id": "6bdb84d846816c6d7331800a4780535eed42b429",
      "old_mode": 33188,
      "old_path": "viewer/src/viewer_content/image_content.cpp",
      "new_id": "edca91733c38734c7ff987eb2f74de31b5d8bedb",
      "new_mode": 33188,
      "new_path": "viewer/src/viewer_content/image_content.cpp"
    }
  ]
}
