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 089c1f6fba9896b432d92e4a329a2d1d7b75493f..b002c4884753b040aa1f819f1f955610cafbc587 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 @@ -369,13 +369,13 @@ final class TruffleNFI_Context extends RFFIContext { UnsafeAdapter.UNSAFE.freeMemory(ptr); } transientAllocations.clear(); + RuntimeException lastUpCallEx = getLastUpCallException(); + setLastUpCallException(null); if (hasAccessLock) { releaseLock(); } - RuntimeException lastUpCallEx = getLastUpCallException(); if (lastUpCallEx != null) { CompilerDirectives.transferToInterpreter(); - setLastUpCallException(null); throw lastUpCallEx; } }