Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
forked fromnodejs/node

Commit91ecd7e

Browse files
targoslouwers
authored andcommitted
sqlite: return results with null prototype
These objects are dictionaries, and a query can return columns withspecial names like `__proto__` (which would be ignored without thischange).Also construct the object by passing vectors of properties for betterperformance and improve error handling by using `MaybeLocal`.PR-URL:nodejs#54350Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com>Reviewed-By: James M Snell <jasnell@gmail.com>
1 parent8f45730 commit91ecd7e

File tree

1 file changed

+8
-17
lines changed

1 file changed

+8
-17
lines changed

‎src/node_sqlite.cc

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -757,32 +757,23 @@ void StatementSync::All(const FunctionCallbackInfo<Value>& args) {
757757
auto reset =OnScopeLeave([&]() {sqlite3_reset(stmt->statement_); });
758758
int num_cols =sqlite3_column_count(stmt->statement_);
759759
LocalVector<Value>rows(isolate);
760-
LocalVector<Name>row_keys(isolate);
761760
while ((r =sqlite3_step(stmt->statement_)) == SQLITE_ROW) {
762-
if (row_keys.size() ==0) {
763-
row_keys.reserve(num_cols);
764-
765-
for (int i =0; i < num_cols; ++i) {
766-
Local<Name> key;
767-
if (!stmt->ColumnNameToName(i).ToLocal(&key))return;
768-
row_keys.emplace_back(key);
769-
}
770-
}
771-
761+
LocalVector<Name>row_keys(isolate);
762+
row_keys.reserve(num_cols);
772763
LocalVector<Value>row_values(isolate);
773764
row_values.reserve(num_cols);
774765

775-
for (size_t i =0; i < row_keys.size(); ++i) {
766+
for (int i =0; i < num_cols; ++i) {
767+
Local<Name> key;
768+
if (!stmt->ColumnNameToName(i).ToLocal(&key))return;
776769
Local<Value> val;
777770
if (!stmt->ColumnToValue(i).ToLocal(&val))return;
771+
row_keys.emplace_back(key);
778772
row_values.emplace_back(val);
779773
}
780774

781-
Local<Object> row =Object::New(isolate,
782-
Null(isolate),
783-
row_keys.data(),
784-
row_values.data(),
785-
row_keys.size());
775+
Local<Object> row =Object::New(
776+
isolate,Null(isolate), row_keys.data(), row_values.data(), num_cols);
786777
rows.emplace_back(row);
787778
}
788779

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp