]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Java/Source/GenBuild/org/tianocore/build/autogen/AutogenLibOrder.java
Restored the SetVirtualAddress and SetExitBootService related code generation for...
[mirror_edk2.git] / Tools / Java / Source / GenBuild / org / tianocore / build / autogen / AutogenLibOrder.java
index 042f0447ef9552ec55c77e45c0330925fe4e470f..a131b89cc8c4129e763a2b6b3b62c7b94c5b65e5 100644 (file)
@@ -90,7 +90,7 @@ public class AutogenLibOrder {
             //\r
             // Create library class consume database.\r
             //\r
-            libClassConsmList = saq.getLibraryClasses(CommonDefinition.ALWAYSCONSUMED, arch);\r
+            libClassConsmList = saq.getLibraryClasses(CommonDefinition.ALWAYSCONSUMED, arch, null);\r
             if (libClassConsmList != null) {\r
                 if (this.libInstanceConsumes.containsKey(libInstance)) {\r
                     throw new AutoGenException(\r
@@ -104,7 +104,7 @@ public class AutogenLibOrder {
             //\r
             // Create library class implementer database\r
             //\r
-            libClassDeclList = saq.getLibraryClasses(CommonDefinition.ALWAYSPRODUCED, arch);\r
+            libClassDeclList = saq.getLibraryClasses(CommonDefinition.ALWAYSPRODUCED, arch, null);\r
             if (libClassDeclList != null) {\r
                 this.libInstanceProduces.put(libInstance, libClassDeclList);\r
                 for (int j = 0; j < libClassDeclList.length; j++) {\r
@@ -158,7 +158,11 @@ public class AutogenLibOrder {
         // First, add the library instance without consumers to the Q\r
         //\r
         for (int i = 0; i < libInstanceList.length; ++i) {\r
-            if (libInstanceConsumedBy.get(libInstanceList[i]).size() == 0) {\r
+            if (libInstanceList[i] == null) {\r
+                continue;\r
+            }\r
+            \r
+            if (libInstanceConsumedBy.get(libInstanceList[i]) == null ||  libInstanceConsumedBy.get(libInstanceList[i]).size() == 0) {\r
                 noConsumerList.add(libInstanceList[i]);\r
             }\r
         }\r
@@ -174,7 +178,7 @@ public class AutogenLibOrder {
                     continue;\r
                 }\r
                 HashSet<ModuleIdentification> consumedBy = libInstanceConsumedBy.get(m);\r
-                if (consumedBy.size() == 0) {\r
+                if (consumedBy == null || consumedBy.size() == 0) {\r
                   continue;\r
                 }\r
 \r
@@ -194,7 +198,7 @@ public class AutogenLibOrder {
                     }\r
 \r
                     HashSet<ModuleIdentification> consumedBy = libInstanceConsumedBy.get(libInstance);\r
-                    if (consumedBy.size() == 0) {\r
+                    if (consumedBy == null || consumedBy.size() == 0) {\r
                         continue;\r
                     }\r
 \r
@@ -231,27 +235,26 @@ public class AutogenLibOrder {
         //\r
         // Append the remaining library instance to the end of sorted list\r
         //\r
-       boolean HasError = false;\r
+        boolean HasError = false;\r
         for (int i = 0; i < libInstanceList.length; ++i) {\r
-           HashSet<ModuleIdentification> consumedBy = libInstanceConsumedBy.get(libInstanceList[i]);\r
-            if (consumedBy.size() > 0 && libInstanceList[i].hasConstructor()) {\r
+            HashSet<ModuleIdentification> consumedBy = libInstanceConsumedBy.get(libInstanceList[i]);\r
+            if (consumedBy != null && consumedBy.size() > 0 && libInstanceList[i].hasConstructor()) {\r
                 EdkLog.log(EdkLog.EDK_ERROR, libInstanceList[i].getName()\r
                            + " with constructor has a circular dependency!");\r
-               ModuleIdentification[] consumedByList = consumedBy.toArray(new ModuleIdentification[consumedBy.size()]);\r
-               for (int j = 0; j < consumedByList.length; ++j) {\r
-                   EdkLog.log(EdkLog.EDK_ERROR,\r
-                              " consumed by " + consumedByList[j].getName());\r
-               }\r
-               HasError = true;\r
+                ModuleIdentification[] consumedByList = consumedBy.toArray(new ModuleIdentification[consumedBy.size()]);\r
+                for (int j = 0; j < consumedByList.length; ++j) {\r
+                    EdkLog.log(EdkLog.EDK_ERROR, " consumed by " + consumedByList[j].getName());\r
+                }\r
+                HasError = true;\r
             }\r
 \r
             if (!orderList.contains(libInstanceList[i])) {\r
                 orderList.add(libInstanceList[i]);\r
             }\r
         }\r
-       if (HasError) {\r
-           throw new AutoGenException("Circular dependency in library instances is found!");\r
-       }\r
+        if (HasError) {\r
+            throw new AutoGenException("Circular dependency in library instances is found!");\r
+        }\r
 \r
         return orderList;\r
     }\r