diff dmd/Module.d @ 169:e7769d53e750

Moves static variables from Module to Global
author korDen
date Thu, 30 Sep 2010 13:29:54 +0400
parents 010eb8f0e18d
children 96c0fff6897d
line wrap: on
line diff
--- a/dmd/Module.d	Thu Sep 30 12:57:13 2010 +0400
+++ b/dmd/Module.d	Thu Sep 30 13:29:54 2010 +0400
@@ -164,22 +164,6 @@
 
 class Module : Package
 {
-    static Module rootModule;
-    static DsymbolTable modules;	// symbol table of all modules
-    static Array amodules;		// array of all modules
-    static Array deferred;	// deferred Dsymbol's needing semantic() run on them
-    static uint dprogress;	// progress resolving the deferred list
-
-    static void init()
-	{
-		modules = new DsymbolTable();
-		amodules = new Array();
-		deferred = new Array();
-	}
-
-    static ClassDeclaration moduleinfo;
-
-
     string arg;	// original argument name
     ModuleDeclaration md; // if !null, the contents of the ModuleDeclaration declaration
     File srcfile;	// input source file
@@ -687,7 +671,7 @@
 		}
 		else
 		{
-			dst = modules;
+			dst = global.modules;
 
 			/* Check to see if module name is a valid identifier
 			 */
@@ -705,7 +689,7 @@
 			}
 			else
 			{
-				amodules.push(cast(void*)this);
+				global.amodules.push(cast(void*)this);
 			}
 		}
 	}
@@ -823,6 +807,7 @@
 	
     void semantic2()	// pass 2 semantic analysis
 	{
+		auto deferred = global.deferred;
 		if (deferred.dim)
 		{
 			for (int i = 0; i < deferred.dim; i++)
@@ -1282,6 +1267,7 @@
 	 */
 	void addDeferredSemantic(Dsymbol s)
 	{
+		auto deferred = global.deferred;
 	    // Don't add it if it is already there
 	    for (int i = 0; i < deferred.dim; i++)
 	    {
@@ -1309,9 +1295,11 @@
 		//if (deferred.dim) printf("+Module.runDeferredSemantic('%s'), len = %d\n", toChars(), deferred.dim);
 		nested++;
 
+		auto deferred = global.deferred;
+		
 		do
 		{
-			dprogress = 0;
+			global.dprogress = 0;
 			len = deferred.dim;
 			if (!len)
 				break;
@@ -1341,7 +1329,7 @@
 				//printf("deferred: %s, parent = %s\n", s.toChars(), s.parent.toChars());
 			}
 			//printf("\tdeferred.dim = %d, len = %d, dprogress = %d\n", deferred.dim, len, dprogress);
-		} while (deferred.dim < len || dprogress);	// while making progress
+		} while (deferred.dim < len || global.dprogress);	// while making progress
 		nested--;
 		//printf("-Module.runDeferredSemantic('%s'), len = %d\n", toChars(), deferred.dim);
 	}
@@ -1566,8 +1554,8 @@
 		 */
 		dt_t* dt = null;
 
-		if (moduleinfo)
-			dtxoff(&dt, moduleinfo.toVtblSymbol(), 0, TYM.TYnptr); // vtbl for ModuleInfo
+		if (global.moduleinfo)
+			dtxoff(&dt, global.moduleinfo.toVtblSymbol(), 0, TYM.TYnptr); // vtbl for ModuleInfo
 		else
 		{	
 			//printf("moduleinfo is null\n");