Mercurial > hg > truffle
diff graal/com.oracle.truffle.api/src/com/oracle/truffle/api/Truffle.java @ 16779:e52ad0d3b7d6
put some security sensitive actions into a privileged action
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Tue, 12 Aug 2014 00:08:19 +0200 |
parents | b7fb36e57da8 |
children | afa70d3e8159 |
line wrap: on
line diff
--- a/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/Truffle.java Tue Aug 12 00:01:54 2014 +0200 +++ b/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/Truffle.java Tue Aug 12 00:08:19 2014 +0200 @@ -24,6 +24,8 @@ */ package com.oracle.truffle.api; +import java.security.*; + import com.oracle.truffle.api.impl.*; /** @@ -31,7 +33,7 @@ */ public class Truffle { - private static final TruffleRuntime RUNTIME; + private static final TruffleRuntime RUNTIME = initRuntime(); /** * Creates a new {@link TruffleRuntime} instance if the runtime has a specialized @@ -46,13 +48,15 @@ return RUNTIME; } - static { - TruffleRuntime runtime; + private static TruffleRuntime initRuntime() { try { - runtime = createRuntime(); + return AccessController.doPrivileged(new PrivilegedAction<TruffleRuntime>() { + public TruffleRuntime run() { + return createRuntime(); + } + }); } catch (UnsatisfiedLinkError e) { - runtime = new DefaultTruffleRuntime(); + return new DefaultTruffleRuntime(); } - RUNTIME = runtime; } }