Skip to content

Commit ae60602

Browse files
committed
src: use Maybe instead of std::optional
1 parent 45b12c8 commit ae60602

File tree

1 file changed

+17
-15
lines changed

1 file changed

+17
-15
lines changed

src/node_sqlite.cc

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,14 @@ using v8::HandleScope;
3535
using v8::Int32;
3636
using v8::Integer;
3737
using v8::Isolate;
38+
using v8::JustVoid;
3839
using v8::Local;
3940
using v8::LocalVector;
41+
using v8::Maybe;
4042
using v8::MaybeLocal;
4143
using v8::Name;
4244
using v8::NewStringType;
45+
using v8::Nothing;
4346
using v8::Null;
4447
using v8::Number;
4548
using v8::Object;
@@ -2017,17 +2020,18 @@ MaybeLocal<Name> StatementSync::ColumnNameToName(const int column) {
20172020

20182021
void StatementSync::MemoryInfo(MemoryTracker* tracker) const {}
20192022

2020-
std::optional<LocalVector<Value>> ExtractRowValues(Isolate* isolate,
2021-
int num_cols,
2022-
StatementSync* stmt) {
2023-
LocalVector<Value> row_values(isolate);
2024-
row_values.reserve(num_cols);
2023+
Maybe<void> ExtractRowValues(Isolate* isolate,
2024+
int num_cols,
2025+
StatementSync* stmt,
2026+
LocalVector<Value>* row_values) {
2027+
row_values->clear();
2028+
row_values->reserve(num_cols);
20252029
for (int i = 0; i < num_cols; ++i) {
20262030
Local<Value> val;
2027-
if (!stmt->ColumnToValue(i).ToLocal(&val)) return std::nullopt;
2028-
row_values.emplace_back(val);
2031+
if (!stmt->ColumnToValue(i).ToLocal(&val)) return Nothing<void>();
2032+
row_values->emplace_back(val);
20292033
}
2030-
return row_values;
2034+
return JustVoid();
20312035
}
20322036

20332037
void StatementSync::All(const FunctionCallbackInfo<Value>& args) {
@@ -2051,10 +2055,10 @@ void StatementSync::All(const FunctionCallbackInfo<Value>& args) {
20512055
LocalVector<Name> row_keys(isolate);
20522056

20532057
while ((r = sqlite3_step(stmt->statement_)) == SQLITE_ROW) {
2054-
auto maybe_row_values = ExtractRowValues(env->isolate(), num_cols, stmt);
2055-
if (!maybe_row_values.has_value()) return;
2058+
auto maybe_row_values =
2059+
ExtractRowValues(env->isolate(), num_cols, stmt, &row_values);
2060+
if (maybe_row_values.IsNothing()) return;
20562061

2057-
row_values = std::move(maybe_row_values.value());
20582062
if (stmt->return_arrays_) {
20592063
Local<Array> row_array =
20602064
Array::New(isolate, row_values.data(), row_values.size());
@@ -2550,10 +2554,8 @@ void StatementSyncIterator::Next(const FunctionCallbackInfo<Value>& args) {
25502554
LocalVector<Value> row_values(isolate);
25512555

25522556
auto maybe_row_values =
2553-
ExtractRowValues(isolate, num_cols, iter->stmt_.get());
2554-
if (!maybe_row_values.has_value()) return;
2555-
2556-
row_values = std::move(maybe_row_values.value());
2557+
ExtractRowValues(isolate, num_cols, iter->stmt_.get(), &row_values);
2558+
if (maybe_row_values.IsNothing()) return;
25572559

25582560
if (iter->stmt_->return_arrays_) {
25592561
row_value = Array::New(isolate, row_values.data(), row_values.size());

0 commit comments

Comments
 (0)