mirror of
https://github.com/mii443/rust-openvr.git
synced 2025-08-23 00:35:31 +00:00
Merge pull request #15 from TornAsunder/master
fix for ffi string crash
This commit is contained in:
@ -3,6 +3,8 @@ use openvr_sys::Enum_ETrackedPropertyError::*;
|
||||
|
||||
use subsystems::*;
|
||||
use error::*;
|
||||
use std::slice;
|
||||
use std::str;
|
||||
|
||||
/// Describes a string property of a tracked device
|
||||
#[derive(Debug, Copy, Clone)]
|
||||
@ -127,7 +129,10 @@ impl TrackedDevicePose {
|
||||
);
|
||||
|
||||
if size > 0 {
|
||||
return Ok(String::from_raw_parts(val_out.as_ptr() as *mut _, (size - 1) as usize, (size - 1) as usize));
|
||||
let ptr = val_out.as_ptr() as *mut u8;
|
||||
let mem = slice::from_raw_parts(ptr, size as usize);
|
||||
let str = str::from_utf8(mem).unwrap();
|
||||
return Ok(String::from(str));
|
||||
} else {
|
||||
return Err(Error::from_raw(err));
|
||||
}
|
||||
|
Reference in New Issue
Block a user