[RocksJava] ColumnFamily name JNI correction
Summary: Previous to this commit there was a problem with unterminated String usage as jByteArrays are not zero terminated. Test Plan: make rocksdbjava make jtest mvn -f rocksjni.pom package Reviewers: yhchiang, adamretter, ankgup87 Subscribers: dhruba Differential Revision: https://reviews.facebook.net/D31809
This commit is contained in:
parent
96264784d9
commit
e204a5a16c
|
@ -75,6 +75,7 @@ jobject
|
|||
const char* db_path = env->GetStringUTFChars(jdb_path, 0);
|
||||
|
||||
std::vector<jbyte*> cfnames_to_free;
|
||||
// the zero-terminated version of cfnames_to_free.
|
||||
std::vector<char*> c_cfnames_to_free;
|
||||
std::vector<jbyteArray> jcfnames_for_free;
|
||||
|
||||
|
@ -106,7 +107,7 @@ jobject
|
|||
const int len = env->GetArrayLength(byteArray) + 1;
|
||||
char* c_cfname = new char[len];
|
||||
memcpy(c_cfname, cfname, len - 1);
|
||||
c_cfname[len-1]='\0';
|
||||
c_cfname[len - 1] = 0;
|
||||
|
||||
// free allocated cfnames after call to open
|
||||
cfnames_to_free.push_back(cfname);
|
||||
|
@ -167,6 +168,7 @@ jobject Java_org_rocksdb_RocksDB_open__JLjava_lang_String_2Ljava_util_List_2I(
|
|||
const char* db_path = env->GetStringUTFChars(jdb_path, 0);
|
||||
|
||||
std::vector<jbyte*> cfnames_to_free;
|
||||
// the zero-terminated version of cfnames_to_free.
|
||||
std::vector<char*> c_cfnames_to_free;
|
||||
std::vector<jbyteArray> jcfnames_for_free;
|
||||
|
||||
|
@ -198,7 +200,7 @@ jobject Java_org_rocksdb_RocksDB_open__JLjava_lang_String_2Ljava_util_List_2I(
|
|||
const int len = env->GetArrayLength(byteArray) + 1;
|
||||
char* c_cfname = new char[len];
|
||||
memcpy(c_cfname, cfname, len - 1);
|
||||
c_cfname[len-1]='\0';
|
||||
c_cfname[len - 1] = 0;
|
||||
|
||||
// free allocated cfnames after call to open
|
||||
cfnames_to_free.push_back(cfname);
|
||||
|
@ -1248,7 +1250,7 @@ jlong Java_org_rocksdb_RocksDB_createColumnFamily(
|
|||
const int len = env->GetArrayLength(byteArray) + 1;
|
||||
char* c_cfname = new char[len];
|
||||
memcpy(c_cfname, cfname, len - 1);
|
||||
c_cfname[len-1]='\0';
|
||||
c_cfname[len - 1] = 0;
|
||||
|
||||
rocksdb::Status s = db_handle->CreateColumnFamily(
|
||||
*cfOptions, c_cfname, &handle);
|
||||
|
|
Loading…
Reference in New Issue
Block a user