summaryrefslogtreecommitdiff
path: root/gc.h
diff options
context:
space:
mode:
authortenderlove <tenderlove@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2019-04-09 20:32:04 (GMT)
committertenderlove <tenderlove@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2019-04-09 20:32:04 (GMT)
commit3ef4db15e95740839a0ed6d0224b2c9562bb2544 (patch)
tree18c23ed1b2e3c7b55860c27238a98cafafe63d9f /gc.h
parentc09e35d7bbb5c18124d7ab54740bef966e145529 (diff)
Adding `GC.compact` and compacting GC support.
This commit adds the new method `GC.compact` and compacting GC support. Please see this issue for caveats: https://bugs.ruby-lang.org/issues/15626 [Feature #15626] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67479 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'gc.h')
-rw-r--r--gc.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/gc.h b/gc.h
index 2c91e06..7278901 100644
--- a/gc.h
+++ b/gc.h
@@ -57,6 +57,10 @@ rb_gc_debug_body(const char *mode, const char *msg, int st, void *ptr)
#define RUBY_GC_INFO if(0)printf
#endif
+#define RUBY_MARK_NO_PIN_UNLESS_NULL(ptr) do { \
+ VALUE markobj = (ptr); \
+ if (RTEST(markobj)) {rb_gc_mark_no_pin(markobj);} \
+} while (0)
#define RUBY_MARK_UNLESS_NULL(ptr) do { \
VALUE markobj = (ptr); \
if (RTEST(markobj)) {rb_gc_mark(markobj);} \