]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Source/MigrationTools/org/tianocore/migration/SourceFileReplacer.java
Enhance recognizing Macro/Type defined in Library.
[mirror_edk2.git] / Tools / Source / MigrationTools / org / tianocore / migration / SourceFileReplacer.java
index 678dbcb275d8acf5888052faa735679e4e1b8777..3325f150449fea6fe7ab075ffc003fb9fd9bf040 100644 (file)
@@ -53,7 +53,7 @@ public final class SourceFileReplacer implements Common.ForDoAll {
     \r
     private class IdleLaplace extends Common.Laplace {\r
         public String operation(String wholeline) {\r
-            return wholeline;\r
+            return replaceLibrary (wholeline, mi.hashmacro);\r
         }\r
         \r
         public boolean recognize(String filename) {\r
@@ -105,51 +105,11 @@ public final class SourceFileReplacer implements Common.ForDoAll {
             if (Common.find (wholeline, "\\bgDS\\b")) {\r
                 mi.hashrequiredr9libs.add ("DxeServicesTableLib");\r
             }\r
-            // start replacing names\r
-            String r8thing;\r
-            String r9thing;\r
-            Iterator<String> it;\r
-            // Converting non-locla function\r
-            it = mi.hashnonlocalfunc.iterator();\r
-            while (it.hasNext()) {\r
-                r8thing = it.next();\r
-                mi.hashrequiredr9libs.add(MigrationTool.db.getR9Lib(r8thing));                // add a library here\r
\r
-                r8tor9 temp;\r
-                if ((r9thing = MigrationTool.db.getR9Func(r8thing)) != null) {\r
-                    if (!r8thing.equals(r9thing)) {\r
-                        if (wholeline.contains(r8thing)) {\r
-                            wholeline = wholeline.replaceAll(r8thing, r9thing);\r
-                            filefunc.add(new r8tor9(r8thing, r9thing));\r
-                            Iterator<r8tor9> rt = filefunc.iterator();\r
-                            while (rt.hasNext()) {\r
-                                temp = rt.next();\r
-                                if (MigrationTool.db.r8only.contains(temp.r8thing)) {\r
-                                    filer8only.add(r8thing);\r
-                                    mi.hashr8only.add(r8thing);\r
-                                    addr8 = true;\r
-                                }\r
-                            }\r
-                        }\r
-                    }\r
-                }\r
-            }                                                            //is any of the guids changed?\r
-            if (addr8 == true) {\r
-                wholeline = addincludefile(wholeline, "\"R8Lib.h\"");\r
-            }\r
-            \r
+\r
+            wholeline = replaceLibrary (wholeline, mi.hashnonlocalfunc);\r
+            wholeline = replaceLibrary (wholeline, mi.hashmacro);\r
             // Converting macro\r
-            it = mi.hashnonlocalmacro.iterator();\r
-            while (it.hasNext()) {                        //macros are all assumed MdePkg currently\r
-                r8thing = it.next();\r
-                //mi.hashrequiredr9libs.add(MigrationTool.db.getR9Lib(r8thing));        \r
-                if ((r9thing = MigrationTool.db.getR9Macro(r8thing)) != null) {\r
-                    if (wholeline.contains(r8thing)) {\r
-                        wholeline = wholeline.replaceAll(r8thing, r9thing);\r
-                        filemacro.add(new r8tor9(r8thing, r9thing));\r
-                    }\r
-                }\r
-            }\r
+            wholeline = replaceMacro (wholeline, mi.hashnonlocalmacro);\r
 \r
             // Converting guid\r
             replaceGuid(wholeline, mi.guid, "guid", fileguid);\r
@@ -289,7 +249,64 @@ public final class SourceFileReplacer implements Common.ForDoAll {
         }\r
         return templine;\r
     }\r
-    \r
+\r
+    private final String replaceMacro (String wholeline, Set<String> symbolSet) {\r
+        String r8thing;\r
+        String r9thing;\r
+        Iterator<String> it;\r
+\r
+        it = symbolSet.iterator();\r
+        while (it.hasNext()) {                        //macros are all assumed MdePkg currently\r
+            r8thing = it.next();\r
+            System.out.println (r8thing);\r
+            //mi.hashrequiredr9libs.add(MigrationTool.db.getR9Lib(r8thing));        \r
+            if ((r9thing = MigrationTool.db.getR9Macro(r8thing)) != null) {\r
+                if (wholeline.contains(r8thing)) {\r
+                    wholeline = wholeline.replaceAll(r8thing, r9thing);\r
+                    filemacro.add(new r8tor9(r8thing, r9thing));\r
+                }\r
+            }\r
+        }\r
+        return wholeline;\r
+    }\r
+\r
+    private final String replaceLibrary (String wholeline, Set<String> symbolSet) {\r
+        boolean addr8 = false;\r
+        // start replacing names\r
+        String r8thing;\r
+        String r9thing;\r
+        Iterator<String> it;\r
+        // Converting non-locla function\r
+        it = symbolSet.iterator();\r
+        while (it.hasNext()) {\r
+            r8thing = it.next();\r
+            mi.hashrequiredr9libs.add(MigrationTool.db.getR9Lib(r8thing));                // add a library here\r
\r
+            r8tor9 temp;\r
+            if ((r9thing = MigrationTool.db.getR9Func(r8thing)) != null) {\r
+                if (!r8thing.equals(r9thing)) {\r
+                    if (wholeline.contains(r8thing)) {\r
+                        wholeline = wholeline.replaceAll(r8thing, r9thing);\r
+                        filefunc.add(new r8tor9(r8thing, r9thing));\r
+                        Iterator<r8tor9> rt = filefunc.iterator();\r
+                        while (rt.hasNext()) {\r
+                            temp = rt.next();\r
+                            if (MigrationTool.db.r8only.contains(temp.r8thing)) {\r
+                                filer8only.add(r8thing);\r
+                                mi.hashr8only.add(r8thing);\r
+                                addr8 = true;\r
+                            }\r
+                        }\r
+                    }\r
+                }\r
+            }\r
+        }                                                            //is any of the guids changed?\r
+        if (addr8 == true) {\r
+            wholeline = addincludefile(wholeline, "\"R8Lib.h\"");\r
+        }\r
+        return wholeline;\r
+    }\r
+\r
     private final void addr8only() throws Exception {\r
         String paragraph = null;\r
         String line = Common.file2string(MigrationTool.db.DatabasePath + File.separator + "R8Lib.c");\r