aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortmm1 <tmm1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-12-04 04:05:15 +0000
committertmm1 <tmm1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-12-04 04:05:15 +0000
commit348903a628c38a4334531ac5a20e23fa44e670f3 (patch)
tree8adaf15d3b37d4861038dc0064408deb2fdaf640
parent753fe47175c0a4d5b8a88498ade2eaa521b91b8f (diff)
downloadruby-348903a628c38a4334531ac5a20e23fa44e670f3.tar.gz
* vm_trace.c (rb_suppress_tracing): Fix initialization of stack
allocated rb_trace_arg_t structure. Without this patch, sometimes INTERNAL_EVENT_GC would be skipped accidentally inside rb_threadptr_exec_event_hooks_orig(). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43987 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog7
-rw-r--r--vm_trace.c1
2 files changed, 8 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 7463008ec5..14958852b0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+Wed Dec 4 13:02:13 2013 Aman Gupta <ruby@tmm1.net>
+
+ * vm_trace.c (rb_suppress_tracing): Fix initialization of stack
+ allocated rb_trace_arg_t structure. Without this patch, sometimes
+ INTERNAL_EVENT_GC would be skipped accidentally inside
+ rb_threadptr_exec_event_hooks_orig().
+
Wed Dec 4 12:57:24 2013 Aman Gupta <ruby@tmm1.net>
* string.c (fstr_update_callback): Improve implementation in r43968
diff --git a/vm_trace.c b/vm_trace.c
index 3a88811286..49a5fd0832 100644
--- a/vm_trace.c
+++ b/vm_trace.c
@@ -392,6 +392,7 @@ rb_suppress_tracing(VALUE (*func)(VALUE), VALUE arg)
int state;
const int tracing = th->trace_arg ? 1 : 0;
rb_trace_arg_t dummy_trace_arg;
+ dummy_trace_arg.event = 0;
if (!tracing) th->vm->trace_running++;
if (!th->trace_arg) th->trace_arg = &dummy_trace_arg;