Skip to content

Create DreamRefManager#2535

Merged
wixoaGit merged 4 commits intoOpenDreamProject:masterfrom
wixoaGit:reuse_datum_ids
Mar 20, 2026
Merged

Create DreamRefManager#2535
wixoaGit merged 4 commits intoOpenDreamProject:masterfrom
wixoaGit:reuse_datum_ids

Conversation

@wixoaGit
Copy link
Copy Markdown
Member

@wixoaGit wixoaGit commented Mar 20, 2026

Moved all the ref() and locate() helpers to a new DreamRefManager, which holds collections of every DreamObject with its own RefType. This gets rid of a fair amount of code duplication, makes new ref types easier to create, and moves some code to a place that makes more sense.

Fixes #2530, which hopefully fixes the routine Paradise server crashes. This is also an important step in moving towards having our own garbage collector/optimizing DreamValue since every datum would need to get assigned an ID.

@boring-cyborg boring-cyborg bot added Client Involves the OpenDream client Runtime Involves the OpenDream server/runtime labels Mar 20, 2026
Comment thread OpenDreamRuntime/Objects/DreamObject.cs Fixed
Comment thread OpenDreamRuntime/Objects/DreamObject.cs Fixed
Comment thread OpenDreamRuntime/Objects/DreamObject.cs Fixed
Comment thread OpenDreamRuntime/Objects/DreamObject.cs Fixed
Comment thread OpenDreamRuntime/Objects/DreamObject.cs Fixed
Comment thread OpenDreamRuntime/Objects/DreamObject.cs Fixed
Comment thread OpenDreamRuntime/Objects/DreamObject.cs Fixed
Comment thread OpenDreamRuntime/Objects/DreamObject.cs Fixed
Comment thread OpenDreamRuntime/Objects/DreamObjectDefinition.cs Dismissed
Comment thread OpenDreamRuntime/Objects/DreamObjectTree.cs Fixed
@wixoaGit wixoaGit merged commit 3b35443 into OpenDreamProject:master Mar 20, 2026
21 of 22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Client Involves the OpenDream client Runtime Involves the OpenDream server/runtime size/XXL

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ref() needs to reuse /datum IDs

2 participants