diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-12-12 07:07:25 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-12-12 07:07:25 +0000 |
commit | 3c4f8ce0921a5b64b77c5d6be69737f9dbf48d70 (patch) | |
tree | 5f0c95030bd7647d9aaeeec78b6c5294f075aebd /method.h | |
parent | 9354b05e5cd4ee0fb0a6ed823145657eb4e68d55 (diff) | |
download | ruby-3c4f8ce0921a5b64b77c5d6be69737f9dbf48d70.tar.gz |
method.h: NOEX_SAFE_SHIFT_OFFSET
* method.h (rb_method_flag_t): name a magic number for NOEX_SAFE and
NOEX_WITH as NOEX_SAFE_SHIFT_OFFSET.
* method.h (rb_method_type_t, method_optimized_type): C89 forbids a
comma after the last element in enum.
* proc.c (rb_method_entry_arity), vm_eval.c (vm_call0_body),
vm_insnhelper.c (vm_call_method): add VM_METHOD_TYPE__MAX case.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38340 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'method.h')
-rw-r--r-- | method.h | 15 |
1 files changed, 11 insertions, 4 deletions
@@ -22,11 +22,14 @@ typedef enum { NOEX_MODFUNC = 0x12, NOEX_SUPER = 0x20, NOEX_VCALL = 0x40, - NOEX_RESPONDS = 0x80 + NOEX_RESPONDS = 0x80, + + NOEX_BIT_WIDTH = 8, + NOEX_SAFE_SHIFT_OFFSET = ((NOEX_BIT_WIDTH+3)/4)*4 /* round up to nibble */ } rb_method_flag_t; -#define NOEX_SAFE(n) ((int)((n) >> 8) & 0x0F) -#define NOEX_WITH(n, s) (((s) << 8) | (n) | (ruby_running ? 0 : NOEX_BASIC)) +#define NOEX_SAFE(n) ((int)((n) >> NOEX_SAFE_SHIFT_OFFSET) & 0x0F) +#define NOEX_WITH(n, s) (((s) << NOEX_SAFE_SHIFT_OFFSET) | (n) | (ruby_running ? 0 : NOEX_BASIC)) #define NOEX_WITH_SAFE(n) NOEX_WITH((n), rb_safe_level()) /* method data type */ @@ -44,6 +47,8 @@ typedef enum { VM_METHOD_TYPE_MISSING, /* wrapper for method_missing(id) */ VM_METHOD_TYPE_CFUNC_FRAMELESS, VM_METHOD_TYPE_REFINED, + + VM_METHOD_TYPE__MAX } rb_method_type_t; struct rb_call_info_struct; @@ -71,7 +76,9 @@ typedef struct rb_method_definition_struct { VALUE proc; /* should be mark */ enum method_optimized_type { OPTIMIZED_METHOD_TYPE_SEND, - OPTIMIZED_METHOD_TYPE_CALL + OPTIMIZED_METHOD_TYPE_CALL, + + OPTIMIZED_METHOD_TYPE__MAX } optimize_type; struct rb_method_entry_struct *orig_me; } body; |