[UCRT] Make SEH blocks ReactOS PSEH compatible

This commit is contained in:
Timo Kreuzer 2024-10-12 00:05:27 +03:00
parent 7bb9f6bf28
commit e98e9000c7
59 changed files with 98 additions and 0 deletions

View file

@ -25,6 +25,7 @@ extern "C" errno_t __cdecl clearerr_s(FILE* const public_stream)
{
_unlock_file(stream.public_stream());
}
__endtry
return 0;
}

View file

@ -39,6 +39,7 @@ extern "C" int __cdecl _fcloseall()
{
__acrt_unlock(__acrt_stdio_index_lock);
}
__endtry
return count;
}

View file

@ -75,6 +75,7 @@ static int __cdecl _fclose_internal(FILE* const public_stream, __crt_cached_ptd_
{
_unlock_file(stream.public_stream());
}
__endtry
return return_value;
}

View file

@ -53,6 +53,7 @@ static FILE* __cdecl common_fdopen(
{
stream.unlock();
}
__endtry
return stream.public_stream();
}

View file

@ -55,6 +55,7 @@ extern "C" int __cdecl fgetc(FILE* const public_stream)
{
_unlock_file(stream.public_stream());
}
__endtry
return return_value;
}

View file

@ -75,6 +75,7 @@ static Character* __cdecl common_fgets(
{
_unlock_file(stream.public_stream());
}
__endtry
return return_value;
}

View file

@ -110,6 +110,7 @@ extern "C" wint_t __cdecl fgetwc(FILE* const stream)
{
_unlock_file(stream);
}
__endtry
return return_value;
}

View file

@ -60,6 +60,7 @@ static FILE* __cdecl common_fsopen(
stream.unlock();
}
__endtry
return return_value;
}

View file

@ -60,6 +60,7 @@ static int __cdecl _fputc_internal(int const c, FILE* const stream, __crt_cached
{
_unlock_file(stream);
}
__endtry
return return_value;
}

View file

@ -110,6 +110,7 @@ static wint_t __cdecl _fputwc_internal(wchar_t const c, FILE* const stream, __cr
{
_unlock_file(stream);
}
__endtry
return return_value;
}

View file

@ -59,6 +59,7 @@ extern "C" size_t __cdecl fread_s(
{
_unlock_file(stream);
}
__endtry
return return_value;
}

View file

@ -79,6 +79,7 @@ static errno_t __cdecl common_freopen(
{
_unlock_file(stream.public_stream());
}
__endtry
return return_value;
}

View file

@ -194,6 +194,7 @@ static int __cdecl common_fseek(
{
_unlock_file(stream.public_stream());
}
__endtry
return return_value;
}

View file

@ -362,6 +362,7 @@ static Integer __cdecl common_ftell(__crt_stdio_stream const stream, __crt_cache
{
_unlock_file(stream.public_stream());
}
__endtry
return return_value;
}

View file

@ -111,6 +111,7 @@ static Character* __cdecl common_gets(
{
_unlock_file(stdin);
}
__endtry
return return_value;
}

View file

@ -43,6 +43,7 @@ extern "C" int __cdecl _getw(FILE* const stream)
{
_unlock_file(stream);
}
__endtry
return return_value;
}

View file

@ -38,6 +38,7 @@ extern "C" int __cdecl _putw(int const value, FILE* const stream)
{
_unlock_file(stream);
}
__endtry
return return_value;
}

View file

@ -51,6 +51,7 @@ static void __cdecl _rewind_internal(FILE* const public_stream, __crt_cached_ptd
{
_unlock_file(stream.public_stream());
}
__endtry
}
extern "C" void __cdecl rewind(FILE* const public_stream)

View file

@ -58,12 +58,14 @@ extern "C" int __cdecl _rmtmp()
{
_unlock_file(stream.public_stream());
}
__endtry
}
}
__finally
{
__acrt_unlock(__acrt_stdio_index_lock);
}
__endtry
return count;
}

View file

@ -89,6 +89,7 @@ __crt_stdio_stream __cdecl __acrt_stdio_allocate_stream() throw()
{
__acrt_unlock(__acrt_stdio_index_lock);
}
__endtry
return stream;
}

View file

@ -172,6 +172,7 @@ static bool __cdecl compute_name(
{
__acrt_unlock(__acrt_tempnam_lock);
}
__endtry
return return_value;
}

View file

@ -309,6 +309,7 @@ static errno_t common_tmpnam(
{
__acrt_unlock(__acrt_tempnam_lock);
}
__endtry
return return_value;
}
@ -408,6 +409,7 @@ static errno_t __cdecl common_tmpfile_nolock(_Out_ FILE** const stream, int cons
local_stream.unlock();
}
__endtry
return result;
}
@ -435,6 +437,7 @@ static errno_t __cdecl common_tmpfile(_Out_ FILE** const stream, int const sh_fl
{
__acrt_unlock(__acrt_tempnam_lock);
}
__endtry
return return_value;
}

View file

@ -28,6 +28,7 @@ extern "C" int __cdecl ungetc(int const c, FILE* const stream)
{
_unlock_file(stream);
}
__endtry
return return_value;
}

View file

@ -28,6 +28,7 @@ extern "C" wint_t __cdecl ungetwc(wint_t const c, FILE* const stream)
{
_unlock_file(stream);
}
__endtry
return return_value;
}