diff --git a/ChangeLog b/ChangeLog index 84a7cf7ef4..968980b8b2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Mon Jun 25 17:59:32 2007 NAKAMURA Usaku + + * include/ruby/node.h (NODE_LMASK, nd_line): shouldn't use int and/or + long carelessly. + Mon Jun 25 11:36:35 2007 Koichi Sasada * gc.h: add RUBY_ prefix to debug macros. diff --git a/include/ruby/node.h b/include/ruby/node.h index a477c9d555..e5920c5247 100644 --- a/include/ruby/node.h +++ b/include/ruby/node.h @@ -173,8 +173,8 @@ typedef struct RNode { RNODE(n)->flags=((RNODE(n)->flags&~NODE_TYPEMASK)|(((t)<flags>>NODE_LSHIFT)&NODE_LMASK)) +#define NODE_LMASK (((SIGNED_VALUE)1<<(sizeof(NODE*)*CHAR_BIT-NODE_LSHIFT))-1) +#define nd_line(n) ((VALUE)(((RNODE(n))->flags>>NODE_LSHIFT)&NODE_LMASK)) #define nd_set_line(n,l) \ RNODE(n)->flags=((RNODE(n)->flags&~(-1<