@@ -66,12 +66,15 @@ impl FileDescription for FileHandle {
66
66
// Correctness of this emulation relies on sequential nature of Miri execution.
67
67
#[ cfg( not( unix) ) ]
68
68
{
69
- use io:: { Seek , SeekFrom } ;
70
- let cursor_pos = self . file . stream_position ( ) ?;
71
- self . file . seek ( SeekFrom :: Start ( offset) ) ?;
72
- let n = self . file . read ( bytes) ?;
73
- self . file . seek ( SeekFrom :: Start ( cursor_pos) ) ?;
74
- Ok ( n)
69
+ let f = || {
70
+ use io:: { Seek , SeekFrom } ;
71
+ let cursor_pos = self . file . stream_position ( ) ?;
72
+ self . file . seek ( SeekFrom :: Start ( offset) ) ?;
73
+ let n = self . file . read ( bytes) ?;
74
+ self . file . seek ( SeekFrom :: Start ( cursor_pos) ) ?;
75
+ Ok ( n)
76
+ } ;
77
+ Ok ( f ( ) )
75
78
}
76
79
}
77
80
@@ -93,12 +96,15 @@ impl FileDescription for FileHandle {
93
96
// Correctness of this emulation relies on sequential nature of Miri execution.
94
97
#[ cfg( not( unix) ) ]
95
98
{
96
- use io:: { Seek , SeekFrom } ;
97
- let cursor_pos = self . file . stream_position ( ) ?;
98
- self . file . seek ( SeekFrom :: Start ( offset) ) ?;
99
- let n = self . file . write ( bytes) ?;
100
- self . file . seek ( SeekFrom :: Start ( cursor_pos) ) ?;
101
- Ok ( n)
99
+ let f = || {
100
+ use io:: { Seek , SeekFrom } ;
101
+ let cursor_pos = self . file . stream_position ( ) ?;
102
+ self . file . seek ( SeekFrom :: Start ( offset) ) ?;
103
+ let n = self . file . write ( bytes) ?;
104
+ self . file . seek ( SeekFrom :: Start ( cursor_pos) ) ?;
105
+ Ok ( n)
106
+ } ;
107
+ Ok ( f ( ) )
102
108
}
103
109
}
104
110
0 commit comments