From d04ee29e77891f1981dbf4d5a1d2c27a626fb52c Mon Sep 17 00:00:00 2001 From: ko1 Date: Fri, 4 Mar 2016 10:37:35 +0000 Subject: * 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 --- gc.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'gc.c') 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) -- cgit v1.2.3