@@ -253,10 +253,8 @@ void LMDB::resolveSingleMatch(const std::string& var,
253
253
mdb_cursor_open (txn, m_dbi, &cursor);
254
254
while ((rc = mdb_cursor_get (cursor, &mdb_key,
255
255
&mdb_value_ret, MDB_NEXT_DUP)) == 0 ) {
256
- std::string *a = new std::string (
257
- reinterpret_cast <char *>(mdb_value_ret.mv_data ),
258
- mdb_value_ret.mv_size );
259
- VariableValue *v = new VariableValue (&var, a);
256
+ std::string a (reinterpret_cast <char *>(mdb_value_ret.mv_data ), mdb_value_ret.mv_size );
257
+ VariableValue *v = new VariableValue (&var, &a);
260
258
l->push_back (v);
261
259
}
262
260
@@ -427,23 +425,18 @@ void LMDB::resolveMultiMatches(const std::string& var,
427
425
428
426
if (keySize == 0 ) {
429
427
while ((rc = mdb_cursor_get (cursor, &key, &data, MDB_NEXT)) == 0 ) {
428
+ std::string key_to_insert (reinterpret_cast <char *>(key.mv_data ), key.mv_size );
429
+ std::string value_to_insert (reinterpret_cast <char *>(data.mv_data ), data.mv_size );
430
430
l->insert (l->begin (), new VariableValue (
431
- &m_name,
432
- new std::string (reinterpret_cast <char *>(key.mv_data ),
433
- key.mv_size ),
434
- new std::string (reinterpret_cast <char *>(data.mv_data ),
435
- data.mv_size )));
431
+ &m_name, &key_to_insert, &value_to_insert));
436
432
}
437
433
} else {
438
434
while ((rc = mdb_cursor_get (cursor, &key, &data, MDB_NEXT)) == 0 ) {
439
435
char *a = reinterpret_cast <char *>(key.mv_data );
440
436
if (strncmp (var.c_str (), a, keySize) == 0 ) {
441
- l->insert (l->begin (), new VariableValue (
442
- &m_name,
443
- new std::string (reinterpret_cast <char *>(key.mv_data ),
444
- key.mv_size ),
445
- new std::string (reinterpret_cast <char *>(data.mv_data ),
446
- data.mv_size )));
437
+ std::string key_to_insert (reinterpret_cast <char *>(key.mv_data ), key.mv_size );
438
+ std::string value_to_insert (reinterpret_cast <char *>(data.mv_data ), data.mv_size );
439
+ l->insert (l->begin (), new VariableValue (&m_name, &key_to_insert, &value_to_insert));
447
440
}
448
441
}
449
442
}
@@ -485,16 +478,13 @@ void LMDB::resolveRegularExpression(const std::string& var,
485
478
if (ret <= 0 ) {
486
479
continue ;
487
480
}
488
- if (ke. toOmit ( std::string (reinterpret_cast <char *>(key.mv_data ),
489
- key. mv_size ) )) {
481
+ std::string key_to_insert (reinterpret_cast <char *>(key.mv_data ), key. mv_size );
482
+ if (ke. toOmit (key_to_insert )) {
490
483
continue ;
491
484
}
492
485
493
- VariableValue *v = new VariableValue (
494
- new std::string (reinterpret_cast <char *>(key.mv_data ),
495
- key.mv_size ),
496
- new std::string (reinterpret_cast <char *>(data.mv_data ),
497
- data.mv_size ));
486
+ std::string value_to_insert (reinterpret_cast <char *>(data.mv_data ), data.mv_size );
487
+ VariableValue *v = new VariableValue (&key_to_insert, &value_to_insert);
498
488
l->insert (l->begin (), v);
499
489
}
500
490
0 commit comments