diff options
author | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-03-04 10:37:35 +0000 |
---|---|---|
committer | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-03-04 10:37:35 +0000 |
commit | dd857a7ba49b81c3c319e5c299d0da54b1b760d6 (patch) | |
tree | 43d84f9205ee4e7307a132d620ebbc94d592e77a | |
parent | c36405b4371ad26a5dc56824f3df072a9d54086d (diff) | |
download | ruby-dd857a7ba49b81c3c319e5c299d0da54b1b760d6.tar.gz |
* 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
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | gc.c | 6 |
2 files changed, 8 insertions, 3 deletions
@@ -1,3 +1,8 @@ +Fri Mar 4 19:19:42 2016 Koichi Sasada <ko1@atdot.net> + + * gc.c: use 2 bits with unsigned int for rb_objspace::flags::mode + because it always returns 0 to 2 (non-negative value). + Fri Mar 4 18:42:08 2016 Koichi Sasada <ko1@atdot.net> * gc.c: rename "enum gc_stat" to "enum gc_mode" @@ -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) |