view lphobos/typeinfo1/ti_byte.d @ 811:8e6135be6999

Fixed ModuleInfo generation to no longer use the ModuleInfo class' default initializer for types/defaults, it's unsafe as initializers don't necesarily match the "formal" type. There might be explicit padding. Changed -g switch to emit DW_LANG_D debug info, make demangling work with a patched GDB, still more work to do for full support of D's Dwarf extensions. Added getNullValue helper method.
author Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
date Mon, 01 Dec 2008 02:10:16 +0100
parents 2c3cd3596187
children
line wrap: on
line source


// byte

module typeinfo1.ti_byte;

class TypeInfo_g : TypeInfo
{
    char[] toString() { return "byte"; }

    hash_t getHash(void *p)
    {
	return *cast(byte *)p;
    }

    int equals(void *p1, void *p2)
    {
	return *cast(byte *)p1 == *cast(byte *)p2;
    }

    int compare(void *p1, void *p2)
    {
	return *cast(byte *)p1 - *cast(byte *)p2;
    }

    size_t tsize()
    {
	return byte.sizeof;
    }

    void swap(void *p1, void *p2)
    {
	byte t;

	t = *cast(byte *)p1;
	*cast(byte *)p1 = *cast(byte *)p2;
	*cast(byte *)p2 = t;
    }
}