Skip to content

Commit 00fe4f8

Browse files
committed
Free string from obs.str()
1 parent d6caa8e commit 00fe4f8

1 file changed

Lines changed: 5 additions & 2 deletions

File tree

src/qiskit.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -466,9 +466,12 @@ impl Observable {
466466
unsafe { qiskit_sys::qk_obs_equal(self.observable, obs.observable) }
467467
}
468468
/// Return a string representation of the observable
469-
pub fn str(&self) -> &str {
469+
pub fn str(&self) -> String {
470470
let obs_str = unsafe { qiskit_sys::qk_obs_str(self.observable) };
471-
unsafe { CStr::from_ptr(obs_str) }.to_str().unwrap()
471+
// Clone C string into String, which implements Drop
472+
let retval = String::from(unsafe { CStr::from_ptr(obs_str) }.to_str().unwrap());
473+
unsafe { qiskit_sys::qk_str_free(obs_str) };
474+
retval
472475
}
473476
}
474477

0 commit comments

Comments
 (0)