Skip to content

Commit fcd9c99

Browse files
Add binding for new gcc_jit_lvalue_get_name function
1 parent d57a079 commit fcd9c99

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

gccjit_sys/src/lib.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -699,4 +699,7 @@ extern "C" {
699699

700700
#[cfg(feature="master")]
701701
pub fn gcc_jit_lvalue_add_attribute(variable: *mut gcc_jit_lvalue, attribute: gcc_jit_variable_attribute);
702+
703+
#[cfg(feature="master")]
704+
pub fn gcc_jit_lvalue_get_name(lvalue: *mut gcc_jit_lvalue) -> *const c_char;
702705
}

src/lvalue.rs

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
1-
use std::{ffi::CString, marker::PhantomData};
1+
use std::ffi::{CStr, CString};
2+
use std::marker::PhantomData;
23
use std::fmt;
34
use std::ptr;
5+
use std::str::Utf8Error;
6+
47
use context::Context;
58
use rvalue::{RValue, ToRValue};
69
use rvalue;
@@ -238,6 +241,18 @@ impl<'ctx> LValue<'ctx> {
238241
},
239242
}
240243
}
244+
245+
#[cfg(feature = "master")]
246+
pub fn get_name(&self) -> Result<Option<&'ctx str>, Utf8Error> {
247+
unsafe {
248+
let str = gccjit_sys::gcc_jit_lvalue_get_name(self.ptr);
249+
if str.is_null() {
250+
Ok(None)
251+
} else {
252+
Ok(Some(CStr::from_ptr(str).to_str()?))
253+
}
254+
}
255+
}
241256
}
242257

243258
pub unsafe fn from_ptr<'ctx>(ptr: *mut gccjit_sys::gcc_jit_lvalue) -> LValue<'ctx> {

0 commit comments

Comments
 (0)