digitalmars.D.bugs - [Issue 12699] New: Possibly wrong code in object_.d
- via Digitalmars-d-bugs (26/26) May 04 2014 https://issues.dlang.org/show_bug.cgi?id=12699
https://issues.dlang.org/show_bug.cgi?id=12699 Issue ID: 12699 Summary: Possibly wrong code in object_.d Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: normal Priority: P1 Component: druntime Assignee: nobody puremagic.com Reporter: andrej.mitrovich gmail.com TypeInfo_AssociativeArray is a TypeInfo class and its 'getHash' method is implemented as: override hash_t getHash(in void* p) nothrow trusted const { return _aaGetHash(cast(void*)p, this); } But _aaGetHash expects an 'AA* aa' as the first parameter, not a TypeInfo. As a result _aaGetHash will sometimes crash while attempting to access 'aa.impl.buckets', since at that offset it's accessing whatever happens to lay at that address in a TypeInfo class. This change was introduced in commit 87e5f64. Unless I'm misunderstanding something I don't think the above is right. --
May 04 2014