Mercurial > hg > graal-compiler
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; }