How to be more careful about null pointers?
cy via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Mon Mar 28 14:01:19 PDT 2016
I finally found the null pointer. It took a week. I was assigning
"db = db" when I should have been assigning "this.db = db".
Terrible, I know. But...
I invoked db.find_chapter.bindAll(8,4), when db was a null
pointer. There was no null pointer error. No exception raised for
dereferencing a null. I'm not in release mode. Assertions are
enabled. Shouldn't that have raised a null pointer exception?
Instead, it accesses db as if db were not null, producing a
garbage structure in find_chapter, which bindAll chokes on, then
causes the whole program to segfault.
I realize enforce(db).find_chapter would work, but... I thought D
was more careful about null pointers? At least enough to die on
dereferencing them?
More information about the Digitalmars-d-learn
mailing list