From a00c1ed6723e9c92d6c09716169cc0210c331fb2 Mon Sep 17 00:00:00 2001 From: usa Date: Mon, 25 Jun 2007 09:01:27 +0000 Subject: [PATCH] * include/ruby/node.h (NODE_LMASK, nd_line): shouldn't use int and/or long carelessly. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12611 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ include/ruby/node.h | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) 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<