I suppose it's more accurate then to say that "self" isn't checked for null since it's being treated like any other function parameter?Graf Zahl wrote:Actually, ZScript guards every single pointer dereference, but when you call a function things are a bit different: The pointer is never dereferenced unless you call a virtual function - it's just being passed as a hidden function parameter, which prevents checking in the call instruction because it isn't part of that - the exception only gets triggered when the pointer actually gets used inside the called function.
I do find it convenient that the way the system appears to work the same as C++ in this case, even if there's some abstraction covering the real bits.