From 517ee59e43880bc9513c955ee6eafa08fe09ba9c Mon Sep 17 00:00:00 2001 From: Mark Jansen Date: Sat, 23 Jul 2016 20:35:11 +0000 Subject: [PATCH] [CRT][GDI32] Introduce atan2 library, use it for gdi32 to fix a crash. CORE-11521 As suggested by Thomas :) svn path=/trunk/; revision=71985 --- reactos/sdk/lib/crt/CMakeLists.txt | 16 ++++++++++++++++ reactos/win32ss/gdi/gdi32/CMakeLists.txt | 1 + reactos/win32ss/gdi/gdi32/wine/rosglue.c | 17 ----------------- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/reactos/sdk/lib/crt/CMakeLists.txt b/reactos/sdk/lib/crt/CMakeLists.txt index d9957b3b335..6659b0b8581 100644 --- a/reactos/sdk/lib/crt/CMakeLists.txt +++ b/reactos/sdk/lib/crt/CMakeLists.txt @@ -66,3 +66,19 @@ add_library(strtol string/wctype.c) add_target_compile_definitions(strtol _LIBCNT_) add_dependencies(strtol psdk) + + +if(ARCH STREQUAL "i386") + list(APPEND ATAN2_ASM_SOURCE math/i386/atan2_asm.s) +elseif(ARCH STREQUAL "amd64") + list(APPEND ATAN2_ASM_SOURCE math/amd64/atan2.S) +elseif(ARCH STREQUAL "arm") + list(APPEND ATAN2_ASM_SOURCE math/arm/atan2.s) +endif() + +add_asm_files(atan2_asm ${ATAN2_ASM_SOURCE}) +add_library(atan2 ${atan2_asm}) +set_target_properties(atan2 PROPERTIES LINKER_LANGUAGE "C") +add_dependencies(atan2 asm) + + diff --git a/reactos/win32ss/gdi/gdi32/CMakeLists.txt b/reactos/win32ss/gdi/gdi32/CMakeLists.txt index 796b50d658c..527c8f87357 100644 --- a/reactos/win32ss/gdi/gdi32/CMakeLists.txt +++ b/reactos/win32ss/gdi/gdi32/CMakeLists.txt @@ -61,6 +61,7 @@ target_link_libraries(gdi32 win32ksys dxguid msvcrtex + atan2 ${PSEH_LIB}) add_importlibs(gdi32 user32 advapi32 kernel32 ntdll) diff --git a/reactos/win32ss/gdi/gdi32/wine/rosglue.c b/reactos/win32ss/gdi/gdi32/wine/rosglue.c index 0c2464e6007..edd1c8d57ca 100644 --- a/reactos/win32ss/gdi/gdi32/wine/rosglue.c +++ b/reactos/win32ss/gdi/gdi32/wine/rosglue.c @@ -520,23 +520,6 @@ _assert ( DbgRaiseAssertionFailure(); } -#if defined(_MSC_VER) && (DBG != 1) - -/* MSVC uses its own in this case. */ -#else - -double -__cdecl -atan2( - double y, - double x) -{ - __debugbreak(); - return 0.; -} - -#endif - /******************************************************************************/ static