Commit e951a51d authored by zhangjinpeng1987's avatar zhangjinpeng1987

rocksdb use shared_ptr hold filter_policy, so we don't need call rocksdb_filterpolicy_destroy

parent c712a98e
......@@ -200,7 +200,6 @@ extern "C" {
pub fn rocksdb_options_set_disable_auto_compactions(options: DBOptions,
v: c_int);
pub fn rocksdb_options_set_report_bg_io_stats(options: DBOptions, v: c_int);
pub fn rocksdb_filterpolicy_destroy(filter_policy: DBFilterPolicy);
pub fn rocksdb_filterpolicy_create_bloom_full(bits_per_key: c_int)
-> DBFilterPolicy;
pub fn rocksdb_filterpolicy_create_bloom(bits_per_key: c_int)
......
......@@ -28,10 +28,6 @@ pub struct FilterPolicy {
pub struct BlockBasedOptions {
inner: rocksdb_ffi::DBBlockBasedTableOptions,
// FilterPolicy must live as long as BlockBasedTableOptions,
// so we introduce this field
filter_policy: Option<FilterPolicy>,
}
pub struct Options {
......@@ -50,14 +46,6 @@ impl Drop for Options {
}
}
impl Drop for FilterPolicy {
fn drop(& mut self) {
unsafe {
rocksdb_ffi::rocksdb_filterpolicy_destroy(self.inner);
}
}
}
impl Drop for BlockBasedOptions {
fn drop(&mut self) {
unsafe {
......@@ -82,7 +70,7 @@ impl Default for BlockBasedOptions {
if opt_ptr.is_null() {
panic!("Could not create rocksdb block based options".to_string());
}
BlockBasedOptions { inner: block_opts, filter_policy: None }
BlockBasedOptions { inner: block_opts }
}
}
......@@ -120,10 +108,9 @@ impl BlockBasedOptions {
}
pub fn set_filter_policy(&mut self, filter: FilterPolicy) {
self.filter_policy = Some(filter);
unsafe {
rocksdb_ffi::rocksdb_block_based_options_set_filter_policy(self.inner,
self.filter_policy.as_ref().unwrap().inner);
filter.inner);
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment