[Issue 2328] New: setTypeInfo in gc.d backwards.
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Tue Sep 2 11:36:17 PDT 2008
http://d.puremagic.com/issues/show_bug.cgi?id=2328
Summary: setTypeInfo in gc.d backwards.
Product: D
Version: 2.018
Platform: All
OS/Version: All
Status: NEW
Severity: major
Priority: P2
Component: Phobos
AssignedTo: bugzilla at digitalmars.com
ReportedBy: dsimcha at yahoo.com
According to Phobos object docs:
uint flags();
Get flags for type: 1 means GC should scan for pointers
This is implemented correctly.
import std.stdio;
void main() {
writefln(typeid(uint).flags & 1); //0
writefln(typeid(uint*).flags & 1); //1
writefln(typeid(void*).flags & 1); //1
writefln(typeid(float).flags & 1); //0
}
However, source code to setTypeInfo:
void setTypeInfo(TypeInfo ti, void* p)
{
if (ti.flags() & 1)
hasNoPointers(p);
else
hasPointers(p);
}
The if statement in this code is clearly backwards.
--
More information about the Digitalmars-d-bugs
mailing list