diff --git a/src/osd/windows/drawdd.c b/src/osd/windows/drawdd.c index 6cf429af5d7..f6938db47c8 100644 --- a/src/osd/windows/drawdd.c +++ b/src/osd/windows/drawdd.c @@ -7,9 +7,6 @@ // //============================================================ -// needed for multimonitor -#define _WIN32_WINNT 0x501 - // standard windows headers #define WIN32_LEAN_AND_MEAN #include diff --git a/src/osd/windows/input.c b/src/osd/windows/input.c index 7bac5c97ab1..5b15b161183 100644 --- a/src/osd/windows/input.c +++ b/src/osd/windows/input.c @@ -10,9 +10,6 @@ // For testing purposes: force DirectInput #define FORCE_DIRECTINPUT 0 -// Needed for RAW Input -#define _WIN32_WINNT 0x501 - // standard windows headers #define WIN32_LEAN_AND_MEAN #include diff --git a/src/osd/windows/ledutil.c b/src/osd/windows/ledutil.c index 4539c8838e7..ffdd9ae3abe 100644 --- a/src/osd/windows/ledutil.c +++ b/src/osd/windows/ledutil.c @@ -29,9 +29,6 @@ // //============================================================ -// Needed for RAW Input -#define _WIN32_WINNT 0x501 - // standard windows headers #define WIN32_LEAN_AND_MEAN #include diff --git a/src/osd/windows/main.c b/src/osd/windows/main.c index 5ddd301ec9d..ff054f21ef4 100644 --- a/src/osd/windows/main.c +++ b/src/osd/windows/main.c @@ -8,7 +8,6 @@ //============================================================ // standard windows headers -#define _WIN32_WINNT 0x0400 #define WIN32_LEAN_AND_MEAN #include #include diff --git a/src/osd/windows/video.c b/src/osd/windows/video.c index a9768956617..bbc5463561f 100644 --- a/src/osd/windows/video.c +++ b/src/osd/windows/video.c @@ -7,9 +7,6 @@ // //============================================================ -// needed for multimonitor -#define _WIN32_WINNT 0x501 - // standard windows headers #define WIN32_LEAN_AND_MEAN #include diff --git a/src/osd/windows/winalloc.c b/src/osd/windows/winalloc.c index da9a4fbb71d..536442a22b9 100644 --- a/src/osd/windows/winalloc.c +++ b/src/osd/windows/winalloc.c @@ -7,8 +7,6 @@ // //============================================================ -#define _WIN32_WINNT 0x0400 - // standard windows headers #define WIN32_LEAN_AND_MEAN #include @@ -28,6 +26,8 @@ // CONSTANTS //============================================================ +#define OVERRIDE_STANDARD_CALLS (0) + #define PAGE_SIZE 4096 #define COOKIE_VAL 0x11335577 @@ -193,10 +193,12 @@ void *malloc_file_line(size_t size, const char *file, int line) // malloc - override for the malloc() function //============================================================ +#if OVERRIDE_STANDARD_CALLS void *CLIB_DECL malloc(size_t size) { return malloc_file_line(size, NULL, 0); } +#endif //============================================================ @@ -221,10 +223,12 @@ void *calloc_file_line(size_t size, size_t count, const char *file, int line) // calloc - override for the calloc() function //============================================================ +#if OVERRIDE_STANDARD_CALLS void *CLIB_DECL calloc(size_t size, size_t count) { return calloc_file_line(size, count, NULL, 0); } +#endif //============================================================ @@ -232,10 +236,12 @@ void *CLIB_DECL calloc(size_t size, size_t count) // which is called by beginthreadex //============================================================ +#if OVERRIDE_STANDARD_CALLS void *CLIB_DECL _calloc_crt(size_t size, size_t count) { return calloc_file_line(size, count, NULL, 0); } +#endif //============================================================ @@ -298,17 +304,20 @@ void *realloc_file_line(void *memory, size_t size, const char *file, int line) // realloc - override for the realloc() function //============================================================ +#if OVERRIDE_STANDARD_CALLS void *CLIB_DECL realloc(void *memory, size_t size) { return realloc_file_line(memory, size, NULL, 0); } +#endif //============================================================ -// free - override for the free() function +// free_file_line - debugging version of free which +// accepts filename and line number //============================================================ -void CLIB_DECL free(void *memory) +void CLIB_DECL free_file_line(void *memory, const char *file, int line) { memory_entry *entry; @@ -346,11 +355,24 @@ void CLIB_DECL free(void *memory) } +//============================================================ +// free - override for the free() function +//============================================================ + +#if OVERRIDE_STANDARD_CALLS +void CLIB_DECL free(void *memory) +{ + free_file_line(memory, NULL, 0); +} +#endif + + //============================================================ // _msize - internal MSVC routine that returns the size of // a memory block //============================================================ +#if OVERRIDE_STANDARD_CALLS size_t CLIB_DECL _msize(void *memory) { size_t result; @@ -376,6 +398,7 @@ size_t CLIB_DECL _msize(void *memory) } return result; } +#endif //============================================================ diff --git a/src/osd/windows/window.c b/src/osd/windows/window.c index c37ae256774..f8ebe6377ab 100644 --- a/src/osd/windows/window.c +++ b/src/osd/windows/window.c @@ -11,7 +11,6 @@ #define LOG_TEMP_PAUSE 0 // Needed for RAW Input -#define _WIN32_WINNT 0x501 #define WM_INPUT 0x00FF // standard windows headers diff --git a/src/osd/windows/windows.mak b/src/osd/windows/windows.mak index 5d1c8a18683..e8a63a9d6ed 100644 --- a/src/osd/windows/windows.mak +++ b/src/osd/windows/windows.mak @@ -71,7 +71,7 @@ OBJDIRS += $(WINOBJ) RC = @windres --use-temp-file -RCDEFS = -DNDEBUG -D_WIN32_IE=0x0400 +RCDEFS = -DNDEBUG -D_WIN32_IE=0x0501 RCFLAGS = -O coff -I $(WINSRC) -I $(WINOBJ) @@ -198,7 +198,11 @@ endif LIBS += -luser32 -lgdi32 -lddraw -ldsound -ldinput -ldxguid -lwinmm -ladvapi32 -lcomctl32 -lshlwapi ifdef PTR64 +ifdef MSVC_BUILD LIBS += -lbufferoverflowu +else +DEFS += -D_COM_interface=struct +endif endif diff --git a/src/osd/windows/winmain.c b/src/osd/windows/winmain.c index ae95b62bfc0..dbf7d46c82e 100644 --- a/src/osd/windows/winmain.c +++ b/src/osd/windows/winmain.c @@ -8,7 +8,6 @@ //============================================================ // standard windows headers -#define _WIN32_WINNT 0x0501 #define WIN32_LEAN_AND_MEAN #include #include diff --git a/src/osd/windows/winmisc.c b/src/osd/windows/winmisc.c index 6de35997b7c..28806f5d5c7 100644 --- a/src/osd/windows/winmisc.c +++ b/src/osd/windows/winmisc.c @@ -8,7 +8,6 @@ //============================================================ // standard windows headers -#define _WIN32_WINNT 0x0400 #define WIN32_LEAN_AND_MEAN #include #include diff --git a/src/osd/windows/winprefix.h b/src/osd/windows/winprefix.h index 2cec16b2529..751db05d404 100644 --- a/src/osd/windows/winprefix.h +++ b/src/osd/windows/winprefix.h @@ -7,13 +7,16 @@ // //============================================================ +#define _WIN32_WINNT 0x0501 + #ifdef MALLOC_DEBUG #include -// override malloc to track file/line -void* malloc_file_line(size_t size, const char *file, int line); -void* calloc_file_line(size_t size, size_t count, const char *FILE, int line); -void * realloc_file_line(void *memory, size_t size, const char *file, int line); +// override malloc/calloc/realloc/free to track file/line +void *malloc_file_line(size_t size, const char *file, int line); +void *calloc_file_line(size_t size, size_t count, const char *FILE, int line); +void *realloc_file_line(void *memory, size_t size, const char *file, int line); +void free_file_line(void *memory, const char *file, int line); #undef malloc #define malloc(x) malloc_file_line(x, __FILE__, __LINE__) @@ -21,6 +24,8 @@ void * realloc_file_line(void *memory, size_t size, const char *file, int line); #define calloc(x,y) calloc_file_line(x, y, __FILE__, __LINE__) #undef realloc #define realloc(x,y) realloc_file_line(x, y, __FILE__, __LINE__) +#undef free +#define free(x) free_file_line(x, __FILE__, __LINE__) #endif #ifdef _MSC_VER @@ -32,7 +37,9 @@ void *__cdecl _alloca(size_t); #endif #ifdef __GNUC__ +#ifndef alloca #define alloca __builtin_alloca #endif +#endif #define PATH_SEPARATOR "\\" diff --git a/src/osd/windows/winsync.c b/src/osd/windows/winsync.c index f3c5b6ee809..bce3f7cd480 100644 --- a/src/osd/windows/winsync.c +++ b/src/osd/windows/winsync.c @@ -8,9 +8,6 @@ //============================================================ // standard windows headers -#ifndef _WIN32_WINNT -#define _WIN32_WINNT 0x0400 -#endif #define WIN32_LEAN_AND_MEAN #include diff --git a/src/osd/windows/winutf8.c b/src/osd/windows/winutf8.c index b7fe5bc762b..3d363f93b8c 100644 --- a/src/osd/windows/winutf8.c +++ b/src/osd/windows/winutf8.c @@ -8,7 +8,6 @@ //============================================================ // standard windows headers -#define _WIN32_WINNT 0x0400 #define WIN32_LEAN_AND_MEAN #include #include diff --git a/src/osd/windows/winutil.c b/src/osd/windows/winutil.c index 450b99f34b2..a0546830e79 100644 --- a/src/osd/windows/winutil.c +++ b/src/osd/windows/winutil.c @@ -8,7 +8,6 @@ //============================================================ // standard windows headers -#define _WIN32_WINNT 0x0400 #define WIN32_LEAN_AND_MEAN #include diff --git a/src/osd/windows/winwork.c b/src/osd/windows/winwork.c index df22753f6cb..016f4bee05c 100644 --- a/src/osd/windows/winwork.c +++ b/src/osd/windows/winwork.c @@ -8,7 +8,6 @@ //============================================================ // standard windows headers -#define _WIN32_WINNT 0x0400 #define WIN32_LEAN_AND_MEAN #include #include