# HG changeset patch # User Christian Wimmer # Date 1454635083 28800 # Node ID 69a9c45e21431cb614d40819e8ada2a5aa4b9cb0 # Parent c02f48b938177dceb62dfb3d20662340f42b7379 Add constructor to create InvocationPlugins from map of already resolved methods diff -r c02f48b93817 -r 69a9c45e2143 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/graphbuilderconf/InvocationPlugins.java --- 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 plugins, InvocationPlugins parent, MetaAccessProvider metaAccess) { + this.metaAccess = metaAccess; + this.parent = parent; + + this.deferredRegistrations = null; + + for (Map.Entry 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; }