view dmd/backend/LIST.d @ 165:25ede4f66bda

Temporarily disabled GC (again) because phobos fails to compile with it (looks like some ObjSymbols are being falsely collected, see Library.d:666) Getting rid of global state (i.e global and static variables) to allow running concurrent compilation
author korDen
date Thu, 30 Sep 2010 10:04:32 +0400
parents e28b18c23469
children e3afd1303184
line wrap: on
line source

module dmd.backend.LIST;

import dmd.common;
import dmd.backend.Symbol;

struct LIST
{
	/* Do not access items in this struct directly, use the		*/
	/* functions designed for that purpose.				*/
	LIST* next;	/* next element in list			*/
	int count;		/* when 0, element may be deleted	*/

	union
	{
		void *ptr;	/* data pointer				*/
		int data;
	}
}

alias LIST* list_t;			/* pointer to a list entry		*/
alias list_t symlist_t;		/* pointer to a list entry		*/

extern (C++) extern {
	extern(C) extern __gshared list_t slist;
	list_t list_prepend(list_t* plist, void* ptr);
	void slist_add(Symbol* s);
}