When objectsFolderStructure contains a reference to an object name that doesn't exist in the container, the C++ deserialization creates entries with null object pointers. These ghost entries cause UseAfterFreeError crashes in the Scene Objects tree view, and in the InstructionEditor object selector. Root cause fix: skip entries with null object pointers during deserialization in ObjectFolderOrObject::UnserializeFrom. Defensive JS fixes: - Filter out dead/missing object children in both ObjectFolderTreeViewItem getChildren() implementations (ObjectsList and InstructionEditor) - Add _getAliveObject() null guards to ObjectTreeViewItemContent in TreeViewItems.js, matching the safe pattern already used in ObjectsList/ObjectTreeViewItemContent.js https://claude.ai/code/session_016nhCygyUS5fKU3NJhH3cfV
GDevelop Core (library to create, manipulate and export games)
This is the core library used to handle games, build platforms, extensions and tools for GDevelop. The editor is based on classes and tools offered by this library.
GDevelop Core is a portable C++ library, compiled to be used in JavaScript in the editor.
1) Getting started 🤓
First, take a look at the README.md at the root of the repository and the developer documentation.
2) How to contribute 😎
Any contribution is welcome! Whether you want to submit a bug report, a feature request or any pull request so as to add a nice feature, do not hesitate to get in touch.
-
Follow the Development section of the README to set up GDevelop and start modifying either the editor or the game engine/extensions.
-
To submit your changes, you have first to create a Fork on GitHub (use the Fork button on the top right), then create a Pull Request.
License
GDevelop Core is distributed under the MIT license: see LICENSE.md for more information.