summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-10-07 13:03:05 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-10-07 13:03:05 +0000
commita6e5b6d660869b0dd5fe1247eb5764b53fad8669 (patch)
treeba1a41c90ded5c2d505be42ab4982dc5041a5890
parent9b2350e8360314ac6cffc2c332a186036b8e24b6 (diff)
* include/ruby/node.h: make node flags as VALUE type.
enum ruby_node_flags removed. * ruby.c: define RUBY_NODE_* as const for gdb. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13653 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--.gdbinit6
-rw-r--r--ChangeLog7
-rw-r--r--include/ruby/node.h20
-rw-r--r--ruby.c7
4 files changed, 22 insertions, 18 deletions
diff --git a/.gdbinit b/.gdbinit
index f16482fbf3..e13ac90d82 100644
--- a/.gdbinit
+++ b/.gdbinit
@@ -147,7 +147,7 @@ define rp
else
if ($flags & 0x1f) == 0x1f
printf "T_NODE("
- output (enum node_type)(($flags&NODE_TYPEMASK)>>NODE_TYPESHIFT)
+ output (enum node_type)(($flags&RUBY_NODE_TYPEMASK)>>RUBY_NODE_TYPESHIFT)
printf "): "
print *(NODE *)$arg0
else
@@ -190,7 +190,7 @@ document rp
end
define nd_type
- print (enum node_type)((((NODE*)$arg0)->flags&NODE_TYPEMASK)>>NODE_TYPESHIFT)
+ print (enum node_type)((((NODE*)$arg0)->flags&RUBY_NODE_TYPEMASK)>>RUBY_NODE_TYPESHIFT)
end
document nd_type
Print a Ruby' node type.
@@ -204,7 +204,7 @@ document nd_file
end
define nd_line
- print ((unsigned int)((((NODE*)$arg0)->flags>>NODE_LSHIFT)&NODE_LMASK))
+ print ((unsigned int)((((NODE*)$arg0)->flags>>RUBY_NODE_LSHIFT)&RUBY_NODE_LMASK))
end
document nd_line
Print the source line number of a node.
diff --git a/ChangeLog b/ChangeLog
index e4c9f04a2b..b0f973011b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+Sun Oct 7 22:00:01 2007 Tanaka Akira <akr@fsij.org>
+
+ * include/ruby/node.h: make node flags as VALUE type.
+ enum ruby_node_flags removed.
+
+ * ruby.c: define RUBY_NODE_* as const for gdb.
+
Sun Oct 7 18:57:12 2007 Tanaka Akira <akr@fsij.org>
* include/ruby/ruby.h: enum ruby_value_flags removed. [ruby-dev:31959]
diff --git a/include/ruby/node.h b/include/ruby/node.h
index 4d6d73c7fd..a5b66d35f9 100644
--- a/include/ruby/node.h
+++ b/include/ruby/node.h
@@ -271,26 +271,18 @@ typedef struct RNode {
#define RNODE(obj) (R_CAST(RNode)(obj))
-
/* 0..4:T_TYPES, 5:FL_MARK, 6:reserved, 7:NODE_NEWLINE */
-enum ruby_node_flags {
- NODE_NEWLINE = (1<<7),
-#define NODE_NEWLINE NODE_NEWLINE
-
- NODE_TYPESHIFT = 8,
-#define NODE_TYPESHIFT NODE_TYPESHIFT
- NODE_TYPEMASK = (0x7f<<NODE_TYPESHIFT),
-#define NODE_TYPEMASK NODE_TYPEMASK
- NODE_LSHIFT = (NODE_TYPESHIFT+7),
-#define NODE_LSHIFT NODE_LSHIFT
- NODE_LMASK = (((SIGNED_VALUE)1<<(sizeof(VALUE)*CHAR_BIT-NODE_LSHIFT))-1),
-#define NODE_LMASK NODE_LMASK
-};
+#define NODE_NEWLINE (((VALUE)1)<<7)
+
+#define NODE_TYPESHIFT 8
+#define NODE_TYPEMASK (((VALUE)0x7f)<<NODE_TYPESHIFT)
#define nd_type(n) ((int) (((RNODE(n))->flags & NODE_TYPEMASK)>>NODE_TYPESHIFT))
#define nd_set_type(n,t) \
RNODE(n)->flags=((RNODE(n)->flags&~NODE_TYPEMASK)|(((t)<<NODE_TYPESHIFT)&NODE_TYPEMASK))
+#define NODE_LSHIFT (NODE_TYPESHIFT+7)
+#define NODE_LMASK (((SIGNED_VALUE)1<<(sizeof(VALUE)*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<<NODE_LSHIFT))|(((l)&NODE_LMASK)<<NODE_LSHIFT))
diff --git a/ruby.c b/ruby.c
index bdb044ebb1..f8e812be74 100644
--- a/ruby.c
+++ b/ruby.c
@@ -59,7 +59,6 @@ static const union {
enum ruby_special_consts special_consts;
enum ruby_value_type value_type;
enum node_type node_type;
- enum ruby_node_flags node_flags;
} dummy_gdb_enums;
const VALUE RUBY_FL_MARK = FL_MARK;
@@ -92,6 +91,12 @@ const VALUE RUBY_FL_USER19 = FL_USER19;
const VALUE RUBY_FL_USER20 = FL_USER20;
const int RUBY_FL_USHIFT = FL_USHIFT;
+const VALUE RUBY_NODE_NEWLINE = NODE_NEWLINE;
+const int RUBY_NODE_TYPESHIFT = NODE_TYPESHIFT;
+const VALUE RUBY_NODE_TYPEMASK = NODE_TYPEMASK;
+const int RUBY_NODE_LSHIFT = NODE_LSHIFT;
+const VALUE RUBY_NODE_LMASK = NODE_LMASK;
+
#ifndef HAVE_STDLIB_H
char *getenv();
#endif