[DGD] Scope call syntax
Blain
blain20 at gmail.com
Mon Feb 13 22:10:30 CET 2017
I have this bad habit of letting up on the SHIFT key while typing "::" and
doing "mylib:;func()". A few times, it's actually caused (or seemed to
cause) a segfault.
So, I made a bare instance with klib only and had System/initd load an
object which inherited a lib using the typo, and, not only did it not bug
out or error at all, it ignored the "mylib:;" part.
Syntactically-speaking, what does DGD see "mylib:;" as? I'm sure the
reason for the segfault was mylib:;create() recursively calling the local
create(), so that's not my question. I'm curous why mylib: is being seen
as kosher LPC. As an aside, could the recursive segfault be fixed to just
abort and error out, possibly? I'm finding a lot of ways where a wayward
user could crash DGD maliciously.
Example code:
[System/lib/lib.c]
void func() { DRIVER->message("func called\n"); }
[System/obj/obj.c]
inherit mylib "~System/lib/lib";
void create() { mylib:;func(); }
More information about the DGD
mailing list