@@ -571,7 +571,7 @@ void AfterScanDir(uv_fs_t* req) {
571
571
Environment* env = req_wrap->env ();
572
572
Local<Value> error;
573
573
int r;
574
- std::vector<Local<Value>> name_argv ;
574
+ std::vector<Local<Value>> name_v ;
575
575
576
576
for (int i = 0 ; ; i++) {
577
577
uv_dirent_t ent;
@@ -593,12 +593,10 @@ void AfterScanDir(uv_fs_t* req) {
593
593
if (filename.IsEmpty ())
594
594
return req_wrap->Reject (error);
595
595
596
- name_argv .push_back (filename.ToLocalChecked ());
596
+ name_v .push_back (filename.ToLocalChecked ());
597
597
}
598
598
599
- Local<Array> names =
600
- Array::New (env->isolate (), name_argv.data (), name_argv.size ());
601
- req_wrap->Resolve (names);
599
+ req_wrap->Resolve (Array::New (env->isolate (), name_v.data (), name_v.size ()));
602
600
}
603
601
604
602
void AfterScanDirWithTypes (uv_fs_t * req) {
@@ -613,13 +611,9 @@ void AfterScanDirWithTypes(uv_fs_t* req) {
613
611
Isolate* isolate = env->isolate ();
614
612
Local<Value> error;
615
613
int r;
616
- Local<Array> names = Array::New (isolate, 0 );
617
- Local<Function> fn = env->push_values_to_array_function ();
618
- Local<Value> name_argv[NODE_PUSH_VAL_TO_ARRAY_MAX];
619
- size_t name_idx = 0 ;
620
- Local<Value> types = Array::New (isolate, 0 );
621
- Local<Value> type_argv[NODE_PUSH_VAL_TO_ARRAY_MAX];
622
- size_t type_idx = 0 ;
614
+
615
+ std::vector<Local<Value>> name_v;
616
+ std::vector<Local<Value>> type_v;
623
617
624
618
for (int i = 0 ; ; i++) {
625
619
uv_dirent_t ent;
@@ -641,48 +635,13 @@ void AfterScanDirWithTypes(uv_fs_t* req) {
641
635
if (filename.IsEmpty ())
642
636
return req_wrap->Reject (error);
643
637
644
- name_argv[name_idx++] = filename.ToLocalChecked ();
645
-
646
- if (name_idx >= arraysize (name_argv)) {
647
- MaybeLocal<Value> ret = fn->Call (env->context (), names, name_idx,
648
- name_argv);
649
- if (ret.IsEmpty ()) {
650
- return ;
651
- }
652
- name_idx = 0 ;
653
- }
654
-
655
- type_argv[type_idx++] = Integer::New (isolate, ent.type );
656
-
657
- if (type_idx >= arraysize (type_argv)) {
658
- MaybeLocal<Value> ret = fn->Call (env->context (), types, type_idx,
659
- type_argv);
660
- if (ret.IsEmpty ()) {
661
- return ;
662
- }
663
- type_idx = 0 ;
664
- }
665
- }
666
-
667
- if (name_idx > 0 ) {
668
- MaybeLocal<Value> ret = fn->Call (env->context (), names, name_idx,
669
- name_argv);
670
- if (ret.IsEmpty ()) {
671
- return ;
672
- }
673
- }
674
-
675
- if (type_idx > 0 ) {
676
- MaybeLocal<Value> ret = fn->Call (env->context (), types, type_idx,
677
- type_argv);
678
- if (ret.IsEmpty ()) {
679
- return ;
680
- }
638
+ name_v.push_back (filename.ToLocalChecked ());
639
+ type_v.push_back (Integer::New (isolate, ent.type ));
681
640
}
682
641
683
642
Local<Array> result = Array::New (isolate, 2 );
684
- result->Set (0 , names );
685
- result->Set (1 , types );
643
+ result->Set (0 , Array::New (isolate, name_v. data (), name_v. size ()) );
644
+ result->Set (1 , Array::New (isolate, type_v. data (), type_v. size ()) );
686
645
req_wrap->Resolve (result);
687
646
}
688
647
@@ -1523,9 +1482,8 @@ static void ReadDir(const FunctionCallbackInfo<Value>& args) {
1523
1482
Local<Array> names = Array::New (isolate, name_v.data (), name_v.size ());
1524
1483
if (with_types) {
1525
1484
Local<Array> result = Array::New (isolate, 2 );
1526
- Local<Value> types = Array::New (isolate, type_v.data (), type_v.size ());
1527
1485
result->Set (0 , names);
1528
- result->Set (1 , types );
1486
+ result->Set (1 , Array::New (isolate, type_v. data (), type_v. size ()) );
1529
1487
args.GetReturnValue ().Set (result);
1530
1488
} else {
1531
1489
args.GetReturnValue ().Set (names);
0 commit comments