changeset 22246:bc3be6efa1cc

Truffle/Instrumentation: move the registration if a newly loaded language's DefaultASTProber earlier in the language setup sequence
author Michael Van De Vanter <michael.van.de.vanter@oracle.com>
date Wed, 23 Sep 2015 17:24:59 -0700
parents c1f9d1ea057c
children c1c9c6d79f40
files truffle/com.oracle.truffle.api.vm/src/com/oracle/truffle/api/vm/TruffleVM.java
diffstat 1 files changed, 6 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/truffle/com.oracle.truffle.api.vm/src/com/oracle/truffle/api/vm/TruffleVM.java	Wed Sep 23 17:23:57 2015 -0700
+++ b/truffle/com.oracle.truffle.api.vm/src/com/oracle/truffle/api/vm/TruffleVM.java	Wed Sep 23 17:24:59 2015 -0700
@@ -792,18 +792,17 @@
         TruffleLanguage<?> getImpl(boolean create) {
             getEnv(create);
             TruffleLanguage<?> impl = info.getImpl(false);
-            if (impl != null) {
-                ASTProber prober = SPI.getDefaultASTProber(impl);
-                if (prober != null) {
-                    instrumenter.registerASTProber(prober);
-                }
-            }
             return impl;
         }
 
         TruffleLanguage.Env getEnv(boolean create) {
             if (env == null && create) {
-                env = SPI.attachEnv(TruffleVM.this, info.getImpl(true), out, err, in, TruffleVM.this.instrumenter);
+                final TruffleLanguage<?> impl = info.getImpl(true);
+                ASTProber prober = SPI.getDefaultASTProber(impl);
+                if (prober != null) {
+                    instrumenter.registerASTProber(prober);
+                }
+                env = SPI.attachEnv(TruffleVM.this, impl, out, err, in, TruffleVM.this.instrumenter);
             }
             return env;
         }