diff options
Diffstat (limited to 'lang/src/main/java/net/openhft/lang/io/ByteBufferReuse.java')
-rw-r--r-- | lang/src/main/java/net/openhft/lang/io/ByteBufferReuse.java | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/lang/src/main/java/net/openhft/lang/io/ByteBufferReuse.java b/lang/src/main/java/net/openhft/lang/io/ByteBufferReuse.java index e14c9e0..d661b47 100644 --- a/lang/src/main/java/net/openhft/lang/io/ByteBufferReuse.java +++ b/lang/src/main/java/net/openhft/lang/io/ByteBufferReuse.java @@ -117,12 +117,15 @@ interface ByteBufferReuse { final byte[] impl = cw.toByteArray(); - final Unsafe unsafe = NativeBytes.UNSAFE; Class clazz = AccessController.doPrivileged(new PrivilegedAction<Class>() { @Override public Class run() { ClassLoader cl = MAGIC_CLASS_LOADER; - return unsafe.defineClass(reuseImplClassName, impl, 0, impl.length, cl, null); + try { + return (Class) NativeBytes.defineClassMethodHandle.bindTo(cl).invokeWithArguments(reuseImplClassName, impl, 0, impl.length); + } catch (Throwable e) { + throw new RuntimeException(e); + } } }); try { |