Go to the source code of this file.
◆ __acrt_stdio_refill_and_read_narrow_nolock()
◆ __acrt_stdio_refill_and_read_wide_nolock()
◆ common_refill_and_read_nolock()
Definition at line 122 of file _filbuf.cpp.
123{
125
127
129 return stdio_traits::eof;
130
132 {
134 return stdio_traits::eof;
135 }
136
138
139
140 if (!
stream.has_any_buffer())
142
144
147
149 {
152 return stdio_traits::eof;
153 }
154
157 {
159 }
160
161
162
163
164
165
167 stream.has_crt_buffer() &&
169 {
171 }
172
174}
static unsigned char read_character_nolock(__crt_stdio_stream const stream, int, char)
static bool is_buffer_valid_nolock(__crt_stdio_stream const stream, char)
static int get_context_nolock(__crt_stdio_stream const, char)
void __cdecl __acrt_stdio_allocate_buffer_nolock(FILE *const public_stream)
#define _VALIDATE_RETURN(expr, errorcode, retexpr)
_Check_return_ _CRTIMP int __cdecl _fileno(_In_ FILE *_File)
_Check_return_ _CRTIMP int __cdecl _read(_In_ int _FileHandle, _Out_writes_bytes_(_MaxCharCount) void *_DstBuf, _In_ unsigned int _MaxCharCount)
◆ get_context_nolock() [1/2]
Definition at line 31 of file _filbuf.cpp.
32{
33
34
35
36
37
38
39
42 {
43 context._is_split_character =
true;
44 context._leftover_low_order_byte =
static_cast<unsigned char>(*
stream->_ptr);
45 }
46 else
47 {
48 context._is_split_character =
false;
49 context._leftover_low_order_byte = 0;
50 }
52}
◆ get_context_nolock() [2/2]
◆ is_buffer_valid_nolock() [1/2]
◆ is_buffer_valid_nolock() [2/2]
◆ read_character_nolock() [1/2]
Definition at line 81 of file _filbuf.cpp.
86{
87 if (
context._is_split_character)
88 {
89
90
91
92 unsigned char high_order_byte =
static_cast<unsigned char>(*
stream->_ptr);
93 wchar_t result = (high_order_byte << 8) |
context._leftover_low_order_byte;
94
98 }
99 else
100 {
102
105
107 }
108}
◆ read_character_nolock() [2/2]