summaryrefslogtreecommitdiff
path: root/include/ruby/missing.h
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-12-01 01:24:23 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-12-01 01:24:23 +0000
commit10bb9e6faba749c3e9656b9088da77b3f1146937 (patch)
tree75c147df0d9fd813cfb7dace70739c2b2b6dcccc /include/ruby/missing.h
parentff113d52f799d433b6d5d96f86944d2d761e3530 (diff)
missing.h: explicit_bzero by memset_s
* include/ruby/missing.h (explicit_bzero_by_memset_s): call memset_s directly if available. * missing/explicit_bzero.c: optimization is not a matter if memset_s is available. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52824 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'include/ruby/missing.h')
-rw-r--r--include/ruby/missing.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/include/ruby/missing.h b/include/ruby/missing.h
index 24156bf343..a06cea2ba4 100644
--- a/include/ruby/missing.h
+++ b/include/ruby/missing.h
@@ -244,6 +244,15 @@ RUBY_EXTERN void setproctitle(const char *fmt, ...);
#ifndef HAVE_EXPLICIT_BZERO
RUBY_EXTERN void explicit_bzero(void *b, size_t len);
+# ifdef HAVE_MEMSET_S
+# include <string.h>
+static inline void
+explicit_bzero_by_memset_s(void *b, size_t len)
+{
+ memset_s(b, len, 0, len);
+}
+# define explicit_bzero(b, len) explicit_bzero_by_memset_s(b, len)
+# endif
#endif
RUBY_SYMBOL_EXPORT_END