summaryrefslogtreecommitdiff
path: root/vm_insnhelper.h
diff options
context:
space:
mode:
authorko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-06-13 11:25:44 +0000
committerko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-06-13 11:25:44 +0000
commit038ef3f05cbddb484c181a8614b088d99014917b (patch)
tree9ced5364385c1e3a5fee3622f0002c6a7d331bef /vm_insnhelper.h
parent0f6794cb2329d9abca759a2db2717ea55ba3addf (diff)
* vm_core.h, vm_insnhelper.h: move decl. of
ruby_vm_global_state_version and related macros from vm_core.h to vm_insnhelper.h. * vm.c (vm_clear_all_cache): added. This function is called when ruby_vm_global_state_version overflows. TODO: vm_clear_all_inline_method_cache() is only place holder. We need to implement it ASAP. * vm_method.c (vm_clear_global_method_cache): added. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32056 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'vm_insnhelper.h')
-rw-r--r--vm_insnhelper.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/vm_insnhelper.h b/vm_insnhelper.h
index 31ef216027..1b352937fe 100644
--- a/vm_insnhelper.h
+++ b/vm_insnhelper.h
@@ -208,4 +208,13 @@ extern VALUE ruby_vm_const_missing_count;
#endif
+static VALUE ruby_vm_global_state_version = 1;
+
+#define GET_VM_STATE_VERSION() (ruby_vm_global_state_version)
+#define INC_VM_STATE_VERSION() do { \
+ ruby_vm_global_state_version = (ruby_vm_global_state_version + 1); \
+ if (ruby_vm_global_state_version == 0) vm_clear_all_cache(); \
+} while (0)
+static void vm_clear_all_cache(void);
+
#endif /* RUBY_INSNHELPER_H */