X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=Tools%2FJava%2FSource%2FGenBuild%2Forg%2Ftianocore%2Fbuild%2Fautogen%2FAutogenLibOrder.java;h=a131b89cc8c4129e763a2b6b3b62c7b94c5b65e5;hb=18f95092d6bf694adf5ad9e7a1e8036d19ed3c8d;hp=042f0447ef9552ec55c77e45c0330925fe4e470f;hpb=b991a45139b0b5a0b5082b63fa27cf8ef8e6fd1b;p=mirror_edk2.git diff --git a/Tools/Java/Source/GenBuild/org/tianocore/build/autogen/AutogenLibOrder.java b/Tools/Java/Source/GenBuild/org/tianocore/build/autogen/AutogenLibOrder.java index 042f0447ef..a131b89cc8 100644 --- a/Tools/Java/Source/GenBuild/org/tianocore/build/autogen/AutogenLibOrder.java +++ b/Tools/Java/Source/GenBuild/org/tianocore/build/autogen/AutogenLibOrder.java @@ -90,7 +90,7 @@ public class AutogenLibOrder { // // Create library class consume database. // - libClassConsmList = saq.getLibraryClasses(CommonDefinition.ALWAYSCONSUMED, arch); + libClassConsmList = saq.getLibraryClasses(CommonDefinition.ALWAYSCONSUMED, arch, null); if (libClassConsmList != null) { if (this.libInstanceConsumes.containsKey(libInstance)) { throw new AutoGenException( @@ -104,7 +104,7 @@ public class AutogenLibOrder { // // Create library class implementer database // - libClassDeclList = saq.getLibraryClasses(CommonDefinition.ALWAYSPRODUCED, arch); + libClassDeclList = saq.getLibraryClasses(CommonDefinition.ALWAYSPRODUCED, arch, null); if (libClassDeclList != null) { this.libInstanceProduces.put(libInstance, libClassDeclList); for (int j = 0; j < libClassDeclList.length; j++) { @@ -158,7 +158,11 @@ public class AutogenLibOrder { // First, add the library instance without consumers to the Q // for (int i = 0; i < libInstanceList.length; ++i) { - if (libInstanceConsumedBy.get(libInstanceList[i]).size() == 0) { + if (libInstanceList[i] == null) { + continue; + } + + if (libInstanceConsumedBy.get(libInstanceList[i]) == null || libInstanceConsumedBy.get(libInstanceList[i]).size() == 0) { noConsumerList.add(libInstanceList[i]); } } @@ -174,7 +178,7 @@ public class AutogenLibOrder { continue; } HashSet consumedBy = libInstanceConsumedBy.get(m); - if (consumedBy.size() == 0) { + if (consumedBy == null || consumedBy.size() == 0) { continue; } @@ -194,7 +198,7 @@ public class AutogenLibOrder { } HashSet consumedBy = libInstanceConsumedBy.get(libInstance); - if (consumedBy.size() == 0) { + if (consumedBy == null || consumedBy.size() == 0) { continue; } @@ -231,27 +235,26 @@ public class AutogenLibOrder { // // Append the remaining library instance to the end of sorted list // - boolean HasError = false; + boolean HasError = false; for (int i = 0; i < libInstanceList.length; ++i) { - HashSet consumedBy = libInstanceConsumedBy.get(libInstanceList[i]); - if (consumedBy.size() > 0 && libInstanceList[i].hasConstructor()) { + HashSet consumedBy = libInstanceConsumedBy.get(libInstanceList[i]); + if (consumedBy != null && consumedBy.size() > 0 && libInstanceList[i].hasConstructor()) { EdkLog.log(EdkLog.EDK_ERROR, libInstanceList[i].getName() + " with constructor has a circular dependency!"); - ModuleIdentification[] consumedByList = consumedBy.toArray(new ModuleIdentification[consumedBy.size()]); - for (int j = 0; j < consumedByList.length; ++j) { - EdkLog.log(EdkLog.EDK_ERROR, - " consumed by " + consumedByList[j].getName()); - } - HasError = true; + ModuleIdentification[] consumedByList = consumedBy.toArray(new ModuleIdentification[consumedBy.size()]); + for (int j = 0; j < consumedByList.length; ++j) { + EdkLog.log(EdkLog.EDK_ERROR, " consumed by " + consumedByList[j].getName()); + } + HasError = true; } if (!orderList.contains(libInstanceList[i])) { orderList.add(libInstanceList[i]); } } - if (HasError) { - throw new AutoGenException("Circular dependency in library instances is found!"); - } + if (HasError) { + throw new AutoGenException("Circular dependency in library instances is found!"); + } return orderList; }