summaryrefslogtreecommitdiff
path: root/gc.c
diff options
context:
space:
mode:
authorko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-03-04 10:37:35 +0000
committerko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-03-04 10:37:35 +0000
commitd04ee29e77891f1981dbf4d5a1d2c27a626fb52c (patch)
tree43d84f9205ee4e7307a132d620ebbc94d592e77a /gc.c
parentbefcbc2cb98c05b16e4b99de3f6386d277aceb56 (diff)
* gc.c: use 2 bits with unsigned int for rb_objspace::flags::mode
because it always returns 0 to 2 (non-negative value). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53997 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'gc.c')
-rw-r--r--gc.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/gc.c b/gc.c
index 6d92629f85..221752ace0 100644
--- a/gc.c
+++ b/gc.c
@@ -490,7 +490,7 @@ typedef struct rb_objspace {
} malloc_params;
struct {
- enum gc_mode mode : 3;
+ unsigned int mode : 2;
unsigned int immediate_sweep : 1;
unsigned int dont_gc : 1;
unsigned int dont_incremental : 1;
@@ -747,8 +747,8 @@ gc_mode_verify(enum gc_mode mode)
return mode;
}
-#define gc_mode(objspace) gc_mode_verify((objspace)->flags.mode)
-#define gc_mode_set(objspace, mode) ((objspace)->flags.mode = gc_mode_verify(mode))
+#define gc_mode(objspace) gc_mode_verify((enum gc_mode)(objspace)->flags.mode)
+#define gc_mode_set(objspace, mode) ((objspace)->flags.mode = (unsigned int)gc_mode_verify(mode))
#define is_marking(objspace) (gc_mode(objspace) == gc_mode_marking)
#define is_sweeping(objspace) (gc_mode(objspace) == gc_mode_sweeping)