Comments
Patch
@@ -7,8 +7,8 @@
use crate::cindex;
use cpython::{
- ObjectProtocol, PyDict, PyModule, PyObject, PyResult, PyTuple, Python,
- PythonObject, ToPyObject,
+ ObjectProtocol, PyClone, PyDict, PyModule, PyObject, PyResult, PyTuple,
+ Python, PythonObject, ToPyObject,
};
use hg::Revision;
use std::cell::RefCell;
@@ -198,6 +198,10 @@
.inner()
.call_method(py, name, args, kwargs)
}
+
+ pub fn clone_cindex(&self, py: Python) -> cindex::Index {
+ self.cindex(py).borrow().clone_ref(py)
+ }
}
/// Create the module, with __package__ given from parent
@@ -85,6 +85,15 @@
}
}
+impl PyClone for Index {
+ fn clone_ref(&self, py: Python) -> Self {
+ Index {
+ index: self.index.clone_ref(py),
+ parents: self.parents.clone(),
+ }
+ }
+}
+
impl Graph for Index {
/// wrap a call to the C extern parents function
fn parents(&self, rev: Revision) -> Result<[Revision; 2], GraphError> {