@@ -162,8 +162,8 @@ func readStream(stream *wasiStream, buf *byte, count uint, offset int64) int {
162
162
}
163
163
164
164
libcErrno = 0
165
- result := stream .in .BlockingRead (uint64 (count ))
166
- if err := result . Err (); err != nil {
165
+ list , err , isErr := stream .in .BlockingRead (uint64 (count )). Result ( )
166
+ if isErr {
167
167
if err .Closed () {
168
168
libcErrno = 0
169
169
return 0
@@ -174,9 +174,7 @@ func readStream(stream *wasiStream, buf *byte, count uint, offset int64) int {
174
174
return - 1
175
175
}
176
176
177
- dst := unsafe .Slice (buf , count )
178
- list := result .OK ()
179
- copy (dst , list .Slice ())
177
+ copy (unsafe .Slice (buf , count ), list .Slice ())
180
178
return int (list .Len ())
181
179
}
182
180
@@ -202,8 +200,8 @@ func writeStream(stream *wasiStream, buf *byte, count uint, offset int64) int {
202
200
if len > remaining {
203
201
len = remaining
204
202
}
205
- result := stream .out .BlockingWriteAndFlush (cm .ToList (src [:len ]))
206
- if err := result . Err (); err != nil {
203
+ _ , err , isErr := stream .out .BlockingWriteAndFlush (cm .ToList (src [:len ])). Result ( )
204
+ if isErr {
207
205
if err .Closed () {
208
206
libcErrno = 0
209
207
return 0
@@ -248,13 +246,13 @@ func pread(fd int32, buf *byte, count uint, offset int64) int {
248
246
return - 1
249
247
}
250
248
251
- result := streams .d .Read (types .FileSize (count ), types .FileSize (offset ))
252
- if err := result . Err (); err != nil {
253
- libcErrno = errorCodeToErrno (* err )
249
+ listEOF , err , isErr := streams .d .Read (types .FileSize (count ), types .FileSize (offset )). Result ( )
250
+ if isErr {
251
+ libcErrno = errorCodeToErrno (err )
254
252
return - 1
255
253
}
256
254
257
- list := result . OK () .F0
255
+ list := listEOF .F0
258
256
copy (unsafe .Slice (buf , count ), list .Slice ())
259
257
260
258
// TODO(dgryski): EOF bool is ignored?
@@ -285,14 +283,14 @@ func pwrite(fd int32, buf *byte, count uint, offset int64) int {
285
283
return - 1
286
284
}
287
285
288
- result := streams .d .Write (cm .NewList (buf , count ), types .FileSize (offset ))
289
- if err := result . Err (); err != nil {
286
+ n , err , isErr := streams .d .Write (cm .NewList (buf , count ), types .FileSize (offset )). Result ( )
287
+ if isErr {
290
288
// TODO(dgryski):
291
- libcErrno = errorCodeToErrno (* err )
289
+ libcErrno = errorCodeToErrno (err )
292
290
return - 1
293
291
}
294
292
295
- return int (* result . OK () )
293
+ return int (n )
296
294
}
297
295
298
296
// ssize_t lseek(int fd, off_t offset, int whence);
@@ -321,12 +319,12 @@ func lseek(fd int32, offset int64, whence int) int64 {
321
319
case 1 : // SEEK_CUR
322
320
stream .offset += offset
323
321
case 2 : // SEEK_END
324
- result := stream .d .Stat ()
325
- if err := result . Err (); err != nil {
326
- libcErrno = errorCodeToErrno (* err )
322
+ stat , err , isErr := stream .d .Stat (). Result ()
323
+ if isErr {
324
+ libcErrno = errorCodeToErrno (err )
327
325
return - 1
328
326
}
329
- stream .offset = int64 (result . OK () .Size ) + offset
327
+ stream .offset = int64 (stat .Size ) + offset
330
328
}
331
329
332
330
return int64 (stream .offset )
@@ -439,9 +437,9 @@ func mkdir(pathname *byte, mode uint32) int32 {
439
437
return - 1
440
438
}
441
439
442
- result := dir .d .CreateDirectoryAt (relPath )
443
- if err := result . Err (); err != nil {
444
- libcErrno = errorCodeToErrno (* err )
440
+ _ , err , isErr := dir .d .CreateDirectoryAt (relPath ). Result ( )
441
+ if isErr {
442
+ libcErrno = errorCodeToErrno (err )
445
443
return - 1
446
444
}
447
445
@@ -459,9 +457,9 @@ func rmdir(pathname *byte) int32 {
459
457
return - 1
460
458
}
461
459
462
- result := dir .d .RemoveDirectoryAt (relPath )
463
- if err := result . Err (); err != nil {
464
- libcErrno = errorCodeToErrno (* err )
460
+ _ , err , isErr := dir .d .RemoveDirectoryAt (relPath ). Result ( )
461
+ if isErr {
462
+ libcErrno = errorCodeToErrno (err )
465
463
return - 1
466
464
}
467
465
@@ -486,9 +484,9 @@ func rename(from, to *byte) int32 {
486
484
return - 1
487
485
}
488
486
489
- result := fromDir .d .RenameAt (fromRelPath , toDir .d , toRelPath )
490
- if err := result . Err (); err != nil {
491
- libcErrno = errorCodeToErrno (* err )
487
+ _ , err , isErr := fromDir .d .RenameAt (fromRelPath , toDir .d , toRelPath ). Result ( )
488
+ if isErr {
489
+ libcErrno = errorCodeToErrno (err )
492
490
return - 1
493
491
}
494
492
@@ -520,9 +518,9 @@ func symlink(from, to *byte) int32 {
520
518
521
519
// TODO(dgryski): check fromDir == toDir?
522
520
523
- result := fromDir .d .SymlinkAt (fromRelPath , toRelPath )
524
- if err := result . Err (); err != nil {
525
- libcErrno = errorCodeToErrno (* err )
521
+ _ , err , isErr := fromDir .d .SymlinkAt (fromRelPath , toRelPath ). Result ( )
522
+ if isErr {
523
+ libcErrno = errorCodeToErrno (err )
526
524
return - 1
527
525
}
528
526
@@ -554,9 +552,9 @@ func link(from, to *byte) int32 {
554
552
555
553
// TODO(dgryski): check fromDir == toDir?
556
554
557
- result := fromDir .d .LinkAt (0 , fromRelPath , toDir .d , toRelPath )
558
- if err := result . Err (); err != nil {
559
- libcErrno = errorCodeToErrno (* err )
555
+ _ , err , isErr := fromDir .d .LinkAt (0 , fromRelPath , toDir .d , toRelPath ). Result ( )
556
+ if isErr {
557
+ libcErrno = errorCodeToErrno (err )
560
558
return - 1
561
559
}
562
560
@@ -587,9 +585,9 @@ func fsync(fd int32) int32 {
587
585
return - 1
588
586
}
589
587
590
- result := streams .d .SyncData ()
591
- if err := result . Err (); err != nil {
592
- libcErrno = errorCodeToErrno (* err )
588
+ _ , err , isErr := streams .d .SyncData (). Result ()
589
+ if isErr {
590
+ libcErrno = errorCodeToErrno (err )
593
591
return - 1
594
592
}
595
593
@@ -607,13 +605,12 @@ func readlink(pathname *byte, buf *byte, count uint) int {
607
605
return - 1
608
606
}
609
607
610
- result := dir .d .ReadLinkAt (relPath )
611
- if err := result . Err (); err != nil {
612
- libcErrno = errorCodeToErrno (* err )
608
+ s , err , isErr := dir .d .ReadLinkAt (relPath ). Result ( )
609
+ if isErr {
610
+ libcErrno = errorCodeToErrno (err )
613
611
return - 1
614
612
}
615
613
616
- s := * result .OK ()
617
614
size := uintptr (count )
618
615
if size > uintptr (len (s )) {
619
616
size = uintptr (len (s ))
@@ -634,9 +631,9 @@ func unlink(pathname *byte) int32 {
634
631
return - 1
635
632
}
636
633
637
- result := dir .d .UnlinkFileAt (relPath )
638
- if err := result . Err (); err != nil {
639
- libcErrno = errorCodeToErrno (* err )
634
+ _ , err , isErr := dir .d .UnlinkFileAt (relPath ). Result ( )
635
+ if isErr {
636
+ libcErrno = errorCodeToErrno (err )
640
637
return - 1
641
638
}
642
639
@@ -661,13 +658,13 @@ func stat(pathname *byte, dst *Stat_t) int32 {
661
658
return - 1
662
659
}
663
660
664
- result := dir .d .StatAt (0 , relPath )
665
- if err := result . Err (); err != nil {
666
- libcErrno = errorCodeToErrno (* err )
661
+ stat , err , isErr := dir .d .StatAt (0 , relPath ). Result ( )
662
+ if isErr {
663
+ libcErrno = errorCodeToErrno (err )
667
664
return - 1
668
665
}
669
666
670
- setStatFromWASIStat (dst , result . OK () )
667
+ setStatFromWASIStat (dst , & stat )
671
668
672
669
return 0
673
670
}
@@ -690,13 +687,13 @@ func fstat(fd int32, dst *Stat_t) int32 {
690
687
libcErrno = EBADF
691
688
return - 1
692
689
}
693
- result := stream .d .Stat ()
694
- if err := result . Err (); err != nil {
695
- libcErrno = errorCodeToErrno (* err )
690
+ stat , err , isErr := stream .d .Stat (). Result ()
691
+ if isErr {
692
+ libcErrno = errorCodeToErrno (err )
696
693
return - 1
697
694
}
698
695
699
- setStatFromWASIStat (dst , result . OK () )
696
+ setStatFromWASIStat (dst , & stat )
700
697
701
698
return 0
702
699
}
@@ -745,13 +742,13 @@ func lstat(pathname *byte, dst *Stat_t) int32 {
745
742
return - 1
746
743
}
747
744
748
- result := dir .d .StatAt (0 , relPath )
749
- if err := result . Err (); err != nil {
750
- libcErrno = errorCodeToErrno (* err )
745
+ stat , err , isErr := dir .d .StatAt (0 , relPath ). Result ( )
746
+ if isErr {
747
+ libcErrno = errorCodeToErrno (err )
751
748
return - 1
752
749
}
753
750
754
- setStatFromWASIStat (dst , result . OK () )
751
+ setStatFromWASIStat (dst , & stat )
755
752
756
753
return 0
757
754
}
@@ -981,25 +978,25 @@ func open(pathname *byte, flags int32, mode uint32) int32 {
981
978
pflags &^= types .PathFlagsSymlinkFollow
982
979
}
983
980
984
- result := dir .d .OpenAt (pflags , relPath , oflags , dflags )
985
- if err := result . Err (); err != nil {
986
- libcErrno = errorCodeToErrno (* err )
981
+ descriptor , err , isErr := dir .d .OpenAt (pflags , relPath , oflags , dflags ). Result ( )
982
+ if isErr {
983
+ libcErrno = errorCodeToErrno (err )
987
984
return - 1
988
985
}
989
986
990
987
stream := wasiFile {
991
- d : * result . OK () ,
988
+ d : descriptor ,
992
989
oflag : flags ,
993
990
refs : 1 ,
994
991
}
995
992
996
993
if flags & (O_WRONLY | O_APPEND ) == (O_WRONLY | O_APPEND ) {
997
- result := stream .d .Stat ()
998
- if err := result . Err (); err != nil {
999
- libcErrno = errorCodeToErrno (* err )
994
+ stat , err , isErr := stream .d .Stat (). Result ()
995
+ if isErr {
996
+ libcErrno = errorCodeToErrno (err )
1000
997
return - 1
1001
998
}
1002
- stream .offset = int64 (result . OK () .Size )
999
+ stream .offset = int64 (stat .Size )
1003
1000
}
1004
1001
1005
1002
libcfd := findFreeFD ()
@@ -1112,13 +1109,13 @@ func fdopendir(fd int32) unsafe.Pointer {
1112
1109
return nil
1113
1110
}
1114
1111
1115
- result := stream .d .ReadDirectory ()
1116
- if err := result . Err (); err != nil {
1117
- libcErrno = errorCodeToErrno (* err )
1112
+ dir , err , isErr := stream .d .ReadDirectory (). Result ()
1113
+ if isErr {
1114
+ libcErrno = errorCodeToErrno (err )
1118
1115
return nil
1119
1116
}
1120
1117
1121
- return unsafe .Pointer (& libc_DIR {d : * result . OK () })
1118
+ return unsafe .Pointer (& libc_DIR {d : dir })
1122
1119
}
1123
1120
1124
1121
// int fdclosedir(DIR *);
@@ -1153,13 +1150,13 @@ func readdir(dirp unsafe.Pointer) *Dirent {
1153
1150
return nil
1154
1151
}
1155
1152
1156
- result := dir .d .ReadDirectoryEntry ()
1157
- if err := result . Err (); err != nil {
1158
- libcErrno = errorCodeToErrno (* err )
1153
+ someEntry , err , isErr := dir .d .ReadDirectoryEntry (). Result ()
1154
+ if isErr {
1155
+ libcErrno = errorCodeToErrno (err )
1159
1156
return nil
1160
1157
}
1161
1158
1162
- entry := result . OK () .Some ()
1159
+ entry := someEntry .Some ()
1163
1160
if entry == nil {
1164
1161
libcErrno = 0
1165
1162
return nil
@@ -1311,9 +1308,9 @@ func chdir(name *byte) int {
1311
1308
return - 1
1312
1309
}
1313
1310
1314
- result := dir .d .OpenAt (types .PathFlagsSymlinkFollow , rel , types .OpenFlagsDirectory , types .DescriptorFlagsRead )
1315
- if err := result . Err (); err != nil {
1316
- libcErrno = errorCodeToErrno (* err )
1311
+ _ , err , isErr := dir .d .OpenAt (types .PathFlagsSymlinkFollow , rel , types .OpenFlagsDirectory , types .DescriptorFlagsRead ). Result ( )
1312
+ if isErr {
1313
+ libcErrno = errorCodeToErrno (err )
1317
1314
return - 1
1318
1315
}
1319
1316
0 commit comments