Sybren A. Stüvel f7a033e547 Fix: AssetShelfSettings memory management issues (assignment & destructor)
Rewrite `AssetShelfSettings::operator=` and fix `~AssetShelfSettings()`
to address some memory management issues:

- `memcpy` was used to copy a C++ struct, which shouldn't be done: it
  can cause undefined behaviour if the class has vtables or internal
  padding. This isn't the case here, but GCC nonetheless warns for it.
- `active_catalog_path` was incorrectly freed via `MEM_delete()`; it was
  allocated with `BLI_strdup()`, which uses `MEM_malloc_arrayN()` and
  thus should be freed with `MEM_freeN()`.
- Self-assignments weren't handled properly, and could cause data loss.

These are now all fixed.

Pull Request: https://projects.blender.org/blender/blender/pulls/143701
2025-08-05 11:03:31 +02:00
2025-08-05 09:01:56 +02:00
2025-08-05 09:01:56 +02:00
2025-08-05 11:02:21 +02:00
2023-12-08 13:28:13 +11:00
2025-07-10 12:48:33 +10:00

Blender

Blender is the free and open source 3D creation suite. It supports the entirety of the 3D pipeline—modeling, rigging, animation, simulation, rendering, compositing, motion tracking and video editing.

Blender screenshot

Project Pages

Development

License

Blender as a whole is licensed under the GNU General Public License, Version 3. Individual files may have a different but compatible license.

See blender.org/about/license for details.

Description
No description provided
Readme 841 MiB
Languages
C++ 78%
Python 14.9%
C 2.9%
GLSL 1.9%
CMake 1.2%
Other 0.9%