diff --git a/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/nfi/TruffleNFI_Context.java b/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/nfi/TruffleNFI_Context.java index c90fbc6920c0ebec90256571eebbbc3aec183557..2e79a9dca824e951df2c2e6317c473bda260b565 100644 --- a/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/nfi/TruffleNFI_Context.java +++ b/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/nfi/TruffleNFI_Context.java @@ -123,9 +123,17 @@ final class TruffleNFI_Context extends RFFIContext { if (function.getLibrary() == NativeFunction.baseLibrary()) { dllInfo = TruffleNFI_Context.getInstance().defaultLibrary; } else if (function.getLibrary() == NativeFunction.anyLibrary()) { - dllInfo = ((NFIHandle) DLL.findLibraryContainingSymbol(function.getCallName()).handle).libHandle; + DLLInfo lib = DLL.findLibraryContainingSymbol(function.getCallName()); + if (lib == null) { + throw RInternalError.shouldNotReachHere("Could not find library containing symbol " + function.getCallName()); + } + dllInfo = ((NFIHandle) lib.handle).libHandle; } else { - dllInfo = ((NFIHandle) DLL.findLibrary(function.getLibrary()).handle).libHandle; + DLLInfo lib = DLL.findLibrary(function.getLibrary()); + if (lib == null) { + throw RInternalError.shouldNotReachHere("Could not find library " + function.getLibrary()); + } + dllInfo = ((NFIHandle) lib.handle).libHandle; } try { TruffleObject symbol = ((TruffleObject) ForeignAccess.sendRead(Message.READ.createNode(), dllInfo, function.getCallName()));