summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-02-16 07:47:53 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-02-16 07:47:53 +0000
commit1fb1fb2b88ff35ff45a7f6b8a0a832260008993d (patch)
tree24b6ca5881355343960a084ee3014d9349c0631e
parent7598ce37397b9eef4ed5f2aa7d6589761b9e5ca0 (diff)
* win32/Makefile.sub (CRTDEFFLAGS): separated from DEFS.
* win32/win32.c (rtc_error_handler): ignores RTC errors. * win32/win32.c (NtInitialize): suppress useless CRT assertions. [ruby-core:22116] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@22338 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog10
-rw-r--r--win32/Makefile.sub8
-rw-r--r--win32/win32.c14
3 files changed, 26 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index aca79ddf89..b422b9f48f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,7 +1,11 @@
-Mon Feb 16 01:17:51 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Mon Feb 16 16:47:43 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
- * win32/win32.c (_CrtDbgReportW): prevent from false positive
- assertions in msvcrtd. [ruby-core:22116]
+ * win32/Makefile.sub (CRTDEFFLAGS): separated from DEFS.
+
+ * win32/win32.c (rtc_error_handler): ignores RTC errors.
+
+ * win32/win32.c (NtInitialize): suppress useless CRT assertions.
+ [ruby-core:22116]
Sun Feb 15 21:43:44 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
diff --git a/win32/Makefile.sub b/win32/Makefile.sub
index 7de798eab2..ed49b5e775 100644
--- a/win32/Makefile.sub
+++ b/win32/Makefile.sub
@@ -176,12 +176,12 @@ LDSHARED = $(LD) -LD
XCFLAGS = -DRUBY_EXPORT -I. -I$(srcdir) -I$(srcdir)/missing $(XCFLAGS)
!if $(MSC_VER) >= 1400
# Prevents VC++ 2005 (cl ver 14) warnings
-DEFS = -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE
+CRTDEFFLAGS = -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE
MANIFESTTOOL = mt -nologo
LDSHARED_1 = $(MANIFESTTOOL) -manifest $(@).manifest -outputresource:$(@);2
LDSHARED_2 = @$(RM) $(@:/=\).manifest
!endif
-CPPFLAGS = $(DEFS) $(ARCHDEFS) $(CPPFLAGS)
+CPPFLAGS = $(CRTDEFFLAGS) $(DEFS) $(ARCHDEFS) $(CPPFLAGS)
DLDFLAGS = $(LDFLAGS) -dll
SOLIBS =
@@ -328,6 +328,10 @@ $(CONFIG_H): $(MKFILES) $(srcdir)/win32/Makefile.sub $(win_srcdir)/Makefile.sub
!if $(MSC_VER) > 1100
#define NORETURN(x) __declspec(noreturn) x
!endif
+!if $(MSC_VER) >= 1300
+#define DEPRECATED(x) __declspec(deprecated) x
+#define NOINLINE(x) __declspec(noinline) x
+!endif
#define RUBY_EXTERN extern __declspec(dllimport)
#define HAVE_DECL_SYS_NERR 1
!if !defined(WIN32_WCE)
diff --git a/win32/win32.c b/win32/win32.c
index 0336398139..747ca0b606 100644
--- a/win32/win32.c
+++ b/win32/win32.c
@@ -27,6 +27,9 @@
#include <winbase.h>
#include <wincon.h>
#include <shlobj.h>
+#if _MSC_VER >= 1400
+#include <crtdbg.h>
+#endif
#ifdef __MINGW32__
#include <mswsock.h>
#include <mbstring.h>
@@ -366,10 +369,17 @@ flock(int fd, int oper)
static void init_stdhandle(void);
#if _MSC_VER >= 1400
-static void invalid_parameter(const wchar_t *expr, const wchar_t *func, const wchar_t *file, unsigned int line, uintptr_t dummy)
+static void
+invalid_parameter(const wchar_t *expr, const wchar_t *func, const wchar_t *file, unsigned int line, uintptr_t dummy)
{
// nothing to do
}
+
+static int __cdecl
+rtc_error_handler(int e, const char *src, int line, const char *exe, const char *fmt, ...)
+{
+ return 0;
+}
#endif
static CRITICAL_SECTION select_mutex;
@@ -469,7 +479,9 @@ NtInitialize(int *argc, char ***argv)
#if _MSC_VER >= 1400
static void set_pioinfo_extra(void);
+ _CrtSetReportMode(_CRT_ASSERT, 0);
_set_invalid_parameter_handler(invalid_parameter);
+ _RTC_SetErrorFunc(rtc_error_handler);
set_pioinfo_extra();
#endif