//\r
// Create library class consume database.\r
//\r
- libClassConsmList = saq.getLibraryClasses(CommonDefinition.ALWAYSCONSUMED, arch);\r
- if (libClassConsmList != null) {\r
+ libClassConsmList = saq.getLibraryClasses(CommonDefinition.ALWAYSCONSUMED, arch, null);\r
+ if (libClassConsmList.length > 0) {\r
if (this.libInstanceConsumes.containsKey(libInstance)) {\r
throw new AutoGenException(\r
libraryList[i].getName()\r
//\r
// Create library class implementer database\r
//\r
- libClassDeclList = saq.getLibraryClasses(CommonDefinition.ALWAYSPRODUCED, arch);\r
- if (libClassDeclList != null) {\r
+ libClassDeclList = saq.getLibraryClasses(CommonDefinition.ALWAYSPRODUCED, arch, null);\r
+ if (libClassDeclList.length > 0) {\r
this.libInstanceProduces.put(libInstance, libClassDeclList);\r
for (int j = 0; j < libClassDeclList.length; j++) {\r
if (this.libClassProducer.containsKey(libClassDeclList[j])) {\r
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
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
//\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
+ HashSet<ModuleIdentification> consumedBy = libInstanceConsumedBy.get(libInstanceList[i]);\r
if (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