changeset 23389:69a9c45e2143

Add constructor to create InvocationPlugins from map of already resolved methods
author Christian Wimmer <christian.wimmer@oracle.com>
date Thu, 04 Feb 2016 17:18:03 -0800
parents c02f48b93817
children de7387a91cea
files graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/graphbuilderconf/InvocationPlugins.java
diffstat 1 files changed, 22 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/graphbuilderconf/InvocationPlugins.java	Thu Feb 04 16:09:50 2016 -0800
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/graphbuilderconf/InvocationPlugins.java	Thu Feb 04 17:18:03 2016 -0800
@@ -594,6 +594,28 @@
         this(parent, parent.getMetaAccess());
     }
 
+    public InvocationPlugins(Map<ResolvedJavaMethod, InvocationPlugin> plugins, InvocationPlugins parent, MetaAccessProvider metaAccess) {
+        this.metaAccess = metaAccess;
+        this.parent = parent;
+
+        this.deferredRegistrations = null;
+
+        for (Map.Entry<ResolvedJavaMethod, InvocationPlugin> entry : plugins.entrySet()) {
+            ResolvedJavaMethod method = entry.getKey();
+            InvocationPlugin plugin = entry.getValue();
+
+            String internalName = method.getDeclaringClass().getName();
+            ClassPlugins classPlugins = registrations.get(internalName);
+            if (classPlugins == null) {
+                classPlugins = new ClassPlugins(null);
+                registrations.put(internalName, classPlugins);
+                classPlugins.entries = new HashMap<>();
+            }
+
+            classPlugins.entries.put(method, plugin);
+        }
+    }
+
     public MetaAccessProvider getMetaAccess() {
         return metaAccess;
     }