]> 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 ca415daf9094fb2a48222cd5a4101942a35c070e..a131b89cc8c4129e763a2b6b3b62c7b94c5b65e5 100644 (file)
@@ -91,7 +91,7 @@ public class AutogenLibOrder {
             // Create library class consume database.\r
             //\r
             libClassConsmList = saq.getLibraryClasses(CommonDefinition.ALWAYSCONSUMED, arch, null);\r
-            if (libClassConsmList.length > 0) {\r
+            if (libClassConsmList != null) {\r
                 if (this.libInstanceConsumes.containsKey(libInstance)) {\r
                     throw new AutoGenException(\r
                             libraryList[i].getName()\r
@@ -105,7 +105,7 @@ public class AutogenLibOrder {
             // Create library class implementer database\r
             //\r
             libClassDeclList = saq.getLibraryClasses(CommonDefinition.ALWAYSPRODUCED, arch, null);\r
-            if (libClassDeclList.length > 0) {\r
+            if (libClassDeclList != null) {\r
                 this.libInstanceProduces.put(libInstance, libClassDeclList);\r
                 for (int j = 0; j < libClassDeclList.length; j++) {\r
                     if (this.libClassProducer.containsKey(libClassDeclList[j])) {\r
@@ -132,9 +132,6 @@ public class AutogenLibOrder {
             for (int k = 0; k < libraryList.length; ++k) {\r
                 ModuleIdentification consumer = libraryList[k];\r
                 String[] consumedClassList = libInstanceConsumes.get(consumer);\r
-                if (consumedClassList == null) {\r
-                    continue;\r
-                }\r
 \r
                 for (int l = 0; l < consumedClassList.length; ++l) {\r
                     if (consumedClassList[l].equals(className)) {\r
@@ -161,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
@@ -171,16 +172,13 @@ public class AutogenLibOrder {
             orderList.addFirst(n);\r
 \r
             String[] consumedClassList = libInstanceConsumes.get(n);\r
-            if (consumedClassList == null) {\r
-                continue;\r
-            }\r
             for (int i = 0; i < consumedClassList.length; ++i) {\r
                 ModuleIdentification m = libClassProducer.get(consumedClassList[i]);\r
                 if (m == null) {\r
                     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
@@ -200,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
@@ -240,7 +238,7 @@ public class AutogenLibOrder {
         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
+            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