In StringHash.h line 89 StringHash::hash(const String& key) { return key.impl()->hash(); } so it assumes String::impl() never returns NULL. However, I encountered a case where String::impl() is NULL, thus, crash. So what's wrong here?