Avoid instantiating an std::string when calling serializer

This commit is contained in:
Martchus 2022-01-25 23:16:09 +01:00
parent c8a865528e
commit f2042c59a5
1 changed files with 8 additions and 8 deletions

View File

@ -199,7 +199,7 @@ public:
if((*d_parent.d_txn)->get(d_parent.d_parent->d_main, id, data)) if((*d_parent.d_txn)->get(d_parent.d_parent->d_main, id, data))
return false; return false;
serFromString(data.get<std::string>(), t); serFromString(data.get<string_view>(), t);
return true; return true;
} }
@ -260,10 +260,10 @@ public:
if(d_on_index) { if(d_on_index) {
if((*d_parent->d_txn)->get(d_parent->d_parent->d_main, d_id, d_data)) if((*d_parent->d_txn)->get(d_parent->d_parent->d_main, d_id, d_data))
throw LMDBError("Missing id in constructor"); throw LMDBError("Missing id in constructor");
serFromString(d_data.get<std::string>(), d_t); serFromString(d_data.get<string_view>(), d_t);
} }
else else
serFromString(d_id.get<std::string>(), d_t); serFromString(d_id.get<string_view>(), d_t);
} }
explicit iter_t(Parent* parent, typename Parent::cursor_t&& cursor, const std::string& prefix) : explicit iter_t(Parent* parent, typename Parent::cursor_t&& cursor, const std::string& prefix) :
@ -285,10 +285,10 @@ public:
if(d_on_index) { if(d_on_index) {
if((*d_parent->d_txn)->get(d_parent->d_parent->d_main, d_id, d_data)) if((*d_parent->d_txn)->get(d_parent->d_parent->d_main, d_id, d_data))
throw LMDBError("Missing id in constructor"); throw LMDBError("Missing id in constructor");
serFromString(d_data.get<std::string>(), d_t); serFromString(d_data.get<string_view>(), d_t);
} }
else else
serFromString(d_id.get<std::string>(), d_t); serFromString(d_id.get<string_view>(), d_t);
} }
@ -345,13 +345,13 @@ public:
if(filter && !filter(data)) if(filter && !filter(data))
goto next; goto next;
serFromString(data.get<std::string>(), d_t); serFromString(data.get<string_view>(), d_t);
} }
else { else {
if(filter && !filter(data)) if(filter && !filter(data))
goto next; goto next;
serFromString(d_id.get<std::string>(), d_t); serFromString(d_id.get<string_view>(), d_t);
} }
} }
return *this; return *this;
@ -617,7 +617,7 @@ public:
while(!cursor.get(key, data, first ? MDB_FIRST : MDB_NEXT)) { while(!cursor.get(key, data, first ? MDB_FIRST : MDB_NEXT)) {
first = false; first = false;
T t; T t;
serFromString(data.get<std::string>(), t); serFromString(data.get<string_view>(), t);
clearIndex(key.get<uint32_t>(), t); clearIndex(key.get<uint32_t>(), t);
cursor.del(); cursor.del();
} }