mirror of
https://github.com/XRPLF/rippled.git
synced 2025-12-06 17:27:55 +00:00
[Java] Add RocksObject, the base class of all java objects with a c++ pointer.
Summary: Add RocksObject, the base class of all java objects which has a c++ pointer. While the finalizer of a RocksObject will release its c++ resource, it is suggested to call its RocksObject.dispose() to manually release its c++ resource. Existing RocksDB java classes are now extending RocksObject. Test Plan: make rocksdbjava make jtest make jdb_bench Reviewers: haobo, dhruba, sdong, ankgup87, rsumbaly, swapnilghike, zzbennett Reviewed By: haobo CC: leveldb Differential Revision: https://reviews.facebook.net/D18411
This commit is contained in:
@@ -26,7 +26,7 @@ jboolean Java_org_rocksdb_Iterator_isValid0(
|
||||
|
||||
/*
|
||||
* Class: org_rocksdb_Iterator
|
||||
* Method: close0
|
||||
* Method: seekToFirst0
|
||||
* Signature: (J)V
|
||||
*/
|
||||
void Java_org_rocksdb_Iterator_seekToFirst0(
|
||||
@@ -135,13 +135,11 @@ void Java_org_rocksdb_Iterator_status0(
|
||||
|
||||
/*
|
||||
* Class: org_rocksdb_Iterator
|
||||
* Method: status0
|
||||
* Method: dispose
|
||||
* Signature: (J)V
|
||||
*/
|
||||
void Java_org_rocksdb_Iterator_close0(
|
||||
void Java_org_rocksdb_Iterator_dispose(
|
||||
JNIEnv* env, jobject jobj, jlong handle) {
|
||||
auto it = reinterpret_cast<rocksdb::Iterator*>(handle);
|
||||
delete it;
|
||||
|
||||
rocksdb::IteratorJni::setHandle(env, jobj, nullptr);
|
||||
}
|
||||
|
||||
@@ -415,16 +415,14 @@ void Java_org_rocksdb_RocksDB_remove__JJ_3BI(
|
||||
|
||||
/*
|
||||
* Class: org_rocksdb_RocksDB
|
||||
* Method: close0
|
||||
* Signature: ()V
|
||||
* Method: dispose
|
||||
* Signature: (J)V
|
||||
*/
|
||||
void Java_org_rocksdb_RocksDB_close0(
|
||||
JNIEnv* env, jobject java_db) {
|
||||
rocksdb::DB* db = rocksdb::RocksDBJni::getHandle(env, java_db);
|
||||
void Java_org_rocksdb_RocksDB_dispose(
|
||||
JNIEnv* env, jobject java_db, jlong jhandle) {
|
||||
auto db = reinterpret_cast<rocksdb::DB*>(jhandle);
|
||||
assert(db != nullptr);
|
||||
delete db;
|
||||
|
||||
rocksdb::RocksDBJni::setHandle(env, java_db, nullptr);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user