[前][次][番号順一覧][スレッド一覧]

ruby-changes:29879

From: nobu <ko1@a...>
Date: Fri, 12 Jul 2013 16:38:34 +0900 (JST)
Subject: [ruby-changes:29879] nobu:r41931 (trunk): signal.c: for valgrind

nobu	2013-07-12 16:37:31 +0900 (Fri, 12 Jul 2013)

  New Revision: 41931

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=41931

  Log:
    signal.c: for valgrind
    
    * signal.c (ruby_signal): suppress valgrind error in
      install_sighandler().

  Modified files:
    trunk/signal.c

Index: signal.c
===================================================================
--- signal.c	(revision 41930)
+++ signal.c	(revision 41931)
@@ -23,6 +23,19 @@ https://github.com/ruby/ruby/blob/trunk/signal.c#L23
 # include <unistd.h>
 #endif
 
+#ifdef HAVE_VALGRIND_MEMCHECK_H
+# include <valgrind/memcheck.h>
+# ifndef VALGRIND_MAKE_MEM_DEFINED
+#  define VALGRIND_MAKE_MEM_DEFINED(p, n) VALGRIND_MAKE_READABLE((p), (n))
+# endif
+# ifndef VALGRIND_MAKE_MEM_UNDEFINED
+#  define VALGRIND_MAKE_MEM_UNDEFINED(p, n) VALGRIND_MAKE_WRITABLE((p), (n))
+# endif
+#else
+# define VALGRIND_MAKE_MEM_DEFINED(p, n) 0
+# define VALGRIND_MAKE_MEM_UNDEFINED(p, n) 0
+#endif
+
 #if defined(__native_client__) && defined(NACL_NEWLIB)
 # include "nacl/signal.h"
 #endif
@@ -521,6 +534,7 @@ ruby_signal(int signum, sighandler_t han https://github.com/ruby/ruby/blob/trunk/signal.c#L534
        )
 	sigact.sa_flags |= SA_ONSTACK;
 #endif
+    VALGRIND_MAKE_MEM_DEFINED(&old, sizeof(old));
     if (sigaction(signum, &sigact, &old) < 0) {
 	if (errno != 0 && errno != EINVAL) {
 	    rb_bug_errno("sigaction", errno);

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]