On Friday, 1 July 2022 at 13:01:30 UTC, Chris Katko wrote:
Forgot the last line. That's important because world MUST exist by time elf is called... because world... created and called elf.

So it's not a memory issue, but some sort of linkage issue.

world is null because the constructor didn't complete. The segfault happens inside its constructor.

And that also looks like the source of your original segfault. You've got a circular reference going on in the constructors. In other words, you're constructing a global world instance, which in turn constructs an elf instance, which in turn accesses the global world reference whose constructor hasn't yet completed, so the global world reference is still null.

If the objects world is constructing absolutely need to access it, then you could:

1. Initialize world with a do-nothing destructor, then call a `setup` method on it to do what its constructor currently is doing; 2. Pass `this` along to all the constructors that need it from inside the world constructor.

Reply via email to