@@ -54,6 +54,8 @@ struct DBParams {
54
54
DBOptions options{};
55
55
};
56
56
57
+ inline auto CharCast (const std::byte* data) { return reinterpret_cast <const char *>(data); }
58
+
57
59
class dbwrapper_error : public std ::runtime_error
58
60
{
59
61
public:
@@ -113,12 +115,12 @@ class CDBBatch
113
115
{
114
116
ssKey.reserve (DBWRAPPER_PREALLOC_KEY_SIZE);
115
117
ssKey << key;
116
- leveldb::Slice slKey (( const char *) ssKey.data (), ssKey.size ());
118
+ leveldb::Slice slKey (CharCast ( ssKey.data () ), ssKey.size ());
117
119
118
120
ssValue.reserve (DBWRAPPER_PREALLOC_VALUE_SIZE);
119
121
ssValue << value;
120
122
ssValue.Xor (dbwrapper_private::GetObfuscateKey (parent));
121
- leveldb::Slice slValue (( const char *) ssValue.data (), ssValue.size ());
123
+ leveldb::Slice slValue (CharCast ( ssValue.data () ), ssValue.size ());
122
124
123
125
batch.Put (slKey, slValue);
124
126
// LevelDB serializes writes as:
@@ -138,7 +140,7 @@ class CDBBatch
138
140
{
139
141
ssKey.reserve (DBWRAPPER_PREALLOC_KEY_SIZE);
140
142
ssKey << key;
141
- leveldb::Slice slKey (( const char *) ssKey.data (), ssKey.size ());
143
+ leveldb::Slice slKey (CharCast ( ssKey.data () ), ssKey.size ());
142
144
143
145
batch.Delete (slKey);
144
146
// LevelDB serializes erases as:
@@ -177,7 +179,7 @@ class CDBIterator
177
179
DataStream ssKey{};
178
180
ssKey.reserve (DBWRAPPER_PREALLOC_KEY_SIZE);
179
181
ssKey << key;
180
- leveldb::Slice slKey (( const char *) ssKey.data (), ssKey.size ());
182
+ leveldb::Slice slKey (CharCast ( ssKey.data () ), ssKey.size ());
181
183
piter->Seek (slKey);
182
184
}
183
185
@@ -265,7 +267,7 @@ class CDBWrapper
265
267
DataStream ssKey{};
266
268
ssKey.reserve (DBWRAPPER_PREALLOC_KEY_SIZE);
267
269
ssKey << key;
268
- leveldb::Slice slKey (( const char *) ssKey.data (), ssKey.size ());
270
+ leveldb::Slice slKey (CharCast ( ssKey.data () ), ssKey.size ());
269
271
270
272
std::string strValue;
271
273
leveldb::Status status = pdb->Get (readoptions, slKey, &strValue);
@@ -307,7 +309,7 @@ class CDBWrapper
307
309
DataStream ssKey{};
308
310
ssKey.reserve (DBWRAPPER_PREALLOC_KEY_SIZE);
309
311
ssKey << key;
310
- leveldb::Slice slKey (( const char *) ssKey.data (), ssKey.size ());
312
+ leveldb::Slice slKey (CharCast ( ssKey.data () ), ssKey.size ());
311
313
312
314
std::string strValue;
313
315
leveldb::Status status = pdb->Get (readoptions, slKey, &strValue);
@@ -351,8 +353,8 @@ class CDBWrapper
351
353
ssKey2.reserve (DBWRAPPER_PREALLOC_KEY_SIZE);
352
354
ssKey1 << key_begin;
353
355
ssKey2 << key_end;
354
- leveldb::Slice slKey1 (( const char *) ssKey1.data (), ssKey1.size ());
355
- leveldb::Slice slKey2 (( const char *) ssKey2.data (), ssKey2.size ());
356
+ leveldb::Slice slKey1 (CharCast ( ssKey1.data () ), ssKey1.size ());
357
+ leveldb::Slice slKey2 (CharCast ( ssKey2.data () ), ssKey2.size ());
356
358
uint64_t size = 0 ;
357
359
leveldb::Range range (slKey1, slKey2);
358
360
pdb->GetApproximateSizes (&range, 1 , &size);
0 commit comments