|
20 | 20 |
|
21 | 21 | package org.lmdbjava; |
22 | 22 |
|
| 23 | +import java.util.Arrays; |
23 | 24 | import static java.util.Objects.requireNonNull; |
24 | 25 | import static jnr.ffi.Memory.allocateDirect; |
25 | 26 | import static jnr.ffi.NativeType.ADDRESS; |
|
48 | 49 | public final class Dbi<T> { |
49 | 50 |
|
50 | 51 | private final Env<T> env; |
51 | | - private final String name; |
| 52 | + private final byte[] name; |
52 | 53 | private final Pointer ptr; |
53 | 54 |
|
54 | | - Dbi(final Env<T> env, final Txn<T> txn, final String name, |
| 55 | + Dbi(final Env<T> env, final Txn<T> txn, final byte[] name, |
55 | 56 | final DbiFlags... flags) { |
56 | 57 | this.env = env; |
57 | | - this.name = name; |
| 58 | + this.name = name == null ? null : Arrays.copyOf(name, name.length); |
58 | 59 | final int flagsMask = mask(flags); |
59 | 60 | final Pointer dbiPtr = allocateDirect(RUNTIME, ADDRESS); |
60 | 61 | checkRc(LIB.mdb_dbi_open(txn.pointer(), name, flagsMask, dbiPtr)); |
@@ -191,10 +192,10 @@ public T get(final Txn<T> txn, final T key) { |
191 | 192 | /** |
192 | 193 | * Obtains the name of this database. |
193 | 194 | * |
194 | | - * @return the name (may be null or empty) |
| 195 | + * @return the name (may be null) |
195 | 196 | */ |
196 | | - public String getName() { |
197 | | - return name; |
| 197 | + public byte[] getName() { |
| 198 | + return name == null ? null : Arrays.copyOf(name, name.length); |
198 | 199 | } |
199 | 200 |
|
200 | 201 | /** |
|
0 commit comments