diff options
Diffstat (limited to 'lang/src/main/java/net/openhft/lang/io/CharBufferReuse.java')
-rw-r--r-- | lang/src/main/java/net/openhft/lang/io/CharBufferReuse.java | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/lang/src/main/java/net/openhft/lang/io/CharBufferReuse.java b/lang/src/main/java/net/openhft/lang/io/CharBufferReuse.java index 89ef031..2f8a32e 100644 --- a/lang/src/main/java/net/openhft/lang/io/CharBufferReuse.java +++ b/lang/src/main/java/net/openhft/lang/io/CharBufferReuse.java @@ -102,12 +102,15 @@ interface CharBufferReuse { 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 { |