jvmti_wrapper 0.1.3

Rust wrapper for jvmti.h
Documentation
extern crate jni;

use std::os::raw::{c_int, c_void};
use std::ptr;

use jni::JavaVM;
use jvmti_sys::jvmtiEnv;

use crate::JvmtiEnv;

pub trait JvmtiSupplier {
    fn get_jvmti_env(&self, jvmti_version: c_int) -> JvmtiEnv;
}

impl JvmtiSupplier for JavaVM {
    fn get_jvmti_env(&self, jvmti_version: c_int) -> JvmtiEnv {
        let vm = self.get_java_vm_pointer();

        let mut jvmti: *mut c_void = ptr::null_mut();

        unsafe {
            (**vm).GetEnv.unwrap()(vm, &mut jvmti, jvmti_version);

            JvmtiEnv::from(jvmti as *mut jvmtiEnv)
        }
    }
}